Revolución IA

La Inteligencia Artificial está llamada a protagonizar la próxima Revolución tecnológica

Inicio Sobre Revolucionia Temas Para saber más Contacto

Algoritmo Back-Propagation (IV)

Fernando P.    29/11/2017

Temas:  Fundamentos

Último artículo de la serie dedicada a describir el algoritmo Back-Propagation usado para entrenar de forma supervisada perceptrones multicapa o, en general, redes neuronales artificiales orientadas hacia adelante.

En las dos entregas anteriores (II y III) se ha desarrollado completamente el algoritmo para el caso de un perceptrón de dos capas con función de activación Logística y se calcularon las expresiones exactas para la actualización de pesos en conexiones hacia ambas capas de neuronas usando la Regla Delta Generalizada.

Sumario del algoritmo Back-Propagation
En este artículo vamos a realizar un sumario con todos los elementos del algoritmo Back-Propagation para el caso estudiado de un perceptrón con dos capas y función de activación Logística.

Como ya se ha comentado, no es posible calcular una expresión general de la Regla Delta Generalizada útil para cualquier red que pueda ser entrenada usando el algoritmo Back-Propagation. Hay demasiadas configuraciones posibles de redes y las expresiones exactas dependen de la topología de cada red.

Pero en el caso de un perceptrón con dos capas y función de activación Logística las expresiones son sencillas de calcular y se trata de una configuración de red con muchas aplicaciones y que viene a ser la base de la mayoría de redes que se suelen diseñar para aplicaciones prácticas.

En general, en este artículo no se va a introducir nada nuevo, todo lo que se va a presentar es un sumario o resumen de las cosas vistas en las entregas anteriores, usando la misma notación.

Un perceptrón de dos capas y función de activación Logística Sumario Back-Propagation para perceptrón
A continuación vamos a resumir la descripción de la arquitectura y de todos los elementos para el tipo de perceptrón que hemos considerado a la hora de obtener las expresiones exactas de la Regla Delta Generalizada que nos van a permitir dar un sumario completo del algoritmo Back-Propagation.

La notación usada es la misma que en las entregas anteriores (II y III) de esta serie de artículos.

En cada iteración del algoritmo vamos a tener unos valores distintos para  x, y, A, Q, B, C, O, z  y  E. No vamos a incluir la referencia a la iteración para no complicar más la notación. El objetivo del algoritmo es ir variando estos valores en cada iteración hasta que lleguemos a un gradiente cero de la función de coste, que resultará en un mínimo local porque actualizamos los pesos siempre en la dirección opuesta al gradiente de la función de coste.

Algoritmo Back-Propagation completo
Usando la notación dada para describir nuestro modelo de perceptrón, damos a continuación el sumario completo del algoritmo Back-Propagation usando las expresiones exactas de la Regla Delta Generalizada deducidas en las entregas anteriores:

  1. De entre todos los pares de casos de entrada y clases de salida disponibles, seleccionar un conjunto de casos de entrada y sus correspondientes clases de salida para efectuar el entrenamiento. Sea  L  este conjunto
  2. Elegir un factor de aprendizaje  η > 0 (valores del orden de 0,1 pueden funcionar en muchos casos)
  3. Fijar a valores aleatorios en el intervalo  [-1,1]  todos los pesos en las matrices  A  y  C
  4. Para cada par de entrenamiento  (x,y) en  L  (caso de entrada/clase de salida), repetir 5 a 8 comenzando con  t = 0
  5. Aplicar el caso de entrada  x  a la red y calcular  Q, B, O, z  y  E
  6. Calcular el gradiente de  E  respecto a los pesos:  E / ∂cij = -(yj-zj) ⋅zj ⋅ (1-zj) ⋅ biE / ∂aij = -qj ⋅ (1-qj) ⋅ xi ⋅ ∑h ((yh-zh) ⋅oh ⋅ (1-oh) ⋅ cjh)
  7. Si el gradiente de  E  ya es muy pequeño (cercano a cero) o  t  es demasiado grande (exceso de iteraciones) se ha terminado con el entrenamiento para el par de entrenamiento actual  (x,y). Entonces, elegir el siguiente par de entrenamiento  (x,y)  en  L, hacer  t = 0  y volver a 5. Si no quedasen más pares de entrenamiento el algoritmo ha finalizado y la red está entrenada
  8. Modificamos los pesos en  A  y  C  usando la Regla Delta Generalizada:  aij = aij - η ⋅ ∂E / ∂aij,   cij = cij - η ⋅ ∂E / ∂cij
  9. Hacer  t = t + 1, ir a 5

Conviene notar que las expresiones exactas para la Regla Delta Generalizada en el caso de actualizar los pesos en  A  incluyen referencias a los pesos en  C, pero no al revés. Es por esto que hay que actualizar primero los pesos en  A  y luego los pesos en  C

En el caso de optimizar la función de coste parcialmente, con un par de entrenamiento cada vez, que es el caso más sencillo y el que presentamos aquí, el orden de elección de pares de entrenamiento para ser presentados al algoritmo tiene relevancia para la convergencia del algoritmo. Pero tampoco es una cuestión central, así que no lo hemos considerado aquí para no introducir complejidad adicional, aunque sí que es algo que se consideró al hablar del algoritmo general para entrenamiento supervisado de clasificadores

Consideraciones finales
Hay varias cuestiones que pueden ser afinadas a la hora de implementar el algoritmo en una aplicación real, como pueden ser la cuestión de realizar optimización total (usar todos los pares de entrenamiento para calcular la función de coste), la cuestión de optimizar globalmente para evitar mínimos locales, la elección del factor de aprendizaje o cuestiones más complejas como otras topologías de la red.

Pero el núcleo del algoritmo Back-Propagation es lo que hemos visto aquí y tenemos una descripción muy detallada para el caso de un perceptrón de dos capas con funciones de activación Logística. Naturalmente, en sucesivos artículos iremos explorando estas cuestiones que permiten afinar más el algortmo y adaptarlo a aplicaciones concretas.



Con ciertas simplificaciones, hemos descrito complétamente el algoritmo Back-Propagation en el caso de un perceptrón con dos capas. Los conceptos básicos y la forma de funcionar del algoritmo no cambian para casos más complejos, pero los detalles se complican.



Para saber más:

Libro de Philip D. Wasserman sobre redes neuronales artificiales orientadas hacia adelante. Es un libro sencillo pero suficientemente riguroso. El capítulo 3 trata sobre el algoritmo Back-Propagation.

Libro de Russell Reed y Robert J Marks dedicado a redes neuronales artificiales orientadas hacia adelante. El capítulo 5 introduce el algoritmo Back-Propagation y el resto del libro está dedicado a estudiar variaciones y refinamientos del algoritmo.



 

Inicio Powered by NetBSD
 
HTML5
 
En general, todo el contenido de este sitio web es original, salvo referencias o enlaces a otros sitios web y citas o reproducciones expresamente presentadas como tales.

No está permitida la reproducción ni la copia del contenido de este sitio web sin el permiso expreso de la propiedad del mismo.

Este sitio web no utiliza cookies ni ningún otro mecanismo para almacenar información en los navegadores de los visitantes ni para realizar seguimiento de los mismos.

2017,2018 Revolucionia.net
Sobre Revolucionia
Temas
Para saber más
Contacto