Esta red presenta una capa de entrada con n neuronas y una capa de salida con m neuronas y al menos una capa de neuronas ocultas internas. Cada neurona (menos en la capa de entrada) recibe entrada de todas las neuronas de la capa previa y genera salida hacia todas las neuronas de la capa siguiente (salvo las de salida). No hay conexiones hacia atrás (feedback) ni laterales o autorrecurrentes.
El funcionamiento de la red consiste en un aprendizaje de un conjunto predefinido de pares de entradas-salidas dados como ejemplo, empleando un ciclo propagación-adaptación de dos fases:
Primero se aplica un patrón de entrada como estímulo para la primera capa de las neuronas de la red, se va propagando a través de todas las capas superiores hasta generar una salida, se compara el resultado obtenido en las neuronas de salida con la salida que se desea obtener y se calcula un valor del error para cada neurona de salida.
Estos errores se transmiten hacia atrás, partiendo de la capa de salida, hacia todas las neuronas de la capa intermedia que contribuyan directamente a la salida, recibiendo el porcentaje de error aproximado a la participación de la neurona intermedia en la salida original. Este proceso se repite, capa por capa, hasta que todas las neuronas de la red hayan recibido un error que describa su aportación relativa al error total. Basándose en el valor del error recibido, se reajustan los pesos de conexión de cada neurona, de manera que en la siguiente vez que se presente el mismo patrón, la salida esté más cercana a la deseada, es decir, que el error disminuya.
A diferencia de la regla delta en el caso del perceptrón, esta técnica requiere el uso de neuronas cuya función de activación sea continua y por tanto diferenciable. Generalmente la función será de tipo sigmoidal.
Según María Alejandra Ochoa (2004), los pasos y fórmulas a utilizar para aplicar el algoritmo de entrenamiento son:
Paso1:
Se inicializan los pesos de la red con valores pequeños y aleatorios.
Paso 2:
Se presenta un patrón de entrada: Xp=xp1,xp2,...,xpn y se especifica la salida deseada: d1,d2,...,dM (si se utiliza como clasificador, todas las salidas deseadas serán 0, salvo una, que es la de la clase a la que pertenece el patrón de entrada).
Paso 3:
Se calcula la salida actual de la red, para ello se presentan las entradas y se va calculando la salida que presenta cada capa hasta llegar a la capa de salida y1,y2,...,yM.
Luego
· Se calculan las entradas netas para las neuronas ocultas procedentes de las
neuronas de entrada.
· Para una neurona j oculta: donde el índice h se refiere a magnitudes de la capa oculta (hidden), el subíndice p, al p-ésimo vector de entrenamiento y j a la j-ésima neurona oculta. El término q, es opcional, ya que solo actúa como una entrada más.
· Se calculan las salidas de las neuronas ocultas: · Se realizan los mismos cálculos para obtener las salidas de las neuronas de salida; (capa 0: output)
Paso 4:
Calcula los términos de error para todas las neuronas.
Si la neurona k es una neurona de la capa de salida, el valor de delta es:



Para la función lineal tenemos fk0' mientras que la derivada de una función f sigmoidal es:




Donde se observa que el error en las capas ocultas depende de todos los términos de error de la capa de salida. De aquí surge el término de propagación hacia atrás. Para la función sigmoidal: Donde k se refiere a todas las neuronas de la capa superior a la de la neurona j. Así, el error que se produce en una neurona oculta es proporcional a la suma de los errores conocidos que se producen en las neuronas a las que está conectada la salida de ésta, multiplicados por el peso de la conexión.
Paso 5:
Actualización de los pesos.
En este paso se utiliza el algoritmo recursivo, comenzando por las neuronas de salida y trabajando hacia atrás hasta llegar a la capa de entrada, ajustando los pesos de la forma siguiente:
Para los pesos de las neuronas de la capa de salida:

y para los pesos de las neuronas de la capa oculta:


en el caso de la neurona de salida, y

cuando es el caso de una neurona oculta.
Paso 6:
El proceso se repite hasta que el término de error resulta aceptablemente pequeño para cada uno de los patrones aprendidos.
No hay comentarios:
Publicar un comentario