Entrenamiento de las redes neuronales: Recomendaciones

En esta sección, se explican los casos de falla de la propagación inversa y la forma más común de regularizar una red neuronal.

Casos de falla

Existen varias formas comunes en las que la propagación inversa puede fallar.

Desaparición de gradientes

Los gradientes para las capas inferiores (más cerca de la entrada) pueden volverse muy pequeños. En las redes profundas, el cálculo de estos gradientes puede implicar tomar el producto de muchos términos pequeños.

Cuando los gradientes desaparecen hacia el 0 en las capas más bajas, estas capas se entrenan muy lentamente o no se entrenan en absoluto.

La función de activación ReLU puede ayudar a evitar que los gradientes desaparezcan.

Gradientes con alto crecimiento

Si las ponderaciones en una red son muy grandes, los gradientes de las capas inferiores implican productos de muchos términos grandes. En este caso, los gradientes pueden crecer demasiado; gradientes que se vuelven demasiado grandes como para la convergencia.

La normalización por lotes puede ayudar a evitar el crecimiento de gradientes y la reducción de la tasa de aprendizaje.

Unidades ReLU inactivas

Una vez que la suma ponderada de una unidad ReLU cae por debajo de 0, la unidad ReLU puede bloquearse. Da como resultado una activación de 0, lo que no contribuye en nada al resultado de la red, y los gradientes ya no pueden fluir por ella durante la propagación inversa. Con una fuente de gradientes cortada, es posible que la entrada a la ReLU nunca cambie lo suficiente como para que la suma ponderada vuelva a ser superior a 0.

Reducir la tasa de aprendizaje puede ayudar a evitar que las unidades ReLU queden inactivas.

Regularización de retirados

La regularización de retirados es otra forma de regularización que resulta útil para las redes neuronales. Funciona al "extraer" activaciones de unidades de forma aleatoria en una red para un solo paso de gradiente. Mientras más extraigas, mejor será la regularización:

  • 0.0 = Sin regularización de retirados.
  • 1.0 = Se retira todo. El modelo no aprende nada.
  • Los valores entre 0.0 y 1.0 son más útiles.