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)
Donde:
- η = tasa de aprendizaje
- ∇f(x) = gradiente
🔹 Punto crítico
👉 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
| Tipo | Descripción |
|---|---|
| Mínimo | punto más bajo |
| Máximo | punto más alto |
| Saddle point | mezcla 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
🔹 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)=x2
Gradiente:f′(x)=2x
Actualización:xt+1=xt−η(2xt)
👉 converge a x=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óndef f(x): return x**2# gradientedef grad(x): return 2*xx = 5.0lr = 0.1for i in range(10): x = x - lr * grad(x)print("Resultado:", x)
Ejemplo en PyTorch
import torchx = 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 torchx = 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 npdef f(x, y): return x**2 - y**2print("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
- Gradiente
- Hessiano
- Optimización
- Función de pérdida
- Aproximación de Taylor