La propagación inversa es el algoritmo de entrenamiento más común para las redes neuronales. Hace que el descenso del gradiente sea factible para las redes neuronales de varias capas. Muchas bibliotecas de código de aprendizaje automático (como Keras) controlan la retropropagación automáticamente, por lo que no necesitas realizar ninguno de los cálculos subyacentes por tu cuenta. Mira el siguiente video para obtener una descripción general conceptual de cómo funciona la retropropagación:
Prácticas recomendadas para el entrenamiento de redes neuronales
En esta sección, se explican los casos de falla de la retropropagación y la forma más común de regularizar una red neuronal.
Desaparición de gradientes
Los gradientes de las capas inferiores de la red neuronal (las más cercanas a la capa de entrada) pueden volverse muy pequeños. En las redes profundas (redes con más de una capa oculta), el cálculo de estos gradientes puede implicar la multiplicación de muchos términos pequeños.
Cuando los valores del gradiente se acercan a 0 para las capas inferiores, se dice que los gradientes "se desvanecen". Las capas con gradientes que desaparecen se entrenan muy lentamente o no se entrenan en absoluto.
La función de activación ReLU puede ayudar a evitar la desaparición de gradientes.
Gradientes que crecen demasiado
Si los pesos de una red son muy grandes, los gradientes de las capas más bajas implican productos de muchos términos grandes. En este caso, puedes tener gradientes que explotan, es decir, gradientes que se vuelven demasiado grandes para converger.
La normalización por lotes puede ayudar a evitar el crecimiento excesivo de gradientes, al igual que 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 quedar atascada. Genera 0, por lo que no contribuye al resultado de la red, y los gradientes ya no pueden fluir a través de ella durante la retropropagación. Con una fuente de gradientes limitada, es posible que la entrada de ReLU nunca cambie lo suficiente como para volver a establecer la suma ponderada por encima de 0.
Reducir la tasa de aprendizaje puede ayudar a evitar que las unidades ReLU dejen de funcionar.
Regularización de retirados
Otra forma de regularización, llamada regularización por retirados, es útil para las redes neuronales. Funciona omitiendo unidades de activación de forma aleatoria en una red para un solo paso del gradiente. Mientras más retires, mejor será la regularización:
- 0.0 = No se usa la regularización de retirados.
- 1.0 = Se descartan todos los nodos. El modelo no aprende nada.
- Los valores entre 0.0 y 1.0 son más útiles.