métodos de aprendizaje en redes neuronales - …hfranco/int_comp/ic_clase12.pdf · métodos de...

38

Upload: voduong

Post on 26-Sep-2018

235 views

Category:

Documents


0 download

TRANSCRIPT

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 Backpropagation

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

Ejemplo Grá�coBackpropagation

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

Aprendizaje en Otros Modelos

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