Estocástico, momento y Adam
Calcular el gradiente con todos los datos es exacto y lentísimo. Usar un puñado por paso introduce ruido, y ese ruido resulta ser parte de por qué funciona.
Para este tema conviene tener claro:Descenso por gradiente: bajar la colina
El descenso por gradiente clásico calcula la pendiente usando el conjunto de datos completo antes de dar un paso. Con millones de ejemplos, eso significa muchísimo cálculo para avanzar una sola vez. La solución es tan directa que parece trampa: usar una muestra.
Estocástico: estimar el gradiente con un lote
El descenso estocástico estima el gradiente con un solo ejemplo, o —lo habitual— con un lote chico de decenas o cientos. Esa estimación es ruidosa, pero se obtiene miles de veces más rápido.
El resultado es que en el mismo tiempo se dan muchísimos más pasos, y en la práctica se llega mucho antes. El camino es errático en vez de suave, y eso importa menos de lo que parece: no hace falta bajar en línea recta, hace falta llegar.
Doce ejemplos de entrenamiento. Una pasada completa por todos ellos es una época.
Antes de seguir, predecí
El ruido además ayuda
El ruido además ayuda. Un gradiente exacto en una meseta o cerca de un punto de ensilladura se queda quieto; uno ruidoso se sacude y escapa.
También parece favorecer mínimos “anchos” antes que “angostos”, y hay evidencia de que los anchos generalizan mejor, porque son más tolerantes a pequeños desplazamientos. El tamaño del lote termina siendo un hiperparámetro con dos efectos: lotes grandes usan mejor la GPU y dan menos ruido; lotes chicos regularizan de hecho.
El momento, como una bola que rueda
La primera mejora es el momento. En vez de usar sólo el gradiente actual, se acumula un promedio de los anteriores, como una bola que baja rodando y conserva inercia.
Eso resuelve dos problemas a la vez: atraviesa mesetas donde el gradiente es débil pero consistente, y cancela el zigzagueo en valles angostos, porque las componentes que oscilan se promedian entre sí y las que apuntan siempre igual se refuerzan. Con una línea de código el entrenamiento suele acelerarse notablemente.
Adaptar la tasa por parámetro
La segunda idea es adaptar la tasa por parámetro. No todos los pesos necesitan el mismo paso: los que reciben gradientes grandes y frecuentes conviene moverlos poco, y los que reciben gradientes raros, mucho.
AdaGrad lo hizo dividiendo por la raíz de la suma acumulada de gradientes al cuadrado, con el defecto de que esa suma sólo crece y el paso termina extinguiéndose. RMSProp lo arregló usando un promedio móvil en vez de la suma total.
Adam combina las dos ideas
Adam combina las dos: momento sobre el gradiente y escala adaptativa por parámetro, más una corrección para los primeros pasos, cuando los promedios todavía están sesgados hacia cero.
Es el default razonable: funciona sin ajuste fino en la enorme mayoría de los casos, y por eso se usa en casi todo. Con la observación honesta de que, con la tasa de aprendizaje bien buscada, el estocástico con momento a veces generaliza mejor en visión. Y AdamW, que separa la regularización del paso adaptativo, es lo estándar hoy para modelos grandes.
Calentamiento y decaimiento
Dos prácticas que acompañan. El calentamiento: arrancar con una tasa muy chica y subirla en las primeras iteraciones, porque al principio los promedios internos son poco confiables y un paso grande puede desestabilizar todo.
Y el recorte de gradientes: si la norma del gradiente supera un umbral, escalarlo hacia abajo. Es lo que evita que un lote atípico produzca un paso enorme que destruya el entrenamiento, algo especialmente frecuente en modelos con secuencias.
Cuál usar, en la práctica
| Optimizador | Qué agrega | Cuándo conviene |
|---|---|---|
| SGD | nada: el paso básico | con momento, sigue siendo el mejor para visión |
| SGD con momento | inercia: suaviza el zigzagueo | default histórico, converge a soluciones que generalizan bien |
| RMSProp | tasa por parámetro según su historia | recurrentes |
| Adam | momento más tasa por parámetro | el default: anda razonable casi siempre |
| AdamW | Adam con la regularización bien hecha | el default real hoy en transformers |
Cierre
Lotes chicos dan gradientes ruidosos y muchos más pasos, y ese ruido ayuda a escapar de mesetas. El momento acumula inercia y cancela el zigzagueo; las tasas adaptativas ajustan el paso por parámetro; Adam junta ambas y es el default, con calentamiento y recorte para que no explote.
Autoevaluación
¿Lo entendiste?
Práctica