Gradiente Descendente Estocástico
El descenso de gradiente estocástico (SGD) minimiza el error de un modelo estimando el gradiente con un solo ejemplo o mini-lote en vez de todo el conjunto de datos. Es el motor del entrenamiento de redes neuronales: del ruido y la tasa de aprendizaje a variantes como el momento y Adam.
El descenso de gradiente estocástico (en inglés Stochastic Gradient Descent, SGD) es un método de optimización iterativa que minimiza una función de pérdida —la medida del error de un modelo— ajustando sus parámetros paso a paso en la dirección opuesta al gradiente de esa función. El gradiente indica hacia dónde crece el error; moverse en sentido contrario lo reduce.
Su rasgo distintivo frente al descenso de gradiente clásico está en cómo estima ese gradiente. En lugar de recorrer todo el conjunto de datos en cada paso, SGD lo aproxima con un único ejemplo o con un pequeño subconjunto. Es el caballo de batalla del entrenamiento de redes neuronales y hunde sus raíces en la aproximación estocástica que Herbert Robbins y Sutton Monro formalizaron en 1951.
Del lote completo al mini-lote
El descenso de gradiente por lotes (batch) calcula el gradiente exacto sobre todos los ejemplos de entrenamiento antes de dar un solo paso. Es preciso, pero con millones de datos cada actualización resulta lenta y costosa en memoria. SGD invierte el compromiso: estima el gradiente con un solo ejemplo, de modo que actualiza los parámetros muchas más veces por cada recorrido de los datos. A cambio, cada estimación es ruidosa, una aproximación imperfecta del gradiente verdadero.
En la práctica casi nadie usa un solo ejemplo ni el lote completo, sino el punto intermedio: el mini-lote (mini-batch), que promedia el gradiente sobre unas decenas o centenas de ejemplos. Léon Bottou popularizó este enfoque para el aprendizaje a gran escala: combina la rapidez del método estocástico con la estabilidad del promediado y encaja con el cálculo paralelo de las GPU. Cuando hoy se dice «SGD», casi siempre se habla de mini-batch SGD.
El ruido y la tasa de aprendizaje
El ruido de SGD no es solo un defecto. Sus oscilaciones pueden ayudar a que el proceso escape de mínimos locales o de regiones planas donde el descenso por lotes quedaría atrapado, algo valioso en las enrevesadas superficies de error de las redes profundas. Pero ese mismo ruido impide que el algoritmo se asiente en el mínimo si no se controla.
La herramienta de control es la tasa de aprendizaje (learning rate): el tamaño de cada paso. Demasiado grande, y las actualizaciones divergen o rebotan sin converger; demasiado pequeña, y el entrenamiento se arrastra. Robbins y Monro ya demostraron que la convergencia exige reducir el paso de forma gradual. De ahí las planificaciones (schedules) que disminuyen la tasa a lo largo del entrenamiento, hoy una pieza rutinaria del oficio.
Variantes: momento, RMSProp y Adam
Sobre el esqueleto de SGD se han construido variantes que suavizan el ruido y aceleran la convergencia. El momento (momentum), cuya idea se remonta al trabajo de Boris Polyak en 1964, acumula un promedio de los gradientes recientes para amortiguar las oscilaciones y ganar velocidad en las direcciones consistentes.
Los métodos adaptativos van más allá y ajustan un paso distinto para cada parámetro. RMSProp, presentado por Geoffrey Hinton y Tijmen Tieleman en un curso de 2012, divide el paso por una media móvil de la magnitud reciente del gradiente. Adam, propuesto por Diederik Kingma y Jimmy Ba en 2014, fusiona esa idea con el momento y añade una corrección de sesgo; se ha convertido en el optimizador por defecto de buena parte del aprendizaje profundo. Ninguna variante destrona a SGD: todas son refinamientos de la misma idea, seguir el gradiente un ejemplo ruidoso cada vez.
Este artículo se ha elaborado con inteligencia artificial bajo supervisión editorial humana.