Descenso de gradiente y puntos críticos

Cómo los modelos encuentran mínimos en funciones complejas

El descenso de gradiente (Gradient Descent) es un algoritmo de optimización que busca minimizar una función moviéndose en la dirección opuesta al gradiente.
Los puntos críticos son los puntos donde el gradiente es cero y pueden corresponder a mínimos, máximos o puntos silla.

👉 Juntos explican cómo y dónde aprenden los modelos.

Definición corta

  • Descenso de gradiente: algoritmo para minimizar funciones
  • Puntos críticos: puntos donde el gradiente es cero

Definición detallada

🔹 Descenso de gradiente

Actualización iterativa:xt+1=xtηf(xt)x_{t+1} = x_t – \eta \nabla f(x_t)xt+1​=xt​−η∇f(xt​)

Donde:

  • η\etaη = tasa de aprendizaje
  • f(x)\nabla f(x)∇f(x) = gradiente

🔹 Punto crítico

f(x)=0\nabla f(x) = 0

👉 Puede ser:

  • mínimo
  • máximo
  • punto silla

Intuición

Descenso de gradiente

👉 “Baja por la pendiente hasta encontrar el punto más bajo”

Puntos críticos

👉 “¿Dónde la pendiente es cero?”

Pendiente ≠ 0 → seguimos moviéndonos  
Pendiente = 0 → punto crítico

Tipos de puntos críticos

TipoDescripción
Mínimopunto más bajo
Máximopunto más alto
Saddle pointmezcla de ambas

Ejemplo visual conceptual

Valle → mínimo  
Colina → máximo
Silla → plano inclinado en distintas direcciones

Relación con el Hessiano

El Hessiano clasifica puntos críticos:

  • positivo definido → mínimo
  • negativo definido → máximo
  • indefinido → saddle

🧠 Descenso de gradiente en redes neuronales

🔹 1. Entrenamiento

Minimiza:loss\text{loss}loss


🔹 2. Backpropagation

Calcula gradientes:

👉 ajusta pesos


🔹 3. Iteración

Se repite hasta convergencia.


🔹 4. Problemas comunes

  • mínimos locales
  • saddle points
  • gradientes pequeños

📊 Ejemplo paso a paso

f(x)=x2f(x) = x^2f(x)=x2


Gradiente:f(x)=2xf'(x) = 2xf′(x)=2x


Actualización:xt+1=xtη(2xt)x_{t+1} = x_t – \eta (2x_t)xt+1​=xt​−η(2xt​)


👉 converge a x=0x = 0x=0


🔗 Tipos de descenso de gradiente

🔹 Batch

  • usa todos los datos

🔹 Stochastic (SGD)

  • usa un dato

🔹 Mini-batch

  • equilibrio entre ambos

Ejemplo conceptual

Inicio → bajando → convergencia  
→ mínimo

Ejemplo en Python

import numpy as np
# función
def f(x):
return x**2
# gradiente
def grad(x):
return 2*x
x = 5.0
lr = 0.1
for i in range(10):
x = x - lr * grad(x)
print("Resultado:", x)

Ejemplo en PyTorch

import torch
x = torch.tensor([5.0], requires_grad=True)
optimizer = torch.optim.SGD([x], lr=0.1)
for _ in range(10):
optimizer.zero_grad()
y = x**2
y.backward()
optimizer.step()
print("Resultado:", x.item())

Ejemplo con función 2D

import torch
x = torch.tensor([2.0, 2.0], requires_grad=True)
optimizer = torch.optim.SGD([x], lr=0.1)
for _ in range(20):
optimizer.zero_grad()
y = x[0]**2 + x[1]**2
y.backward()
optimizer.step()
print("Resultado:", x)

Ejemplo conceptual de saddle point

import numpy as np
def f(x, y):
return x**2 - y**2
print("Saddle en (0,0)")

Qué muestra este ejemplo

  • Cómo encontrar mínimos
  • Uso de gradientes
  • Problemas de optimización

Errores comunes

Learning rate incorrecto

  • muy alto → diverge
  • muy bajo → lento

Quedarse en saddle points

Gradiente ≈ 0 pero no es mínimo.


Ignorar normalización

Puede afectar convergencia.

Ejemplo conceptual en ML

Modelo inicial  

Optimización

Mínimo de pérdida

🧠 Interpretación profunda

El descenso de gradiente y los puntos críticos permiten:

  • entrenar modelos
  • encontrar soluciones óptimas
  • entender superficies de pérdida
  • analizar estabilidad

👉 Son el corazón del aprendizaje automático.

Conclusión

El descenso de gradiente es el algoritmo clave para entrenar modelos, mientras que los puntos críticos determinan dónde puede detenerse. Juntos explican cómo los modelos aprenden y optimizan funciones complejas.

👉 Entenderlos es entender cómo aprende la IA.

Related Concepts