Algoritmo BackpropagationAprendizaje en Otros Modelos
Métodos de Aprendizaje en Redes Neuronales
Hugo Franco, PhD
11 de abril de 2011
Hugo Franco, PhD Métodos de Aprendizaje en Redes Neuronales
Algoritmo BackpropagationAprendizaje en Otros Modelos
Formalización del AlgoritmoEjemplo Grá�co Backpropagation
Entrenamiento de redes feedforward (Backpropagation)
Siendo {zm, tm}m=1...n un conjunto de n patrones de entrenamiento,con zm las entradas conocidas para el m−ésimo patrón y tmlas salidasdeseadas en cada neurona de salida para ese patrón
Algoritmo Backpropagation
1 Iniciar aleatoriamente los pesos de la red
2 Para cada patrón m de entrenamiento, de 1 a n
1 Presentar un patrón de entrada zm a la Red Neuronal.2 Propagar éstas entradas hacia la capa de salida.3 Calcular el error en la capa de salida4 `Retropropagar' dicho error hacia la capa oculta a través de la regla
delta5 Cambiar los pesos de las conexiones.
3 Si tras recorrerse todos los patrones el error cuadrático medio de lasalida para todos y cada uno de ellos es menor a un umbral,terminar. En caso contrario, volver a 2
Hugo Franco, PhD Métodos de Aprendizaje en Redes Neuronales
Algoritmo BackpropagationAprendizaje en Otros Modelos
Formalización del AlgoritmoEjemplo Grá�co Backpropagation
Propagación (Feedforward)
Funcionamiento usual de la red (entrenada o durante entrenamiento).Consiste en
Propagación
1 Inicializar todos los valores vi, i ∈ C0 de las unidades de entradacon el patrón a procesar
2 Para cada capa Ck, k ≥ 1 (oculta o salida)
1 Para cada neurona j en la capa Ck
1 Calcular la entrada de la neurona
netj =∑
i∈Ck−1
viwij + θj
2 Calcular la salida de la neurona
vj = φ(netj)
Hugo Franco, PhD Métodos de Aprendizaje en Redes Neuronales
Algoritmo BackpropagationAprendizaje en Otros Modelos
Formalización del AlgoritmoEjemplo Grá�co Backpropagation
Estimación y uso del Error
El error global de la red en cada paso n del entrenamiento se puedecuanti�car con la suma de errores cuadráticos
En =1
2
∑j∈Cout
(tj,m − vj)2
estableciéndose así la condición de parada, imponiendo un �máximo erroraceptable en la salida�, εmax. Así, la condición es En < εmax
Se busca la minimización del error mediante la variación de los pesos,según
∂E
∂wij=
∂E
∂netj
∂netj∂wij
=∂E
∂netjvi
porque∂netj∂wij
= vi, la entradas a la neurona j desde la neurona i de la
capa anterior. Esto nos deja la notación
∂E
∂netj≡ δnj = φ′(netj)(tj,m − vj)
Hugo Franco, PhD Métodos de Aprendizaje en Redes Neuronales
Algoritmo BackpropagationAprendizaje en Otros Modelos
Formalización del AlgoritmoEjemplo Grá�co Backpropagation
¾Porqué el resultado para δj ?
Para las neuronas de salida, la contribución al error de cada neurona jsólo depende de su entrada {vi}i∈Cout−1
y de los pesos que la conectancon dicha entrada. Entonces
∂E
∂netj=
∂
∂netj
(1
2(vj(netj)− tj,m)
)2
= − (tj,m − vj(netj))∂
∂netjvj(netj)
= − (tj,m − vj(netj))φ′(netj)
puesto que vj = φ(netj).
Hugo Franco, PhD Métodos de Aprendizaje en Redes Neuronales
Algoritmo BackpropagationAprendizaje en Otros Modelos
Formalización del AlgoritmoEjemplo Grá�co Backpropagation
Regla Delta adaptada
Dado lo anterior, podemos plantear la expresión de actualización de pesospara conexiones con neuronas de la capa de salida
∆wij = −η ∂E∂wij
= ηδjvi
Para las neuronas ocultas, el error en la neurona oculta i de la capa k seestima considerando todos los errores inducidos en las neuronas de lacapa siguiente. Teniendo la estimación inicial del error en la capa desalida, para calcular los δi en las capas ocultas se hace:
δi = φ′(neti)∑
j∈Ck+1
wijδj
y se aplica la misma regla de actualización iterativamente (tiempo n)para todas las conexiones de la red
∆wnij = ηδjvi
wnij = wn−1
ij + ∆wnij
Hugo Franco, PhD Métodos de Aprendizaje en Redes Neuronales
Algoritmo BackpropagationAprendizaje en Otros Modelos
Formalización del AlgoritmoEjemplo Grá�co Backpropagation
Algoritmo de Backpropagation
Parámetros: η: �tasa de aprendizaje, εmax: umbral de error, {zp,Sp}Npatrones de entrenamiento, N : número de patrones
Inicializar todos los pesos wj con valores aleatoriosHacer
1 Inicializar bandera de error a falso
2 Para p = 0 hasta N
1 Propagar→Estimar la salida, vi para el patrón de entrada zp2 Calcular E. Si E > εmax cambiar a verdadero la bandera de error,
sino, pasar a siguiente patrón zp+1
3 Con Sp, estimar el δj para cada neurona j de la capa de salida Cout
4 Para todas las capas ocultas desde Cout−1hasta C1
1 Para todas las neuronas i de cada capa
� Calcular el error δi y el ∆θi, actualizar θi
5 Para todas las conexiones de la red� Calcular el ∆wij
� Actualizar los pesos de las conexiones wij
Mientras bandera de error sea verdaderaHugo Franco, PhD Métodos de Aprendizaje en Redes Neuronales
Algoritmo BackpropagationAprendizaje en Otros Modelos
Formalización del AlgoritmoEjemplo Grá�co Backpropagation
Estructura de la red
Ryszard Tadeusiewcz "Sieci neuronowe", Kraków 1992.
Hugo Franco, PhD Métodos de Aprendizaje en Redes Neuronales
Algoritmo BackpropagationAprendizaje en Otros Modelos
Formalización del AlgoritmoEjemplo Grá�co Backpropagation
Fase de propagación adelante I
Hugo Franco, PhD Métodos de Aprendizaje en Redes Neuronales
Algoritmo BackpropagationAprendizaje en Otros Modelos
Formalización del AlgoritmoEjemplo Grá�co Backpropagation
Fase de propagación adelante II
Hugo Franco, PhD Métodos de Aprendizaje en Redes Neuronales
Algoritmo BackpropagationAprendizaje en Otros Modelos
Formalización del AlgoritmoEjemplo Grá�co Backpropagation
Fase de propagación adelante III
Hugo Franco, PhD Métodos de Aprendizaje en Redes Neuronales
Algoritmo BackpropagationAprendizaje en Otros Modelos
Formalización del AlgoritmoEjemplo Grá�co Backpropagation
Fase de propagación adelante IV
Hugo Franco, PhD Métodos de Aprendizaje en Redes Neuronales
Algoritmo BackpropagationAprendizaje en Otros Modelos
Formalización del AlgoritmoEjemplo Grá�co Backpropagation
Fase de propagación adelante V
Hugo Franco, PhD Métodos de Aprendizaje en Redes Neuronales
Algoritmo BackpropagationAprendizaje en Otros Modelos
Formalización del AlgoritmoEjemplo Grá�co Backpropagation
Fase de propagación adelante VI
Hugo Franco, PhD Métodos de Aprendizaje en Redes Neuronales
Algoritmo BackpropagationAprendizaje en Otros Modelos
Formalización del AlgoritmoEjemplo Grá�co Backpropagation
Fase de retropropagación I
Hugo Franco, PhD Métodos de Aprendizaje en Redes Neuronales
Algoritmo BackpropagationAprendizaje en Otros Modelos
Formalización del AlgoritmoEjemplo Grá�co Backpropagation
Fase de retropropagación II
Hugo Franco, PhD Métodos de Aprendizaje en Redes Neuronales
Algoritmo BackpropagationAprendizaje en Otros Modelos
Formalización del AlgoritmoEjemplo Grá�co Backpropagation
Fase de retropropagación III
Hugo Franco, PhD Métodos de Aprendizaje en Redes Neuronales
Algoritmo BackpropagationAprendizaje en Otros Modelos
Formalización del AlgoritmoEjemplo Grá�co Backpropagation
Fase de retropropagación IV
Hugo Franco, PhD Métodos de Aprendizaje en Redes Neuronales
Algoritmo BackpropagationAprendizaje en Otros Modelos
Formalización del AlgoritmoEjemplo Grá�co Backpropagation
Fase de retropropagación V
Hugo Franco, PhD Métodos de Aprendizaje en Redes Neuronales
Algoritmo BackpropagationAprendizaje en Otros Modelos
Formalización del AlgoritmoEjemplo Grá�co Backpropagation
Fase de retropropagación VI
Hugo Franco, PhD Métodos de Aprendizaje en Redes Neuronales
Algoritmo BackpropagationAprendizaje en Otros Modelos
Formalización del AlgoritmoEjemplo Grá�co Backpropagation
Fase de actualización de pesos I
Hugo Franco, PhD Métodos de Aprendizaje en Redes Neuronales
Algoritmo BackpropagationAprendizaje en Otros Modelos
Formalización del AlgoritmoEjemplo Grá�co Backpropagation
Fase de actualización de pesos II
Hugo Franco, PhD Métodos de Aprendizaje en Redes Neuronales
Algoritmo BackpropagationAprendizaje en Otros Modelos
Formalización del AlgoritmoEjemplo Grá�co Backpropagation
Fase de actualización de pesos III
Hugo Franco, PhD Métodos de Aprendizaje en Redes Neuronales
Algoritmo BackpropagationAprendizaje en Otros Modelos
Formalización del AlgoritmoEjemplo Grá�co Backpropagation
Fase de actualización de pesos IV
Hugo Franco, PhD Métodos de Aprendizaje en Redes Neuronales
Algoritmo BackpropagationAprendizaje en Otros Modelos
Formalización del AlgoritmoEjemplo Grá�co Backpropagation
Fase de actualización de pesos V
Hugo Franco, PhD Métodos de Aprendizaje en Redes Neuronales
Algoritmo BackpropagationAprendizaje en Otros Modelos
Formalización del AlgoritmoEjemplo Grá�co Backpropagation
Fase de actualización de pesos VI
Hugo Franco, PhD Métodos de Aprendizaje en Redes Neuronales
Algoritmo BackpropagationAprendizaje en Otros Modelos
Modelos Competitivos Auto-organizados: Red de Kohonen
Estructura bicapa
Las neuronas de la capa de entrada,
x = [x1, x2, · · · , xm]
son captadores simples (toman datos presentados a la red y lospasan a la siguiente capa de manera ponderada a través de los pesosa las conexiones).
Las neuronas de la capa siguiente son una matriz bidimensionalconocida como mapa auto-organizado, en la que los elementos seactivan por regiones (vecindades), según sean los patrones deentrada
Datos de complejidad arbitraria pueden ser proyectados al espaciodel mapa auto-organizado de forma ponderada a través de un vector(matriz) de pesos. Esto es (para la k�ésima iteración delentrenamiento)
wki =
[wk
i1, wki2, · · · , wk
in
]Tdonde n es el número de neuronas.
Hugo Franco, PhD Métodos de Aprendizaje en Redes Neuronales
Algoritmo BackpropagationAprendizaje en Otros Modelos
Estructura de la red de Kohonen
Neurona Ganadora
Matriz de neuronas
de salida
Entradas (sección)
Neurona
ganadora
ir
vecindad
de la neurona
ganadora
La vecindad se de�netopológicamente como la bola Br
Hugo Franco, PhD Métodos de Aprendizaje en Redes Neuronales
Algoritmo BackpropagationAprendizaje en Otros Modelos
Aprendizaje en la Red de Kohonen
El aprendizaje en la red de Kohonen es de tipo competitivo: Sepremia a las neuronas que se activan de forma diferenciada ante unpatrón de entrenamiento especí�co
Se trata de un modelo de aprendizaje no�supervisado
No se presenta a la red un conjunto de salidas deseadas sino que serefuerza el comportamiento que se considera deseable
El algoritmo de entrenamiento es un proceso de auto-organización
Los patrones son presentados iterativamente en la capa de entrada e,iterativamente, los pesos se van ajustando de modo que una neuronao región es activada para cada patrónLas neuronas compiten entre sí por ser activadas de acuerdo a lospatrones de entrada presentados, según una función de ponderaciónque refuerza la activación de la región más activaLa tasa de aprendizaje es variable. p.ej
µk =1
αk
Hugo Franco, PhD Métodos de Aprendizaje en Redes Neuronales
Algoritmo BackpropagationAprendizaje en Otros Modelos
Algoritmo de entrenamiento para la red de Kohonen
1 Inicialización:
1 El peso w0ij de cada conexión entre las neuronas i de la capa de
entrada y j del mapa auto-organizado se asigna (aleatoriamente),2 De�nir la vecindad de las neuronas a través del valor r, su radio
2 Presentar un patrón de entrenamiento conocido z = [z1, z2, · · · , zm]
3 Se determina la neurona n cuyo vector de pesos es el más cercano alvector patrón de entrada. Se suele emplear la distancia euclídea
minn
di(n), di(n) =
√∑i
(xki − wki,n)2
4 Se actualizan los pesos de todas las conexiones wi,n, para la n�ésimaunidad del mapa (n �jo)
wk+1i,n =
{wk
i + µk(xki − wki,n) si i ∈ Br
wki,n si i /∈ Br
5 Regresar a 2. hasta que k alcance un número de iteraciones especi�cado
Hugo Franco, PhD Métodos de Aprendizaje en Redes Neuronales
Algoritmo BackpropagationAprendizaje en Otros Modelos
Memorias Asociativas Bidireccionales (BAM)
Casos particulares de la máquina de memoriabicapa sin conexiones laterales
El conocimiento se almacena en los pesos dela red que asocian entradas con salidasmediante un proceso de transformación
La con�guración de entradas y salidas debetener una correspondencia intrínseca. Losvalores entrantes y salientes suelen serbinarios ((0, 1) o (-1, 1)). Se suelenpolarizar los patrones (representarlos comofunción signo)Las neuronas de la capa oculta permiten�procesar� el conocimiento de las conexionessobre el patrón de entrada, aproximándolo aun patrón conocido previamente entrenado
Se genera un modelo de memoria
asociativa
B
A
Hugo Franco, PhD Métodos de Aprendizaje en Redes Neuronales
Algoritmo BackpropagationAprendizaje en Otros Modelos
Funcionamiento de una red tipo BAM
El Patrón de entrada es presentado a la red a través de la capa deentrada con valores en el vector A, propagándose a la capa desalida, B, a través de las conexiones con pesos en la matriz W,activándolas con un vector de valores B
A→W→ B
Los valores de activación B de la capa oculta regresan a la capavisible mediante la aplicación de la matriz transpuesta de pesos WT
B→WT → A′
El vector de valores obtenido en la capa A′ se propaga de nuevohacia la capa oculta, generando nuevos valores de activación, B′
A′ →W→ B′
Este proceso se repite hasta que la red alcance un estado estable(variaciones por debajo de un umbral aceptable - menor �energía�almacenada en W)
Hugo Franco, PhD Métodos de Aprendizaje en Redes Neuronales
Algoritmo BackpropagationAprendizaje en Otros Modelos
Funcionamiento de una red tipo BAM
Ejemplo de implementación de una memoria BAM
Hugo Franco, PhD Métodos de Aprendizaje en Redes Neuronales
Algoritmo BackpropagationAprendizaje en Otros Modelos
Aprendizaje de una red tipo BAM
1 Inicializar aleatoriamente W
2 Leer un vector de entrada A y un vector de salida B, polarizándolossi es necesario (pasar de (0,1) a (-1,1))
3 Para todos los elementos {wij} que unen a neuronas ai ∈ A ybj ∈ B hacer
wn+1ij = wn
ij + aibj
4 Si hay más patrones de entrada, volver a 2. hasta presentarlos todosa la red BAM
Hugo Franco, PhD Métodos de Aprendizaje en Redes Neuronales
Algoritmo BackpropagationAprendizaje en Otros Modelos
Recuperación de patrones en una red tipo BAM
1 Leer un vector de entrada A en la red
2 Generar la salida B para el patrón de presentado. Para todos los bj
bn+1j =
1 si
∑i aiwij > 0
0 si∑
i aiwij < 0
bn si∑
i aiwij = 0
3 Generar la salida A′ para el patrón de presentado. Para todos los ai
an+1i =
1 si
∑j bjwij > 0
0 si∑
j bjwij < 0
bn si∑
j bjwij = 0
4 Volver a 2. hasta que A y B dejen de cambiar.
Hugo Franco, PhD Métodos de Aprendizaje en Redes Neuronales