Documentos de Académico
Documentos de Profesional
Documentos de Cultura
Artificial
- Redes Neuronales -
Javier Silva Gallegos
Electricidad y Electrónica
Automatización Industrial
Objetivos
• Introducción.
• Neurona bilógica.
• Funciones de activación.
• Perceptrón.
Introducción
• Las redes neurales artificiales son aproximadores no lineales a la
forma en que funciona el cerebro.
• Por lo tanto no deben compararse directamente con el cerebro ni
confundir los principios que fundamentan el funcionamiento de las
redes neurales artificiales y el cerebro, ni pensar que las redes neurales
se basan únicamente en las redes biológicas ya que sólo emulan en una
parte muy simple el funcionamiento del cerebro humano.
• Además se debe considerar que las redes biológicas son generadoras
de procesos neurobiológicos en que se establecen relaciones de
complejidad muy alta, las cuales no se puede lograr con redes
monocapas ni con redes multicapas.
Introducción
• Las RNA pueden estudiarse como aproximadores universales desde el
punto de vista matemático.
• Veremos un panorama general de los fundamentos biológicos de las
redes neurales naturales, sin profundizar en este apasionante campo,
ya que el aprendizaje de un tema tan complejo como éste requiere de
muchos otros volúmenes para su estudio.
• Vamos a desarrollar una idea básica que sirve como planteamiento
primordial en el estudio de las redes neurales artificiales.
Introducción
• Una neurona biológica es una
célula especializada en
procesar información.
• Está compuesta por el cuerpo
de la célula (soma) y dos tipos
de ramificaciones: el axón y
las dendritas.
Introducción
• La neurona recibe las señales
(impulsos) de otras neuronas a
través de sus dendritas y
transmite señales generadas
por el cuerpo de la célula a
través del axón.
• El cuerpo celular de la neurona
biológica mide de entre 5 a 10
micras.
Introducción
• Las dendritas reciben
información de las neuronas
vecinas, el cuerpo celular
procesa dicha información y
emite una señal la cual es
distribuida a través del axón y
los terminales axónicos.
• Se calcula que en el cerebro
humano hay 1015 conexiones.
Introducción
• Las señales que se utilizan son de dos tipos: eléctricas y químicas.
• La señal generada por la neurona y transportada a lo largo del axón es
un impulso eléctrico, mientras que la señal que se transmite entre los
terminales axónicos de una neurona y las dendritas de la otra es de tipo
químico.
• Para establecer una similitud directa entre la actividad sináptica y la
analogía con las redes neurales artificiales podemos considerar que las
señales que llegan a la sinapsis son las entradas a la neurona; éstas son
ponderadas (atenuadas o amplificadas) a través de un parámetro
denominado peso, asociado a la sinapsis correspondiente.
Introducción
• El efecto es la suma de las entradas ponderadas. Si la suma es igual o
mayor que el umbral de la neurona, entonces la neurona se activa (da
salida).
• Esta es una situación de todo o nada; cada neurona se activa o no se
activa.
• La facilidad de transmisión de señales se altera mediante la actividad
del sistema nervioso. Las sinapsis son susceptibles a la fatiga,
deficiencia de oxígeno y la presencia de anestésicos, entre otros. Esta
habilidad de ajustar señales es un mecanismo de aprendizaje
Introducción
Sinapsis:
Introducción
Sinapsis:
Definición de RNA
• Dentro de la neurona se lleva a cabo un proceso de transmisión y
procesamiento de datos que se realiza en dos etapas: La primera es la
suma algebraica de las entradas de las sinapsis, este es el potencial
lento que alimenta a una función no lineal. La segunda etapa se
realiza con la evaluación de esta función obteniendo el valor de salida
de la neurona.
Definición de RNA
• Las RNA se definen como sistemas de mapeos no lineales cuya
estructura se basa en principios observados en los sistemas nerviosos
de humanos y animales.
• Constan de un número grande de procesadores simples ligados por
conexiones con pesos.
• Las unidades de procesamiento se denominan neuronas.
• Cada unidad recibe entradas de otros nodos y genera una salida simple
escalar que depende de la información local disponible, guardada
internamente o que llega a través de las conexiones con pesos.
Definición de RNA
Definición de RNA
• Una red neuronal se caracteriza por:
• Conjunto de unidades de procesamiento o neuronas.
• Un estado de activación para cada unidad.
• Conexiones entre las unidades, generalmente definidas por un peso que determina el
efecto de una señal de entrada en la unidad.
• Una regla de propagación, que determina la entrada efectiva de una unidad a partir de
las entradas externas.
• Una función de activación que actualiza el nuevo nivel de activación basándose en la
entrada efectiva y la activación anterior.
• Una entrada externa que corresponde a un término determinado como bias para cada
unidad.
• Un método para reunir la información, correspondiente a la regla del aprendizaje
• Un ambiente en el que el sistema va a operar, con señales de entrada e incluso señales
de error.
Definición de RNA
• La salida de una neurona viene dado por:
𝑦=𝑓 𝜔𝑘 𝑥𝑘
𝑘
Donde:
• 𝑥𝑘 : Corresponde a la señal de salida de otros nodos o entradas externas.
• 𝜔𝑘 : Corresponde a los pesos de las conexiones.
• 𝑓: Corresponde a una función no lineal simple.
• La entrada total 𝑢 de una unidad 𝑘 es la suma de los pesos de las entradas
conectadas, más un bias 𝜃:
𝑢= 𝜔𝑘 𝑥𝑘 + 𝜃
Función de Activación
• La regla que logra establecer el efecto de la entrada total u(t) en la
activación de la unidad “k” se denomina función de activación (𝐹𝑘 ).
𝑦 𝑡 + 1 = 𝐹𝑘 𝑦 𝑡 , 𝑢 𝑡
Función escalón:
• Asociada a neuronas binarias en
las cuales, cuando la suma de
las entradas es mayor o igual
que el umbral de la neurona, la
activación es 1; si es menor, la
activación es 0 (ó -1).
Función de Activación
Función Lineal y mixta:
• La función lineal o identidad responde a la expresión 𝐹𝑘 𝑢 = 𝑢. En las neuronas
con función mixta, si la suma de las señales de entrada es menor que un límite
inferior, la función se define como 0 (o -1). Si dicha suma es mayor o igual que el
límite superior, entonces la activación es 1.
Función de Activación
Función tangente hiperbólica:
• Se emplea en los casos que presentan variaciones suave de valores
positivos y negativos de la señal a clasificar.
Función de Activación
Función sigmoidal: Función Gauss:
• Es cercana a 1 ó 0
asintóticamente.
Topologías de las RNA
De acuerdo con las diferencias en la manera de realizar las conexiones
tenemos:
A. Redes de propagación hacia delante (feed-foward): el flujo de
información de las entradas a las salidas es exclusivamente hacia
delante, extendiéndose por capas múltiples de unidades, pero no hay
ninguna conexión de retroalimentación.
B. Redes recurrentes: contienen conexiones de retroalimentación, lo
que puede derivarse en un proceso de evolución hacia un estado
estable en el que no haya cambios en el estado de activación de las
neuronas..
Entrenamiento de RNA
• Entrenar una red neuronal consiste en ajustar cada uno de los pesos
de las entradas de todas las neuronas que forman parte de la red
neuronal, para que las respuestas de la capa de salida se ajusten lo más
posible a los datos que conocemos.
• Además, el aprendizaje puede dividirse en supervisado o asociativo y
no supervisado o auto-organizado. En el primer caso se introducen
entradas que corresponden a determinadas salidas, ya sea por un
agente externo o por el mismo sistema. En el segundo caso el
entrenamiento se enfoca a encontrar características estadísticas entre
agrupamientos de patrones en las entradas.
Entrenamiento de RNA
Perceptrón
• Los perceptrones de una capa pueden clasificar correctamente los
conjuntos de datos que son linealmente separables, esto es, que pueden
ser separados por un hiperplano. En dos dimensiones esto puede verse
como una línea recta que separa dos clases.
Perceptrón
• Un perceptrón convencional tiene una función de no linealidad binaria y la topología que
se muestra en la figura.
• Cada unidad calcula la suma u con pesos de las N entradas y genera una salida binaria y:
𝑁
𝑢= 𝜔𝑗 𝑥𝑗 = 𝝎𝑻 𝒙 + 𝜃
𝑗=0
−1, 𝑢≤0 −1, 𝑢≤0
𝑦= ó 𝑦=
1, 𝑢>0 0, 𝑢>0
Perceptrón
• Para el caso de la diapositiva anterior, la constante del bias es 1, por ende la
salida y valores objetivos asumidos serán ±1 ó 0
• Los pesos son actualizados por un número de reglas simples, comparando
las salidas y(𝑥) con los objetivos t(𝑥) . Los pesos son adaptados con la
ecuación:
2𝜂𝑡𝑥, 𝑠𝑖 𝑡 ≠ 𝑦
∆𝜔 =
0, 𝐸𝑛 𝑜𝑡𝑟𝑜 𝑐𝑎𝑠𝑜
Donde:
• 𝜂 es una constante positiva pequeña que controla la tasa de aprendizaje,
usualmente entre 0 y 1.
• Las redes de una capa y con función de activación sigmoidal se llaman
normalmente perceptrones.
Perceptrón
• La forma de entrenamiento se puede realizar de una manera recursiva
empleando la siguiente expresión:
∆𝜔 = 𝜔 𝑘 + 𝜂𝑥 𝑘 𝑒 𝑘
𝑑𝑜𝑛𝑑𝑒 𝑒 𝑘 = 𝑦𝑑 𝑘 − 𝑦(𝑘)
• El algoritmo de aprendizaje se define como:
1. Definir pesos iniciales con valores aleatorios.
2. Establecer los valores de entradas 𝑥1 , 𝑥2 , … , 𝑥𝑛
3. Calcular la salida de la neurona: 𝑦 = 𝑓( 𝑥𝑖 𝜔𝑖 + 𝜃)
4. Actualizar los pesos aplicando la formula superior.
5. Continuar hasta que: 𝑒 𝑘 ≤ 𝜉 (𝑡𝑜𝑙𝑒𝑟𝑎𝑛𝑐𝑖𝑎)
Redes MonoCapa
• Si se tiene una red de una sola capa, podemos representar la salida
haciendo una notación vectorial. • La salida puede ser escrita
como:
𝒂 = 𝑭(𝑾𝒙 + 𝒃)
• Donde x es el vector de
entradas, b es el vector de BIAS
y W es una matriz que contiene
los pesos, y es de la forma:
Perceptrón
Ejemplo: Obtener la tabla de verdad de la función booleana OR,
utilizando una tasa de aprendizaje 𝜂 = 1 y una función de activación
escalón. Los pesos iniciales son 𝜔0 = 1.5 𝑝𝑒𝑠𝑜 𝑑𝑒𝑙 𝑏𝑖𝑎𝑠 , 𝜔1 =
0.5, 𝜔2 = 1.5, 𝜃 = 1
X1 X2 Salida
0 0 0
0 1 1
1 0 1
1 1 1
Primera Corrida
Patrón de entrada: 00 Patrón de entrada: 01
• Entradas: 𝑥1 = 0, 𝑥2 = 0, 𝜃(𝐵𝐼𝐴𝑆) = 1 • Entradas: 𝑥1 = 0, 𝑥2 = 1, 𝜃(𝐵𝐼𝐴𝑆) = 1
• Pesos:𝜔1 = 0.5, 𝜔2 = 1.5, 𝜔0 = 1.5 • Pesos:𝜔1 = 0.5, 𝜔2 = 1.5, 𝜔0 = 0.5
• Sumatoria: 𝜔1 𝑥1 + 𝜔2 𝑥2 + 𝜔0 𝜃 = 1.5 • Sumatoria: 𝜔1 𝑥1 + 𝜔2 𝑥2 + 𝜔0 𝜃 = 2
• Función activación: 1, 𝑝𝑜𝑟𝑞𝑢𝑒 𝑥 ≥ 0 • Función activación: 1, 𝑝𝑜𝑟𝑞𝑢𝑒 𝑥 ≥ 0
• Salida Deseada: 0 • Salida Deseada: 1
• Error: 0 − 1 = −1 • Error: 1 − 1 = 0
• Pesos Modificados: • Los pesos no se modifican puesto que la
𝜔0 𝑘 + 1 = 1.5 + 1 ∙ 1 ∙ −1 = 0.5 salida es la deseada.
𝜔1 𝑘 + 1 = 0.5 + 1 ∙ 0 ∙ −1 = 0.5 • Para la entrada 10 y 11 se repite la salida y
𝜔2 𝑘 + 1 = 1.5 + 1 ∙ 0 ∙ −1 = 1.5 no hay modificación de pesos.
Segunda Corrida
Patrón de entrada: 00 Patrón de entrada: 01
• Entradas: 𝑥1 = 0, 𝑥2 = 0, 𝜃(𝐵𝐼𝐴𝑆) = 1 • Entradas: 𝑥1 = 0, 𝑥2 = 1, 𝜃(𝐵𝐼𝐴𝑆) = 1
• Pesos:𝜔1 = 0.5, 𝜔2 = 1.5, 𝜔0 = 0.5 • Pesos:𝜔1 = 0.5, 𝜔2 = 1.5, 𝜔0 = −0.5
• Sumatoria: 𝜔1 𝑥1 + 𝜔2 𝑥2 + 𝜔0 𝜃 = 0.5 • Sumatoria: 𝜔1 𝑥1 + 𝜔2 𝑥2 + 𝜔0 𝜃 = 1
• Función activación: 1, 𝑝𝑜𝑟𝑞𝑢𝑒 𝑥 ≥ 0 • Función activación: 1, 𝑝𝑜𝑟𝑞𝑢𝑒 𝑥 ≥ 0
• Salida Deseada: 0 • Salida Deseada: 1
• Error: 0 − 1 = −1 • Error: 1 − 1 = 0
• Pesos Modificados: • Los pesos no se modifican puesto que la
𝜔0 𝑘 + 1 = 0.5 + 1 ∙ 1 ∙ −1 = −0.5 salida es la deseada.
𝜔1 𝑘 + 1 = 0.5 + 1 ∙ 0 ∙ −1 = 0.5 • Para la entrada 10 y 11 se repite la salida y
𝜔2 𝑘 + 1 = 1.5 + 1 ∙ 0 ∙ −1 = 1.5 no hay modificación de pesos.
Tercera Corrida
Patrón de entrada: 00 • Con estos nuevos pesos los
• Entradas: 𝑥1 = 0, 𝑥2 = 0, 𝜃(𝐵𝐼𝐴𝑆) = 1 patrones de entrada coinciden
• Pesos:𝜔1 = 0.5, 𝜔2 = 1.5, 𝜔0 = −0.5 con las salidas, ya no se comete
• Sumatoria: 𝜔1 𝑥1 + 𝜔2 𝑥2 + 𝜔0 𝜃 = −0.5 ningún error y por lo tanto la
• Función activación: 0, 𝑝𝑜𝑟𝑞𝑢𝑒 𝑥 < 0 etapa de aprendizaje concluye.
• Salida Deseada: 0
• Error: 0 − 0 = 0
• No hay modificación de pesos porque el
error es cero!.
• La salida es igual a la deseada para
entrada 01, 10, 11
Resumen:
Perceptrón
• Un perceptrón de dos entradas puede separar un plano en dos
secciones, ya que su ecuación forma una línea recta, tal cual como
muestra la figura:
Perceptrón
• Considerando las entradas con sus respectivos pesos y un bias, y si
buscamos los valores de entrada que nos hagan la salida 0, se obtiene
la ecuación:
𝜔1 𝑥1 + 𝜔𝑤 𝑥2 + 𝜃 = 0
• Despejando resulta una ecuación donde los pesos determinan la
pendiente de la línea y el bias determina el desplazamiento vertical de
la clasificación lineal:
𝜔1 𝜃
𝑥2 = − 𝑥1 −
𝜔2 𝜔2
• A esta recta se le conoce como frontera de decisión y es ortonormal al
vector de los pesos en la red.
Perceptrón
Ejemplo: Se desea clasificiar patrones linealmente separables, se
propone un perceptrón de dos entradas para ser entrenado, con pesos
iniciales w1=-0.1, w2=-0.8 y un bias de -0.5, esto va a generar una línea
recta como la de la figura:
Perceptrón
Ejemplo: Si se entrena la red y se modifican constantemente los pesos
se puede llegar a que: w1=2.7 y w2=0.5, lo que da una curva como la de
la figura que si clasifica correctamente a los puntos.
Perceptrón
Ejemplo: Queremos construir un sistema automático que coloque las
manzanas en el depósito verde y las piñas en el depósito amarillo.
Usamos dos sensores para determinar el fruto y una cámara para
determinar el color promedio del fruto. Diseñe una red neuronal
perceptrón que realice la clasificación entre piñas y manzanas.
Considere que los sensores entregan los siguientes niveles de voltajes
para las siguientes piñas típicas:
𝑃𝑒𝑠𝑜 1.5 0.9 2.1
𝑋= , 𝑥1 = , 𝑥2 = , 𝑥3 =
𝐶𝑜𝑙𝑜𝑟 −0.3 0.05 0.2
Y para las siguientes manzanas típicas:
𝑃𝑒𝑠𝑜 0.24 0.45 0.15
𝑋= , 𝑥4 = , 𝑥5 = , 𝑥6 =
𝐶𝑜𝑙𝑜𝑟 −0.87 −0.6 −0.43
Perceptrón
• Consideremos que cuando la neurona no está activa, indica que es
piña, en caso de que se active la neurona, indica que es manzana.
• Para este ejercicio se
grafican las piñas y
manzanas, se traza una recta
que agrupe los conjuntos y
se obtiene la ecuación de la
recta:
𝑥1 + 𝑥2 − 0.5 = 0
Por lo tanto:
𝜔1 = 1, 𝜔2 = 1, 𝜃 = −0.5
Perceptrón
Ejemplo 2: un bibliotecario tiene una base de datos de 500.000 libros, necesita
clasificarlos en 4 conjuntos mediante dos criterios, peso y frecuencia de uso del
libro. Estos para decidir en qué parte de la biblioteca serán colocados. La base de
datos contiene el peso y la frecuencia de uso de cada libro. Diseñe una red neuronal
perceptrón para que automáticamente clasifique los libros. Considere que el
bibliotecario le proporciona los siguientes patrones de prueba:
Clases Pero (kg)
Frec. Uso = N° prestamos/mes
1 Ligeros y poco usados 0.7 1.5
𝑥1 = , 𝑥2 =
3 5
2 Ligeros y muy usados 2.0 0.9
𝑥3 = , 𝑥4 =
9 11
3 Pesados y poco usados 4.2 2.2
𝑥5 = , 𝑥6 =
0 1
4 Pesados y muy usados 3.6 4.5
𝑥7 = , 𝑥8 =
7 6
Clase A1 A2
Perceptrón 1
2
0
0
0
1
3 1 0
La representación de cada clase será: 4 1 1
1 𝑒 𝑥 − 𝑒 −𝑥 𝑒 𝑥 − 𝑒 −𝑥
𝑓 𝑥 = 𝑓 𝑥 = 𝑥 𝑓 𝑥 = 𝑥
1 + 𝑒 −𝑥 𝑒 + 𝑒 −𝑥 𝑒 + 𝑒 −𝑥
Perceptrón Multicapa
• 1986, Rumelhart & Compañía,
presentó un método para
retropropagar el error medido en la
salida hacia las neuronas ocultas.
Se denomina REGLA DELTA
GENERALIZADA.
• Esta técnica es muy empleada ya
que permite tener un método de
optimización que se encuentra al
definir el gradiente del error y
minimizarlo con respecto a los
parámetros de la red neural.
Perceptrón Multicapa
• 1986, Rumelhart & Compañía,
presentó un método para
retropropagar el error medido en la
salida hacia las neuronas ocultas.
Se denomina REGLA DELTA
GENERALIZADA.
• Esta técnica es muy empleada ya
que permite tener un método de
optimización que se encuentra al
definir el gradiente del error y
minimizarlo con respecto a los
parámetros de la red neural.
Perceptrón Multicapa
• Para enseñarle a la red neuronal es
necesario entrenar un conjunto de
datos, el cual consta de señales de
entrada y objetivos correspondientes.
• El entrenamiento es un proceso
iterativo, en cada iteración los pesos
se actualizan con el siguiente
algoritmo.
• Primero se tiene un avance hacia
adelante, calculando la salida
correspondiente de cada neurona.
Perceptrón Multicapa
• El siguiente paso del algoritmo es calcular el error. Cómo es imposible
calcular el error de las neuronas de la capa oculta, el algoritmo hace la
“retropropagación” del error de regreso a todas las neuronas, cuya
salida fue la entrada de la última neurona.
Perceptrón Multicapa
• Posteriormente el error se va propagando a las neuronas de capas
anteriores, considerando los pesos de las conexiones, según se aprecia
en la figura.
Perceptrón Multicapa
• El coeficiente 𝜂 afecta la
velocidad de aprendizaje.
• Notar que la variación de los
pesos depende de dos factores:
𝑑𝑓1
de 𝛿 y de , siendo 𝑓1 la
𝑑𝜔
función de activación del nodo
1.
• Procederemos a encontrar el
algoritmo dichos factores como
se demuestra a continuación
Perceptrón Multicapa
• En resumen la retropropagación es de la siguiente forma:
Perceptrón Multicapa
Algoritmo de Retropropagación:
1 2 3
Perceptrón Multicapa
Calculo de derivada (1):
• El proceso a seguir es similar al usado para la capa de salida, pero con
una pequeña variación para tener en cuenta el hecho de que la salida
de cada neurona de la capa oculta contribuye a la salida (y, por lo
tanto, al error) de las neuronas de salida múltiple.
• Notar que 𝑜𝑢𝑡ℎ1 afecta tanto a 𝑜𝑢𝑡𝑜1 como a 𝑜𝑢𝑡𝑜2 , por lo tanto
𝜕𝐸𝑡𝑜𝑡𝑎𝑙
debe tener en cuenta su efecto en las dos neuronas de salida,
𝜕𝑜𝑢𝑡ℎ1
por lo tanto:
𝜕𝐸𝑡𝑜𝑡𝑎𝑙 𝜕𝐸𝑜1 𝜕𝐸𝑜2
= +
𝜕𝑜𝑢𝑡ℎ1 𝜕𝑜𝑢𝑡ℎ1 𝜕𝑜𝑢𝑡ℎ1
Perceptrón Multicapa
Calculo de derivada (1):
𝜕𝐸𝑜1
• Para continuar debemos entoncesencontrar , para esto:
𝜕𝑜𝑢𝑡ℎ1
𝜕𝐸𝑜1 𝜕𝐸𝑜1 𝜕𝑛𝑒𝑡𝑜1
= ∙
𝜕𝑜𝑢𝑡ℎ1 𝜕𝑛𝑒𝑡𝑜1 𝜕𝑜𝑢𝑡ℎ1
• Pero, la primera derivada ya la encontramos anteriormente:
𝜕𝐸𝑜1 𝜕𝐸𝑜1 𝜕𝑜𝑢𝑡𝑜1
= ∙ = 0.7413 ∙ 0.1868 = 0.1384
𝜕𝑛𝑒𝑡𝑜1 𝜕𝑜𝑢𝑡𝑜1 𝜕𝑛𝑒𝑡𝑜1
• Además:
𝜕𝑛𝑒𝑡𝑜1
= 𝑤5 = 0.4
𝜕𝑜𝑢𝑡ℎ1
Perceptrón Multicapa
Calculo de derivada (1):
• Entonces todo junto es:
𝜕𝐸𝑜1 𝜕𝐸𝑜1 𝜕𝑛𝑒𝑡𝑜1
= ∙ = 0.1384 ∙ 0.4 = 0.055399425
𝜕𝑜𝑢𝑡ℎ1 𝜕𝑛𝑒𝑡𝑜1 𝜕𝑜𝑢𝑡ℎ1
𝜕𝐸𝑜2
• De manera similar a lo anterior calculamos :
𝜕𝑜𝑢𝑡ℎ1
𝜕𝐸𝑜2
= −0.019049119
𝜕𝑜𝑢𝑡ℎ1
• Por lo tanto, la suma es:
𝜕𝐸𝑡𝑜𝑡𝑎𝑙 𝜕𝐸𝑜1 𝜕𝐸𝑜2
= + = 0.0553 + −0.01904 = 0.036350306
𝜕𝑜𝑢𝑡ℎ1 𝜕𝑜𝑢𝑡ℎ1 𝜕𝑜𝑢𝑡ℎ1
Perceptrón Multicapa
Calculo de derivada (2):
𝜕𝑜𝑢𝑡ℎ1
• Ahora tenemos que averiguar ,
para esto notar que:
𝜕𝑛𝑒𝑡ℎ1
1
𝑜𝑢𝑡ℎ1 =
1 + 𝑒 −𝑛𝑒𝑡ℎ1
𝜕𝑜𝑢𝑡ℎ1
∴ = 𝑜𝑢𝑡ℎ1 ∙ 1 − 𝑜𝑢𝑡ℎ1 = 0.2413007
𝜕𝑛𝑒𝑡ℎ1
Calculo de derivada (3):
𝜕𝑛𝑒𝑡ℎ1
= 𝑖1 = 0.05
𝜕𝑤1
Perceptrón Multicapa
• Juntando todo:
𝜕𝐸𝑡𝑜𝑡𝑎𝑙 𝜕𝐸𝑡𝑜𝑡𝑎𝑙 𝜕𝑜𝑢𝑡ℎ1 𝜕𝑛𝑒𝑡ℎ1
= ∙ ∙
𝜕𝑤1 𝜕𝑜𝑢𝑡ℎ1 𝜕𝑛𝑒𝑡ℎ1 𝜕𝑤1
𝜕𝐸𝑡𝑜𝑡𝑎𝑙
= 0.03635 ∙ 0.2413 ∙ 0.05 = 0.0004
𝜕𝑤1
• Con este resultado es posible actualizar w1 como sigue:
∗
𝜕𝐸𝑡𝑜𝑡𝑎𝑙
𝑤1 = 𝑤1 − 𝜂
𝜕𝑤1
𝑤1∗ = 0.15 − 0.5 ∙ 0.0004 = 0.149780716
Perceptrón Multicapa
• Es posible repetir el proceso para los demás pesos, la actualización es:
𝑤2∗ = 0.19956143
𝑤3∗ = 0.24975114
𝑤4∗ = 0.29950229
• Finalmente se actualizaron todos los pesos. Recordar que el error en
un principio fue de 0.298371109. Después de esta primera ronda de
retropropagación el error total se ha reducido a 0.291027924.
• Puede que no parezca mucho, pero después de repetir el proceso 100,
1000 ó 10000 épocas el error cae en picada a 0.000035, en este punto
las entradas de 0.05 y 0.1 las dos neuronas generan 0.015912196 (vs
0.01 objetivo) y 0.98 (vs 0.99 objetivo).
Perceptrón Multicapa
Ejemplo 3: Se tiene la siguiente RN,
calcular la actualización de los pesos
utilizando el algoritmo de
BackPropagation en MATLAB
considerando que todas las neuronas
tienen una función de activación
sigmoidal y 𝜂 = 0.5
Perceptrón Multicapa
Ejemplo 4: Entrenar una red neuronal multicapa para resolver el
problema de XOR.
X Y OUT
0 0 0
0 1 1
1 0 1
1 1 0
TAREA
Aquel estudiante que sea capaz de graficar la
frontera de decisión tendrá +5 décimas para la
prueba correspondiente a la unidad.
Perceptrón Multicapa
Ejemplo 5: Entrenar una red neuronal multicapa para calsificar los
patrones de ejemplo contenidos en el archivo “clasificacion100.mat”.
Perceptrón Multicapa
Ejemplo 6: Construir en MATLAB 2.5
función.
Objetivos
1
Nota: En la capa de salida se debe
utilizar una función de activación 0.5
lineal. 0
-0.5
0 1 2 3 4 5 6
Patrones de Entrada
Perceptrón Multicapa
Ejercicio: Realizar un código en 1.5
Objetivos
salida. 0
-0.5
-1.5
10 12 14 16 18 20 22 24 26 28 30
Patrones Entrada
Perceptrón Multicapa
Consideraciones del algoritmo:
• Se suele usar también un término conocido como momentum (inercia)
en el ajuste de pesos, que acelera la convergencia del algoritmo, esto
consiste en tener en consideración el peso de la iteración n para la
actualización del peso en la iteración n+1.
𝜕𝐸
∆𝑤 𝑛 = −𝜂 + 𝛼∆𝑤 𝑡 − 1 , 0≤𝛼<1
𝜕𝑤
• Esto tiene los siguientes efectos:
• Suaviza los cambios en los pesos filtrando variaciones de alta frecuencia.
• Ayuda a apresurar la convergencia.
• Ayuda a escapar de mínimos locales.
Perceptrón Multicapa
Consideraciones del algoritmo:
• N° de capas y neuronas: No hay procedimientos claros para decidir
el mejor número de capas y/o neuronas en la RNA. Hay publicaciones
sobre cotas mínimas y máximas, generalmente para problemas de
clasificación en función del número de ejemplos de entrenamiento,
pero en la práctica casi nunca funcionan.
• Cualquier función continua puede ser aproximada con una sola capa oculta.
• Empíricamente, mas capas es mejor (aunque ralentiza el algoritmo).
• Más capas hacen más fácil el aprendizaje, pero hacen mas lento procesar una
época.
• La corteza cerebral tiene entre 50 – 100 capas.
Perceptrón Multicapa
Consideraciones del algoritmo:
• Conjunto de entrenamiento: Si se pretende un buen aprendizaje del
dominio del problema, el conjunto de entrenamiento debe cubrir todo el
espectro posible.
• Preparación de los datos: En general, los datos no se utilizan directamente
en la forma en que se obtienen o los proporciona el problema. Casi siempre
hay que hacer un pre-procesamiento, para adaptar los datos reales al modelo
usado. Por ejemplo, las salidas hay que normalizarlas en [0,1] si se usa
activación sigmoide, porque sino, el error nunca podrá reducirse de forma
satisfactoria. También es habitual normalizar las entradas, aún cuando no
sea necesario. Obviamente, habrá un post-procesamiento de resultados, para
hacerlos válidos en la realidad del problema.
Perceptrón Multicapa
Consideraciones del algoritmo:
• Velocidad de convergencia: El algoritmo de BP es lento y se han
propuesto muchas modificaciones y variantes para mejorar la
velocidad del entrenamiento.
• Mínimos locales: El método del gradiente descendente a veces queda
“atrapado” en un mínimo local, del que no puede salir, y por tanto el
aprendizaje no se hace bien.
Perceptrón Multicapa
Consideraciones del algoritmo:
• Sobreentrenamiento: Es el problema
de que se aprende muy bien los
ejemplos de entrenamiento, pero cuando
se usa la RNA entrenada, con muestras
que no ha aprendido, no es capaz de dar
buenas respuestas.
Perceptrón Multicapa
Consideraciones del algoritmo:
• Saturación: Se puede producir cuando las salidas esperadas en cada
neurona de salida son 0 o 1. Al pretender acercar las salidas de la Red
a estos valores, nos ponemos en zonas donde la función de activación
tiene tangente de pendiente casi cero y entonces no se produce apenas
modificación de los pesos y por tanto del error.
• La forma de resolverlo es cambiar los valores de salidas esperadas a
0.1 y 0.9 . Esto puede requerir adaptación de los datos reales. También
se produce si los pesos se hacen muy grandes, por que los resultados
de la Red ya no varían.
Perceptrón Multicapa
Resumen del algoritmo:
• El algoritmo tiene los siguientes pasos:
1. Propagar hacia adelante.
2. Calculo sensibilidad capa final y propagar hacia atrás.
3. Actualización pesos y Bias
• Los pesos se actualizan con la siguiente formula:
𝑚 𝑚
𝜕𝐸 𝑚 − 𝜂𝛿 𝑚 𝑎 𝑚−1 𝑇
𝑤 =𝑤 −𝜂 = 𝑤
𝜕𝑤 𝑚
• Cuando se tienen muchas capas ocultas y/o más de una capa de salida, la
sensibilidad de las capas intermedias se determina por:
𝑁𝑛𝑒𝑢−𝑜𝑐𝑢𝑙