Redes Neuronales Artificiales · Inteligencia Artificial

Optimizadores: SGD, Momentum, Adam

Comparar descenso estocástico de gradiente, momentum y Adam, y elegir y ajustar la tasa de aprendizaje según la superficie de error.

Optimizadores

Bajar la pendiente con criterio La pérdida como un paisaje de valles y Ridges: el gradiente apunta a la pendiente más cuesta arriba, y el optimizador decide qué paso dar cuesta abajo. Elegirlo y afinar su tasa es la diferencia entre converger y pasear sin rumbo.

Descenso de gradiente puro

Actualiza los pesos restando el gradiente por la tasa de aprendizaje. Simple, pero con batches pequeños el gradiente es ruidoso y el camino zigzaguea; con tasa grande puede saltar de un lado a otro sin asentarse.

Estocasticidad del minibatch

Momentum

Acumula una velocidad con inercia de gradientes pasados, amortiguando el zigzag en las laderas empinadas y acelerando en las direcciones constantes. Como una bola que rueda, suaviza el ruido y atraviesa mesetas.

Un paisaje de valles y Ridges con curvas de nivel, donde una bola deja un camino zigzagueante y otro descendente suave hacia el fondo.
El optimizador decide el tamaño y la dirección de cada paso cuesta abajo por la superficie de error.

Adaptar por parámetro

Los métodos adaptativos ajustan una tasa por peso según el historial de sus gradientes, acelerando direcciones raras y frenando las oscilantes. Esto ayuda cuando las dimensiones tienen escalas muy distintas.

Adam

Combina momentum con tasas adaptativas por parámetro y suele converger rápido con poca sintonía. Es el por defecto cómodo, aunque a veces un SGD bien afinado generaliza un poco mejor.

Planificar la tasa

Empezar con una tasa mayor y decaerla deja exploración inicial y refinamiento final. Calendarios y recocido de tasa ayudan a asentarse cerca del óptimo sin oscilar eternamente.

Elegir según problema

Adam brilla como punto de partida y en tareas con gradientes dispersos. Con tiempo para sintonizar, SGD con momentum puede rascar algo más de generalización. La tasa sigue siendo el hiperparámetro rey.

Errores frecuentes

Ejemplo resuelto: la red zigzaguea y no baja

La pérdida baja poco y oscila de un lado a otro en cada paso. Revisamos el optimizador y su tasa:

  1. Observar el camino en zigzag, señal de una tasa demasiado alta para el paisaje.
  2. Bajar la tasa de aprendizaje para reducir la oscilación transversal.
  3. Añadir momentum para acumular inercia y promediar el ruido del minibatch.
  4. Planificar un decaimiento que afine los pasos al acercarse al óptimo.
  5. Confirmar que la pérdida desciende suave y se asienta en el valle.

¿Para qué sirve en la realidad?

El gradiente dice la dirección, pero el optimizador y su tasa deciden si de verdad llegas al mínimo: es el hiperparámetro que más tiempo de entrenamiento ahorra o desperdicia.

El optimizador que combina una media móvil del gradiente (inercia) con tasas de aprendizaje por parámetro adaptativas es:

Subir la tasa de aprendizaje indefinidamente siempre acelera y mejora la convergencia.

Optimizadores

Restar gradiente por la tasa define... de gradiente
descenso
Inercia que acumula gradientes pasados suaviza el...
momentum
Ajustar la tasa por cada parámetro es...
adaptativo
Optimizador por defecto que combina inercia y adaptividad
adam
Hiperparámetro que fija el tamaño del paso
tasa

Ordena la evolución desde el método más simple al más sofisticado:

Gradiente
Minibatch
Momentum
Adam

Descenso estocástico de gradiente
Fundamento de SGD, minibatch y sus variantes adaptativas.

Une cada método con su idea clave.

Bajar la pendiente con criterio

# Optimizadores
## SGD
### simple
### ruido del minibatch
## Momentum
### inercia
### amortigua zigzag
## Adaptativo
### tasa por parámetro
### escala dimensiones
## Adam
### momentum más adaptativo
### por defecto cómodo

Descenso del gradiente en la Wikipedia
Fundamento matemático del descenso de gradiente y sus variantes.

Tu red con Adam pierde algo frente a SGD con momentum bien afinado en validación, pese a converger más rápido. ¿Qué compensación entre rapidez y generalización elegirías para un prototipo frente a un modelo final?