Descripción matemática del algoritmo de retropropagación
Extensiones de la regla delta generalizada
Introducción:
equilibrio termodinámico simulado
Método de Boltzman
Método de Cauchy
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.
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.
Se explica una versión del algoritmo (Hinton, 1992) para redes con las siguientes características:

![]()
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)
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

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 )
![]()
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.

![]()
![]()
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.
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
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.
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.
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:
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.
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.