Redes de retropropagación (back-prop)

Introducción

Origen

Descripción matemática del algoritmo de retropropagación

    Extensiones de la regla delta generalizada

Valoración

Métodos estadísticos

    Introducción: equilibrio termodinámico simulado
    Método de Boltzman
    Método de Cauchy

Introducción

Al hablar de redes de retropropagación o redes de propagación hacia atrás hacemos referencia a un algoritmo de aprendizaje más que a una arquitectura determinada. La retropropagación consiste en propagar el error hacia atrás, es decir, de la capa de salida hacia la capa de entrada, pasando por las capas ocultas intermedias y ajustando los pesos de las conexiones con el fin de reducir dicho error. Hay distintas versiones o reglas del algoritmo de retropropagación y distintos arquitecturas conexionistas a las que pueden ser aplicados.

Durante mucho tiempo no se dispuso de algoritmos para entrenar redes multicapa, y como las redes de una capa estaban muy limitadas en cuanto a lo que eran capaces de representar, el campo de las redes neuronales artificiales estaba estancado. La invención y perfeccionamiento del algoritmo de retropropagación dio un gran impulso al desarrollo de este campo. Tiene un buen fundamento matemático y a pesar de sus limitaciones ha expandido enormemente el rango de problemas donde se aplican las redes neuronales artificiales. 

Origen

Al parecer el algoritmo fue ideado a principios de los 70 por Werbos, y redescubierto a principios de los 80 por Parker y Rumelhart independientemente, sin embargo, no se hizo popular hasta 1986, cuando Rumerlhart, Hinton y Williams presentaron una descripción clara y concisa del mismo. Y es que en un primer momento no se valoró como se merecía. El hecho de que permaneciera en el olvido tanto tiempo también debe ser una consecuencia de la condición interdisciplinar del campo, repartido entre las matemáticas y ciencias de la computación, las neurociencias y la psicología.

Desde la fecha clave de 1986 han surgido nuevas versiones que han tratado de aumentar la velocidad de convergencia del algoritmo y han tratado de superar algunos de sus inconvenientes, como la tendencia a alcanzar mínimos locales y no globales, punto que será discutido más tarde.

Descripción matemática del algoritmo de retropropagación

Se explica una versión del algoritmo (Hinton, 1992) para redes con las siguientes características:

  1. Aleatorizamos los pesos de las conexiones.
  2. Presentamos un patrón de entrada y calculamos la salida.
  3. Dada una unidad j-ésima de la capa de salida y unidades i-ésimas de la capa oculta inmediatamente anterior, calculamos la entrada total ponderada y la salida o activación de la misma.

  4. Una vez computadas las actividades de todas las unidades de salida se calcula una estimación del error, generalmente una función cuadrática de los errores individuales cometidos por cada unidad, siendo cada error individual la diferencia entre la salida deseada y la obtenida.

    siendo dj la salida deseada para la unidad j-ésima

    Nota: Se van a indicar por un lado las expresiones matemáticas y por otro lado la explicación intuitiva de cada paso. Conviene recordar que nuestro objetivo es calcular como varía el error al variar el peso de cada conexión (tasa de variación del error respecto al peso de una conexión, EP)

  5. Cómputo de la rapidez de variación del error al cambiar la actividad de cada unidad de salida (EA, error respecto a la actividad)

    Es justamente la diferencia entre la salida deseada y la salida real obtenida, es decir, la diferencia entre la actividad deseada y la actividad real

  6. Cómputo de la rapidez de variación del error al cambiar la entrada total que recibe cada unidad de salida.

    Es igual a la tasa de variación del error al variar su activación multiplicado por la tasa de variación de la activación al cambiar su entrada ( que es justamernte la derivada de la función sigmoidal )

  7. Cómputo de la rapidez de variación del error al ser modificado un peso de la conexión aferente a una unidad de salida.

    Es igual a la tasa de variación del error al variar su entrada, por la tasa de variación de la entrada al variar ese peso.

    Hasta ahora sabemos calcular el EA sólo para las unidades de salida, ¿ qué pasa con las unidades ocultas?. En este caso no tenemos una estimación directa del error aportado por cada unidad oculta; aquí es donde interviene la retropropagación o propagación hacia atrás del error:

    La unidad i-ésima de la capa oculta afecta a todas las unidades de salida, por lo tanto, para estimar como varía el error al variar la actividad de esa unidad oculta, habrá que sumar los efectos individuales de su actividad sobre todas las neuronas de salida. Cada efecto individual sobre la variación del error, será igual a la tasa de variación del error de la unidad de salida al cambiar su entrada total, multiplicado por la tasa de variación de su entrada al variar la actividad de la unidad oculta.

     

  8. Conociendo EA para las unidades de cualquier capa podemos calcular d y EP con las expresiones ya conocidas.

  9. Disponiendo de la tasa de variación del error respecto al peso de una conexión (EP), podemos usar distintas reglas para modificar ese peso en aras a reducir dicho de error. Una de las primeras reglas que aprovechó este algoritmo es la regla delta generalizada, que calcula el incremento a aplicar a un peso como una proporción directa de la tasa de variación del error.
    siendo h el coeficiente de aprendizaje, típicamente con valores comprendidos entre 0.01 y 1.0

Extensiones de la regla delta generalizada

La regla DBD (delta-bar-delta) (Jordan, 1988) consiste en usar un coeficiente de aprendizaje propio y variable para cada conexión.

Una extensión propuesta por Rumelhart, Hinton y Williams (1986) consiste en añadir un término proporcional a la cantidad del último cambio realizado sobre un peso. Al coeficiente que pondera dicha cantidad se le llama momentum (??

La propuesta EDBD (extended delta-bar-delta) (Minai y Williams,1990) consiste en añadir el momentum a la regla DBD.

Valoración

 El algoritmo de retropropagación presenta ciertos problemas, algunos referentes a su dudosa plausibilidad neurofisiológica, y otros referentes a ciertos aspectos computacionales, que son los que vamos a comentar aquí.

Ilustración 10: Problema de los mínimos locales

Métodos estadísticos

Introducción: equilibrio termodinámico simulado

El equilibrio termodinámico simulado (simulated annealing) se inspira en el modo en como se templa el acero en la industria metalúrgica: primero se calienta hasta temperaturas muy altas y luego se deja enfriar, de manera que pase de estados de alta energía a estados de baja energía, hasta que alcanza un mínimo energético global, así el acero queda mucho más resistente.

La relación entre temperatura y estado energético viene expresada por la distribución de probabilidad de Boltzmann:

             E = energía del sistema

k = constante de Boltzmann

T = temperatura (grados Kelvin)

a = coeficiente que depende del material

Esta función indica la probabilidad de estar en un estado de energía E a una determinada temperatura. Con altas temperaturas es igualmente probable tener estados de alta o baja energía; pero a bajas temperaturas se reduce la probabilidad de estar en un estado de alta energía. El estado energético indica la capacidad o probabilidad de cambiar, por lo tanto, al empezar con temperatura elevadas hay muchas probabilidades de cambiar, y se reducen al ir enfriando el sistema.

Método de Boltzmann

  1. Definir una variable de temperatura, T, y darle al principio un valor elevado.
  2. Aplicar los ejemplos de aprendizaje y calcular la salida y la función objetivo (error cuadrático).
  3. Realizar una modificación aleatoria de un peso y recalcular la salida y la función objetivo.
  4. SI la función objetivo se reduce (el error disminuye) retener el cambio SINO calcular la probabilidad de aceptar ese cambio mediante la distribución de probabilidad de Bolztmann.

    P(c)= probabilidad de un cambio c en la función objetivo

    k = constante que hay que elegir para cada problema concreto

    T= la temperatura artificial

    Seleccionar un número aleatorio r entre 0 y 1 (distribución uniforme) y retener el cambio si P(c) > r, rechazarlo en caso contrario.

  5. Repetir los pasos 3 y 4 reduciendo la temperatura hasta lograr un valor aceptable de la función objetivo.

Hay varias formas de elegir el cambio de peso del paso 3 emulando los procesos termodinámicos, pe. mediante una distribución gaussiana de probabilidad.

P(w) = probabilidad de un cambio de peso de tamaño w (?w)

Para obtener el incremento de peso D w a aplicar se puede usar el método de Monte Carlo:

  1. Hallar la probabilidad acumulada de P(w), es decir, la integral entre 0 y w, por algún método de integración numérica, y tabular el resultado como ?w. Obtener una tabla con diversos valores de P(w) sobre cierto intervalo y los correspondientes ?w.
  2. Elegir un número aleatorio mediante una distribución uniforme sobre el intervalo prefijado, usarlo como valor para P(w) y buscar en la tabla el correspondiente valor de ?w.

Se ha comprobado que la tasa de reducción de temperatura debe ser proporcional al inverso del logaritmo del tiempo.

Este resultado predice velocidades muy lentas de enfriamiento y muchos cálculos, lo cual conlleva periodos de aprendizaje excesivamente largos. Una solución mucho más rápida consiste en sustituir la distribución de Boltzmann por la distribución de Cauchy. 

Método de Cauchy

 Emplea la distribución de probabilidad de Cauchy en función de la temperatura y el tiempo:

En este caso el tiempo de enfriamiento se reduce drásticamente:

P(x) se puede integrar por métodos usuales:

xc es el cambio de peso

h es el coeficiente de aprendizaje

En este caso el método de Monte Carlo resulta muy simple. Seleccionamos un número aleatorio sobre el intervalo abierto -p /2 a p /2, sustituirlo por P(x) y calcular xc con la temperatura actual.