Descenso de gradiente y optimizadores
Qué hace realmente un paso de gradiente, por qué una tasa de aprendizaje demasiado grande provoca divergencia y qué cambian en la práctica momentum y Adam.
Descenso de gradiente y optimizadores
Entrenar una red consiste en buscar el mínimo de una función cuya forma no veremos nunca. Vive en un espacio de millones de dimensiones, no se puede trazar, no se puede explorar de forma exhaustiva y no hay ninguna garantía de que tenga un mínimo único. Lo único de lo que disponemos, en un punto dado, es la dirección de máxima pendiente. Avanzamos en sentido contrario y repetimos. Ese es todo el algoritmo.
Esta aparente pobreza engaña. El comportamiento del descenso depende de un ajuste —la longitud del paso— cuyo mal valor produce dos fallos radicalmente distintos y a menudo confundidos: si es demasiado pequeño, el modelo se estanca y creemos que hay un problema de arquitectura; si es demasiado grande, la pérdida se dispara hacia el infinito o se atasca en una meseta y creemos que hay un bug. Un profesional con experiencia reconoce cuál de los dos casos se está produciendo con solo mirar tres valores de pérdida.
Existe una segunda fuente de confusión, más insidiosa. Adam, el optimizador por defecto de facto, funciona tan bien en tantos problemas que acabamos por no saber qué hace. Sin embargo, sus ajustes implícitos —la media móvil, la normalización por la raíz del segundo momento, la corrección de sesgo— tienen consecuencias precisas, y hay situaciones en las que perjudican.