Cómo entrena de verdad un modelo: un ritmo por cada perilla, y memoria.

SRC·45 Source
El descenso simple usa un solo paso para mil millones de perillas.

El descenso simple usa un solo paso para mil millones de perillas.

El descenso de gradiente tiene una perilla que ajustas a mano: el tamaño del paso. Usa ese mismo número para mover cada peso del modelo —los mil millones, por igual—. Pero las pendientes en que están son muy distintas. Los buenos optimizadores lo arreglan dando a cada peso su propio ritmo, y una breve memoria de hacia dónde venía yendo.
La pendiente que mides tiembla; si la sigues tal cual, tambaleas.

La pendiente que mides tiembla; si la sigues tal cual, tambaleas.

La pendiente de cada paso se lee de apenas un puñado de ejemplos, así que tiembla: apunta un poco mal cada vez. Si la sigues tal cual, bajas dando tumbos. Como una manga de viento en una racha cruzada: salta a un ángulo nuevo con cada ráfaga, y ningún tirón suelto te dice el viento constante que hay detrás.
No persigas cada pendiente. Sigue su promedio acumulado.

No persigas cada pendiente. Sigue su promedio acumulado.

mt=β1mt1+(1β1)gtm_t = \beta_1\, m_{t-1} + (1-\beta_1)\, g_t
No persigas cada pendiente nerviosa. Lleva una mezcla acumulada: en su mayor parte tu rumbo anterior, empujado por la lectura más nueva. El temblor se cancela; la dirección verdadera se afianza. Como un peñasco pesado que rueda cuesta abajo: alisa cada bachecito y mantiene su línea. Esa mezcla es el momentum: el siguiente rumbo es casi a donde ibas, inclinado un poco hacia la pendiente más reciente.
Un solo tamaño de paso no sirve para mil millones de perillas distintas.

Un solo tamaño de paso no sirve para mil millones de perillas distintas.

θt+1=θtηgt\theta_{t+1} = \theta_t - \eta\, g_t
Aquí está la trampa que el descenso simple nunca corrige. Ese único paso η multiplica la pendiente de cada perilla por igual. Pero unas están en pendientes empinadas y violentas que piden pasos diminutos y cuidadosos; otras, en pendientes llanas y tranquilas, podrían dar zancadas. Como una sola marcha de bici para cada cuesta: bien en lo llano, brutal en la subida, perezosa en la bajada. Una sola razón —un único η compartido— no le sirve a todas.
Da a cada perilla su propio ritmo, según su propia aspereza.

Da a cada perilla su propio ritmo, según su propia aspereza.

vt=β2vt1+(1β2)gt2,η~t=ηvt+ϵv_t = \beta_2\, v_{t-1} + (1-\beta_2)\, g_t^{2}, \qquad \tilde{\eta}_t = \dfrac{\eta}{\sqrt{v_t}+\epsilon}
Así que da a cada perilla su propio ritmo. Mide qué tan áspera ha sido su pendiente —un promedio acumulado de su gradiente al cuadrado— y divide el paso de esa perilla entre eso. Las perillas cuyas pendientes se sacuden quedan frenadas; las tranquilas quedan libres para moverse. Como lijar alrededor de un nudo: afloja y avanza despacio donde la veta se resiste, desliza rápido donde es lisa. En pocas palabras: una pendiente reciente grande encoge el paso ahí; una pequeña lo deja crecer.
Ambos promedios parten de cero, así que los primeros pasos salen muy chicos.

Ambos promedios parten de cero, así que los primeros pasos salen muy chicos.

m^t=mt1β1t,v^t=vt1β2t\hat{m}_t = \dfrac{m_t}{1-\beta_1^{\,t}}, \qquad \hat{v}_t = \dfrac{v_t}{1-\beta_2^{\,t}}
Un tropiezo. Ambos promedios acumulados parten de cero, así que en los primeros pasos salen demasiado chicos —no porque las pendientes sean chicas, sino porque la cuenta apenas empezó—. Como un frasco de monedas empezado vacío esta semana: el total acumulado se ve diminuto solo porque arrancó en nada. El arreglo divide esa ventaja inicial, escalando cada promedio hacia arriba mientras es joven —una corrección que se desvanece a medida que la cuenta se llena—.
Rumbo firme, zancada perilla a perilla: ese es todo el optimizador.

Rumbo firme, zancada perilla a perilla: ese es todo el optimizador.

θt=θt1ηm^tv^t+ϵ\theta_t = \theta_{t-1} - \eta\, \dfrac{\hat{m}_t}{\sqrt{\hat{v}_t}+\epsilon}
Júntalo todo. El momentum elige la dirección: el rumbo suavizado, sin temblor. El ritmo por perilla elige cada zancada: larga donde la pendiente está calma, corta donde se agita. Una sola línea hace ambas cosas. Como un kayakista leyendo un rápido: mantén la línea de la corriente principal, pero dosifica cada palada —suave en el agua lisa, firme donde hierve—. Ese es Adam, el optimizador que entrena casi todo (típicamente β₁=0.9, β₂=0.999).
🌱 Misma colina, mismo inicio: pero el optimizador eligió el valle.

🌱 Misma colina, mismo inicio: pero el optimizador eligió el valle.

El momentum y el ritmo por perilla hacen que el camino cuesta abajo ya no sea el del paisaje, sino el del optimizador. Arranca dos en el mismísimo punto de la mismísima colina, y una memoria más pesada o un ritmo más audaz puede llevar a cada uno a un valle distinto. Entonces, cuando el entrenamiento se detiene, ¿hallamos el fondo, o solo aquel hacia el que nuestro momentum nos rodó?
toca →desliza ↑ para másdesliza ↓ para salir