FORMACION-INTEGRAL-DE-LINIEROS modelo de curso.pdf
Sesgo BacoProgpagation
1. UNIVERSIDAD AUTÓNOMA DEL ESTADO DE MÉXICO
CENTRO UNIVERSITARIO UAEM ATLACOMULCO
Redes Neuronales BackPropagation “El Sesgo en Backpropagation” ico17
Levi Guadarrama Tercero
Juan Carlos Tomas Reyes
Oliver Sánchez Cruz
Sesgo en Backpropagation
Una forma de ver las redes neuronales es como metafunciones que aceptan un
número fijo de entradas numéricas y producen un número fijo de salidas numéricas.
En la mayoría de los casos, las redes neuronales tienen una capa de neuronas
ocultas, donde cada una de estas está conectada completamente con las neuronas
de entrada y de salida. Asociado con cada neurona oculta y cada neurona de
salida individual se encuentra un conjunto de valores de ponderación y un
valor único llamado sesgo. Las ponderaciones y sesgos determinan los valores
de salida para un conjunto dado de valores de entrada.
La técnica más común para calcular las ponderaciones y sesgos óptimos se llama
propagación inversa. Aunque existen muchas referencias excelentes que describen
las matemáticas complejas que subyacen a la propagación inversa, hay pocas guías
disponibles para los programadores, que describan claramente cómo programar el
algoritmo de propagación inversa. Este artículo explica cómo implementar la
propagación inversa. El lenguaje de programación en los ejemplos es C#, pero no
debería ser difícil refactorizarlos a otros lenguajes.
La mejor forma de ver mi objetivo es mirar la captura de pantalla de un programa de
demostración en la Ilustración 1. Este programa crea una red neuronal que tiene
tres neuronas de entrada, con una capa oculta de cuatro neuronas y dos neuronas
de salida. Las redes neuronales con una sola capa oculta requieren de dos
funciones de activación. En muchas situaciones, sin embargo, estas dos funciones
son iguales, habitualmente la función sigmoidea. Pero en esta demostración, para
ilustrar la relación entre las funciones de activación y la propagación inversa, empleo
funciones de activación diferentes: la función sigmoidea para los cálculos de la capa
de entrada a la oculta, y la tangente hiperbólica para los cálculos de la capa oculta
a la de salida.
1
2. UNIVERSIDAD AUTÓNOMA DEL ESTADO DE MÉXICO
CENTRO UNIVERSITARIO UAEM ATLACOMULCO
Redes Neuronales BackPropagation “El Sesgo en Backpropagation” ico17
Levi Guadarrama Tercero
Juan Carlos Tomas Reyes
Oliver Sánchez Cruz
Ilustracion 1 Algoritmo de propagación inversa en acción
2
3. UNIVERSIDAD AUTÓNOMA DEL ESTADO DE MÉXICO
CENTRO UNIVERSITARIO UAEM ATLACOMULCO
Redes Neuronales BackPropagation “El Sesgo en Backpropagation” ico17
Levi Guadarrama Tercero
Juan Carlos Tomas Reyes
Oliver Sánchez Cruz
Una red neuronal 3-4-2 completamente conectada requiere de 3*4 + 4*2 = 20
valores de ponderación y 4+2 = 6 valores de sesgo, lo que suma un total de 26
ponderaciones y sesgos. Estas ponderaciones y sesgos se inicializan en valores
más o menos arbitrarios. Los valores de entrada genéricos se establecen en 1,0,
2,0 y 3,0. Con los valores iniciales de ponderación, sesgo y entrada, los valores de
salida iniciales que calcula la red neuronal son {0,7225; -0,8779}. El programa de
demostración supone que los dos valores de salida correctos son {-0,8500; 0,7500}.
La finalidad del algoritmo de propagación inversa es encontrar un nuevo conjunto
de ponderaciones y sesgos que generen resultados muy próximos a los valores
correctos para las entradas {1,0; 2,0; 3,0}.
La propagación inversa requiere de dos parámetros libres. La velocidad de
aprendizaje, generalmente designada con la letra griega eta en la literatura sobre
propagación inversa, controla la velocidad con la que el algoritmo converge en el
cálculo final. El momento, designado generalmente con la letra griega alfa, permite
que el algoritmo de propagación inversa evite las situaciones donde el algoritmo
oscila sin converger en un cálculo final. El programa de demostración establece la
velocidad de aprendizaje en 0,90 y el momento en 0,04. Normalmente estos valores
se encuentran por ensayo y error.
El proceso de encontrar el mejor conjunto de ponderaciones y sesgos para una red
neuronal a veces se denomina entrenamiento de la red. En el caso de la
propagación inversa, el entrenamiento es un proceso iterativo. En cada iteración, la
propagación inversa calcula un nuevo conjunto de valores de ponderación y sesgo
que, en teoría, generan valores de salida que estarán más cercanos a los valores
esperados. Después de la primera iteración de entrenamiento del programa de
demostración, el algoritmo de propagación inversa encontró los nuevos valores de
ponderación y sesgo, que generaron los resultados nuevos {-0,8932; -0,8006}. El
primer valor de salida de -0,8932 está mucho más cercano al primer valor esperado
de -0,8500. El segundo valor nuevo de salida de -0,8006 sigue estando muy alejado
del valor esperado de 0,7500.
El proceso de entrenamiento se puede terminar de diferentes formas. El programa
de demostración itera el entrenamiento hasta que la suma de las diferencias
absolutas entre los valores de salida y los esperados sea menor que <= 0,01 o el
entrenamiento llegue a 1.000 iteraciones. En la demostración, después de seis
iteraciones de entrenamiento, la propagación inversa encontró un conjunto de
valores de ponderación y sesgo que generaron salidas de {-0,8423; 0,7481}; muy
próximas a los valores esperados de {-0,8500; 0,7500}.
3
4. UNIVERSIDAD AUTÓNOMA DEL ESTADO DE MÉXICO
CENTRO UNIVERSITARIO UAEM ATLACOMULCO
Redes Neuronales BackPropagation “El Sesgo en Backpropagation” ico17
Levi Guadarrama Tercero
Juan Carlos Tomas Reyes
Oliver Sánchez Cruz
4
Bibliografía
“Profundización en las redes neuronales”, en
msdn.microsoft.com/magazine/hh975375.) El código del programa que aparece en
la Ilustración 1 es demasiado extenso para presentarlo en este artículo, de modo
que me concentraré en explicar las partes claves del algoritmo. El código fuente
completo para el programa de demostración está disponible en
archive.msdn.microsoft.com/mag201210TestRun.