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 fallas de la retropropagación y la forma más común de regularizar una red neuronal.
Gradientes que se desvanecen
Los gradientes de las capas inferiores de la red neuronal (las más cercanas a la capa de entrada) pueden ser muy pequeños. En las redes profundas (redes con más de una capa oculta), el cálculo de estos gradientes puede implicar tomar el producto de muchos términos pequeños.
Cuando los valores de gradiente se acercan a 0 para las capas inferiores, se dice que los gradientes "vadan". Las capas con gradientes que se desvanecen se entrenan muy lentamente o no se entrenan en absoluto.
La función de activación ReLU puede ayudar a evitar los gradientes que desaparecen.
Gradientes explosivos
Si las 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 explosivos: 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 reducir la tasa de aprendizaje.
Unidades de ReLU inactivas
Una vez que la suma ponderada de una unidad de ReLU cae por debajo de 0, la unidad de ReLU puede bloquearse. Genera 0, lo que no contribuye en nada a la salida 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 de ReLU mueran.
Regularización de abandono
Otra forma de regularización, llamada regularización de 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. Cuanto más retires, mejor será la regularización:
- 0.0 = No se usa la regularización de retirados.
- 1.0 = Se quitan todos los nodos. El modelo no aprende nada.
- Los valores entre 0.0 y 1.0 son más útiles.