2.15 - Entrenamiento de una Red Neuronal: Forward y Backward Propagation

Lección 15 de la sección “Redes Neuronales” del curso Fundamentos de Deep Learning con Python.

Introducción

En la lección anterior hablamos de las Funciones de Activación que podemos usar al momento de implementar una Red Neuronal.

En esta lección hablaremos del entrenamiento, que buscar ajustar los parámetros de la Red en cada una de sus capas.

Para lograr esto en cada iteración del entrenamiento interactúan dos algoritmos, conocidos como forward y backward propagation (o propagación hacia adelante y hacia atrás, respectivamente). Veamos en detalle cómo funciona este entrenamiento y las características de estos algoritmos.

Contenido exclusivo suscriptores

Suscríbete para tener acceso al video con la explicación detallada de esta lección. Además podrás disfrutar de todos los cursos de la Academia Online

Entrenamiento de una neurona simple

Recordemos que el objetivo del entrenamiento de una Neurona Artificial es encontrar automáticamente los parámetros de dicho modelo.

Formalicemos los pasos requeridos para dicho entrenamiento:

  1. Inicializar los parámetros de forma aleatoria
  2. A partir de la entrada calcular la salida, lo que se conoce como forward propagation (propagación hacia adelante)
  3. Calcular el error a partir de la salida obtenida en (2)
  4. Actualizar los coeficientes del modelo a partir del error calculado en (3), lo que se conoce como backward propagation (o simplemente backpropagation)
  5. Repetir los pasos (2) a (4) por el número de iteraciones definidas para el entrenamiento

Entrenamiento de la Red Neuronal

El mismo método descrito para entrenar una Neurona simple se puede generalizar para una Red Neuronal sin importar lo compleja que esta sea. Específicamente:

  1. Se inicializan los parámetros de la Red de forma aleatoria.
  2. Se hace una pasada del algoritmo de forward propagation, obteniendo así las salidas de la Red
  3. Con las salidas obtenidas en (2) se calcula el error
  4. Se aplica el algoritmo de backpropagation para actualizar los parámetros del modelo. Sin embargo en este caso, como tenemos múltiples capas y múltiples neuronas, se debe hacer uso de la Regla de la Cadena (de la cual hablamos en la lección de Lo esencial de Cálculo Diferencial para Deep Learning) que permite obtener numéricamente los gradientes y actualizar de esta forma los coeficientes.
  5. Se repiten iterativamente los pasos 2 a 4 por el número de epochs definido para el entrenamiento.
Contenido exclusivo suscriptores

Recuerda suscribirte para acceder al video con la explicación detallada de esta lección. Además podrás disfrutar de todos los cursos de la Academia Online

Conclusión

Bien, ya tenemos claros los principios básicos de entrenamiento de una Red Neuronal.

Así que para aterrizar estos conceptos en la próxima lección veremos cómo usar esta arquitectura para la solución de un problema práctico usando Python y Keras. Así que en la práctica 5 veremos como implementar un modelo de detección de partículas con Redes Neuronales.

Ver todas las lecciones de este curso