Tema

Optimizadores

Un optimizador convierte el gradiente en un paso de actualización, y las variantes con momento o con tasa adaptativa reescalan ese paso según el historial de gradientes.

Nombre en inglés

Optimizers

Intuición

El descenso de gradiente puro avanza en la dirección de mayor pendiente local, que en un valle alargado apunta hacia las paredes y no hacia el fondo, de ahí el zigzag. El momento acumula las direcciones pasadas, cancela el zigzag y suma las componentes que se repiten, igual que una bola pesada que rueda. Adam añade una segunda cuenta, la del tamaño típico de cada gradiente, y divide entre ella para que cada peso avance con un paso proporcionado.

Fórmula

v_t = \beta v_{t-1} + g_t \qquad w_t = w_{t-1} - \alpha v_t \qquad \text{Adam} \quad \hat{m}_t = \frac{m_t}{1 - \beta_1^t} \quad \hat{v}_t = \frac{v_t}{1 - \beta_2^t} \quad w_t = w_{t-1} - \alpha \frac{\hat{m}_t}{\sqrt{\hat{v}_t} + \epsilon}

Ejemplo resuelto

Un peso vale 1 y recibe dos veces seguidas el gradiente 0.4, con tasa 0.1. El descenso puro lo deja en 0.96 y después en 0.92, con dos pasos iguales de 0.04. Con momento y factor 0.9, la velocidad pasa a 0.4 y luego a 0.9 por 0.4 más 0.4 = 0.76, de modo que el peso pasa a 0.96 y después a 0.884, es decir, el segundo paso casi duplica al primero. Con Adam y los factores habituales 0.9 y 0.999, el primer paso da una primera media de 0.04 y una segunda de 0.00016; la corrección de sesgo las divide entre 0.1 y entre 0.001 y devuelve 0.4 y 0.16; el paso resulta ser la tasa por 0.4 dividido entre la raíz de 0.16, es decir, 0.1, y el peso queda en 0.9. Conviene retener que el primer paso de Adam mide casi exactamente la tasa de aprendizaje, sea cual sea el tamaño del gradiente.

Errores frecuentes

Ejercicio

Un peso recibe tres veces el mismo gradiente 1, con momento de factor 0.9 y tasa 0.1. ¿Cuánto vale la velocidad acumulada después del tercer gradiente?

Ver la solución

La velocidad se acumula multiplicando la anterior por 0.9 y sumando el gradiente. El primer paso da 1, el segundo da 0.9 más 1 = 1.9 y el tercero da 0.9 por 1.9 más 1 = 2.71. La velocidad crece hacia el límite 1 dividido entre 1 menos 0.9, que vale 10.

Respuesta: 2.71

Temas relacionados

Cursos a los que prepara

Abrir el tema en la guía