Thursday, March 12, 2009

Retropropagacion del error

O como comunmente lo conocen en el bajo mundo de las redes neuronales, error backpropagation. Es un algoritmo de aprendizaje supervisado para una red neuronal. La idea es hacer una suerte de suavizado del paisaje con pequeños ajustes sobre los pesos de cada neurona utilizando el error que se obtiene de comparar el valor obtenido y el esperado. Para poder usarlo necesitan un conjunto de entrenamiento y otro de prueba y, obvio, la red neuronal que desean entrenar.

Ya saben que para calcular el impulso enviado por una neurona necesitan la sigmoide. Ahora, para irnos de regreso vamos a necesitar la derivada de la sigmoide.

Aquí les dejo el pseudocógido:
  1. Inicializar todos los pesos con pequeños valores aleatorios
  2. Para cada estímulo en el conjunto de aprendizaje propaga la señal por las distintas capas internas (que no es otra cosa que dejar que la red funcione como está diseñada)
  3. Calcula la diferencia del valor esperado para la capa de salida y el valor obtenido (deltas)
  4. Con este valor nos vamos regresando por las diferentes capas obteniendo el mismo valor para cada neurona hasta llegar a la capa inicial
  5. Ajusta los pesos
  6. Con el siguiente estímulo del conjunto de entrenamiento regresa al paso 2
  7. Parar hasta que el error rebase el umbral establecido o hasta que que cierto numero de iteraciones elegidas se completen.
Aquí les dejo una explicación gráfica del algoritmo.

Si pueden leánse el Capítulo 7 (por lo menos el principio) del Rojas, ya que tiene un enfoque distinto y hace mención de fenómenos bien interesantes.

No comments: