Post actualizado el día octubre 29, 2026 by DeiviSanzPlay
Cuando entrenas una red neuronal y la pérdida se estanca, la discusión casi siempre acaba en lo mismo: ¿Adam o SGD? El algoritmo de optimización que elijas condiciona cuánto tarda el modelo en aprender, la calidad del mínimo al que llega y, sobre todo, cuánto tiempo vas a perder ajustando hiperparámetros. He entrenado clasificadores de imágenes con ambos y la diferencia no es sutil: con Adam el error baja rápido en las primeras épocas; con SGD y un buen schedule de learning rate, el resultado final suele ser algo mejor.
Esta no es una comparación abstracta. Es la decisión que tomas cada vez que abres un script de entrenamiento y escribes optimizer = …. Y elegir mal no rompe nada visible: simplemente te cuesta GPU, paciencia y precisión.
Qué hace cada algoritmo de optimización con el gradiente
El descenso de gradiente estocástico (SGD) da un paso en la dirección del gradiente escalado por un learning rate fijo o programado. Simple, predecible y sensible a la escala de las features. Si una capa recibe gradientes grandes y otra pequeños, el paso único penaliza a ambas por igual.
Adam mantiene dos medias móviles: la del gradiente y la del gradiente al cuadrado. Con eso normaliza el paso por parámetro. En la práctica, un algoritmo de optimización adaptativo como Adam perdona learning rates peor elegidos y arranca más rápido en arquitecturas profundas con embeddings dispersos.
Ahí está el primer matiz que casi nadie menciona: Adam no es «mejor», es más indulgente. Y esa indulgencia tiene un precio en generalización que se nota cuando el dataset es pequeño o mediano.
Por qué Adam gana en la mayoría de casos prácticos
Si tienes que entregar un modelo funcional esta semana y no puedes permitirte una búsqueda exhaustiva de hiperparámetros, Adam gana. Punto. Lo he visto en proyectos de procesamiento de lenguaje: con SGD necesitas un schedule cuidadoso, warmup y probar varias tasas; con Adam, un 1e-3 o 3e-4 razonable suele funcionar a la primera.
El algoritmo de optimización adaptativo también brilla cuando los datos son ruidosos o el batch es pequeño, porque la normalización por segundo momento amortigua los picos de gradiente. En tareas con vocabularios enormes y embeddings poco frecuentes, esa propiedad marca la diferencia entre converger y quedarse oscilando.
Otra ventaja poco glamurosa pero real: menos iteraciones de ajuste significan menos riesgo de sobreajustar el conjunto de validación a base de probar combinaciones. La simplicidad operativa cuenta.
Dónde SGD sigue ganando y por qué no lo abandonaría
En visión por computadora con datasets grandes, SGD con momentum y un schedule coseno sigue dando mejores resultados de test que Adam en muchas arquitecturas convolucionales. No es nostalgia: los mínimos que encuentra SGD tienden a ser más planos, y los mínimos planos generalizan mejor ante distribuciones ligeramente distintas.
Un caso concreto: un modelo de clasificación de defectos en piezas industriales. Con Adam, la accuracy de validación se estancaba y la de test caía varios puntos. Al pasar a SGD con momentum 0.9 y un descenso de learning rate por épocas, la brecha entre validación y test se redujo. No fue magia; fue la forma del mínimo.
También hay escenarios donde Adam directamente no encaja: problemas convexos simples con regularización fuerte, donde el paso adaptativo desestabiliza la convergencia teórica, o modelos lineales donde el gradiente ya está bien condicionado.
Por qué gana uno: la respuesta depende del régimen
Si tuviera que resumirlo en una regla: Adam gana cuando el tiempo de ingeniería es el recurso escaso; SGD gana cuando el rendimiento final es el recurso escaso. Esa es la comparación honesta entre ambos.
El algoritmo de optimización no se elige por moda, sino por el régimen en el que trabajas. Con datasets pequeños, prototipado rápido o arquitecturas con partes congeladas, Adam es la opción sensata. Con presupuesto de cómputo para afinar y un objetivo de precisión máxima en producción, SGD con un buen schedule suele compensar el esfuerzo extra.
Hay una tercera vía que mucha gente usa y pocos documentan: empezar con Adam para salir del régimen inicial y cambiar a SGD en las últimas épocas. Funciona, pero añade complejidad y un punto de transición que hay que elegir con criterio, no por corazonada.
Limitaciones que conviene asumir antes de decidir
Ninguno de los dos resuelve un mal diseño de datos. Si las etiquetas son inconsistentes o hay fuga de información entre train y test, el algoritmo de optimización es lo último que deberías tocar. Tampoco compensan una arquitectura sobredimensionada para el volumen de datos disponible.
Adam tiene además un consumo de memoria mayor por el estado de los momentos, algo relevante en modelos grandes con GPUs ajustadas. Y su regularización con weight decay requiere usar la variante correcta (AdamW); aplicar L2 clásico dentro del paso adaptativo da resultados peores de lo esperado.
La documentación de los frameworks y los papers originales de ambos métodos siguen siendo la mejor referencia para los detalles matemáticos. No hay atajos ahí.
Mi recomendación práctica: empieza con Adam, mide, y si el modelo importa de verdad, prueba SGD con schedule antes de dar por cerrado el entrenamiento. La comparación no se resuelve leyendo, se resuelve midiendo en tu propio conjunto de validación.
Perfiles verificables: Sitio web
Publicado el 29 de October de 2026. Última revisión: 29 de October de 2026.