Gradient Descent/es: Difference between revisions

    From Marovi AI
    (Force re-parse after Math source-mode rollout (v1.2.0))
    Tags: ci-deploy Reverted
    (Pass 2 force re-parse)
    Tags: ci-deploy Reverted
    Line 115: Line 115:
    [[Category:Introductory]]
    [[Category:Introductory]]
    <!--v1.2.0 cache-bust-->
    <!--v1.2.0 cache-bust-->
    <!-- pass 2 -->

    Revision as of 07:00, 24 April 2026

    Languages: English | Español | 中文
    Article
    Topic area Optimization
    Difficulty Introductory

    Descenso de gradiente es un algoritmo de optimizacion iterativo de primer orden para encontrar un minimo local de una funcion diferenciable. Constituye la base de practicamente todos los procedimientos de entrenamiento del aprendizaje automatico moderno, desde la regresion lineal simple hasta las redes neuronales profundas con miles de millones de parametros.

    Intuicion

    Imaginese de pie en la ladera de una montana en medio de una niebla espesa. No se puede ver el fondo del valle, pero se puede sentir la pendiente bajo los pies. La estrategia mas natural consiste en dar un paso en la direccion de mayor descenso y luego reevaluar. El descenso de gradiente formaliza precisamente esta idea: en cada paso, el algoritmo calcula la direccion de mayor crecimiento de la funcion (el gradiente) y se desplaza en la direccion opuesta.

    El tamano de cada paso esta controlado por un escalar denominado tasa de aprendizaje (frecuentemente denotada $ \eta $). Una tasa de aprendizaje grande cubre terreno rapidamente pero corre el riesgo de sobrepasar el minimo; una tasa de aprendizaje pequena converge de forma mas fiable pero puede requerir un numero prohibitivamente alto de pasos.

    Formulacion matematica

    Dada una funcion objetivo diferenciable $ f:\mathbb{R}^n \to \mathbb{R} $, el descenso de gradiente genera una secuencia de iteraciones mediante la regla de actualizacion:

    $ \theta_{t+1} = \theta_t - \eta \, \nabla f(\theta_t) $

    donde $ \nabla f(\theta_t) $ es el vector gradiente evaluado en el punto actual $ \theta_t $ y $ \eta > 0 $ es la tasa de aprendizaje.

    En el caso unidimensional, esto se simplifica a:

    $ \theta_{t+1} = \theta_t - \eta \, f'(\theta_t) $

    El gradiente $ \nabla f $ apunta en la direccion de mayor ascenso, por lo que restarlo mueve la iteracion cuesta abajo.

    Variantes por lotes, estocastica y mini-lotes

    Cuando la funcion objetivo tiene la forma de un promedio sobre puntos de datos,

    $ f(\theta) = \frac{1}{N}\sum_{i=1}^{N} \ell(\theta;\, x_i, y_i) $

    tres estrategias comunes difieren en la cantidad de datos utilizada para estimar el gradiente:

    Variante Gradiente calculado sobre Coste por paso Ruido del gradiente
    Descenso de gradiente por lotes (completo) Las $ N $ muestras Alto Ninguno
    Descenso de gradiente estocastico (SGD) 1 muestra aleatoria Bajo Alto
    Descenso de gradiente por mini-lotes $ B $ muestras aleatorias ($ 1 < B < N $) Medio Medio

    El descenso de gradiente por lotes completo calcula el gradiente exacto y, por lo tanto, sigue una trayectoria suave hacia el minimo. El descenso de gradiente estocastico utiliza una unica muestra para estimar el gradiente, lo que reduce drasticamente el calculo por paso a costa de una trayectoria mas ruidosa. El descenso de gradiente por mini-lotes logra un equilibrio y es la opcion mas comun en la practica, con tamanos de lote tipicos entre 32 y 512.

    Convergencia

    Funciones convexas

    Para una funcion convexa con gradientes Lipschitz-continuos (constante $ L $), el descenso de gradiente con una tasa de aprendizaje fija $ \eta \leq 1/L $ converge a una tasa de $ O(1/t) $. Si la funcion es adicionalmente fuertemente convexa con parametro $ \mu > 0 $, la convergencia se acelera a una tasa lineal (exponencial):

    $ f(\theta_t) - f(\theta^*) \leq \left(1 - \frac{\mu}{L}\right)^t \bigl(f(\theta_0) - f(\theta^*)\bigr) $

    La relacion $ \kappa = L / \mu $ se denomina numero de condicion y determina la velocidad de convergencia del algoritmo. Los problemas mal condicionados (con $ \kappa $ grande) convergen lentamente.

    Funciones no convexas

    La mayoria de las funciones objetivo del aprendizaje profundo son no convexas. En este escenario, solo se garantiza que el descenso de gradiente converja a un punto estacionario (donde $ \nabla f = 0 $), que podria ser un minimo local, un punto de silla o incluso un maximo local. En la practica, los puntos de silla son mas problematicos que los minimos locales en espacios de alta dimension.

    Seleccion de la tasa de aprendizaje

    La eleccion de la tasa de aprendizaje es una de las decisiones practicas mas importantes:

    • Demasiado grande — las iteraciones oscilan o divergen.
    • Demasiado pequena — la convergencia es inaceptablemente lenta.
    • Programas de tasa de aprendizaje — muchos profesionales comienzan con una tasa mayor y la reducen con el tiempo (decaimiento por escalones, decaimiento exponencial, recocido coseno).
    • Busqueda de linea — los metodos numericos clasicos eligen $ \eta $ en cada paso para satisfacer condiciones como las de Wolfe o Armijo, aunque esto es poco habitual en el aprendizaje profundo.

    Una heuristica comun consiste en probar varios valores en una escala logaritmica (por ejemplo, $ 10^{-1}, 10^{-2}, 10^{-3} $) y elegir el que reduzca la perdida mas rapidamente sin inestabilidad.

    Extensiones y mejoras

    Varias modificaciones importantes abordan las limitaciones del descenso de gradiente basico:

    • Momento — acumula un vector de velocidad a partir de gradientes anteriores, lo que ayuda a acelerar la convergencia en paisajes con forma de barranco.
    • Gradiente acelerado de Nesterov — una variante del momento que evalua el gradiente en una posicion anticipada, obteniendo mejores tasas de convergencia teoricas.
    • Metodos adaptativos (Adagrad, RMSProp, Adam) — mantienen tasas de aprendizaje por parametro que se adaptan segun el historial de gradientes.
    • Metodos de segundo orden — algoritmos como el metodo de Newton y L-BFGS utilizan informacion de curvatura (la hessiana o su aproximacion) para una convergencia mas rapida, pero suelen ser demasiado costosos para problemas a gran escala.

    Consejos practicos

    • Escalado de caracteristicas — normalizar las caracteristicas de entrada para que tengan rangos similares mejora drasticamente la convergencia, porque la superficie de perdida se vuelve mas isotropica.
    • Recorte de gradientes — limitar la norma del gradiente evita actualizaciones excesivamente grandes.
    • Inicializacion aleatoria — comenzar desde una inicializacion aleatoria razonable (por ejemplo, inicializacion de Xavier o He para redes neuronales) evita problemas de ruptura de simetria.
    • Monitorizacion de la curva de perdida — graficar la perdida de entrenamiento a lo largo de las iteraciones es el diagnostico mas sencillo: una curva que decrece suavemente indica un entrenamiento saludable; las oscilaciones sugieren que la tasa de aprendizaje es demasiado alta.

    Aplicaciones

    El descenso de gradiente y sus variantes se utilizan en toda la ciencia y la ingenieria:

    • Entrenamiento de modelos de aprendizaje automatico (modelos lineales, redes neuronales, maquinas de vectores de soporte)
    • Procesamiento de senales y sistemas de control
    • Problemas inversos en fisica e imagen
    • Investigacion de operaciones y optimizacion logistica
    • Economia y calculo de equilibrios en teoria de juegos

    Vease tambien

    Referencias

    • Cauchy, A. (1847). "Methode generale pour la resolution des systemes d'equations simultanees". Comptes Rendus de l'Academie des Sciences.
    • Boyd, S. and Vandenberghe, L. (2004). Convex Optimization. Cambridge University Press.
    • Ruder, S. (2016). "An overview of gradient descent optimization algorithms". arXiv:1609.04747.
    • Goodfellow, I., Bengio, Y. and Courville, A. (2016). Deep Learning, Chapter 8. MIT Press.