🧮 Computational Mathematics

Inicio · Parte 08 — Cálculo multivariable, matricial y autodiferenciación

164 — Gradiente

universitario-avanzado clase 4 de 20 4 horas demostración gradient

El gradiente apunta al mayor ascenso; por eso se minimiza moviéndose en dirección contraria.

Fórmulas

∇f = (∂f/∂x₁, ..., ∂f/∂xₙ)
descenso: x ← x − α∇f
‖∇f‖ = pendiente máxima

Desarrollo

El gradiente reúne todas las derivadas parciales en un vector, y ese vector tiene dos propiedades que lo convierten en el objeto central de la optimización: apunta en la dirección de máximo crecimiento y su norma es la pendiente en esa dirección.

La primera propiedad es la que justifica el algoritmo más usado del machine learning moderno. Si el gradiente apunta hacia arriba, moverse en −∇f es la forma más rápida de bajar localmente. x ← x − α∇f es el descenso de gradiente, y toda la parte 12 son variantes de esa línea.

La palabra localmente es esencial. El gradiente solo informa del comportamiento infinitesimal alrededor del punto; nada garantiza que la dirección de máximo descenso local lleve al mínimo global, ni siquiera que sea una buena dirección a media distancia. En un valle alargado, la dirección de máximo descenso es casi perpendicular a la que lleva al mínimo.

La norma del gradiente sirve además como criterio de parada: cerca de un punto crítico, ‖∇f‖ tiende a cero. Es el indicador que usan todos los optimizadores para decidir cuándo detenerse, y es preferible a un número fijo de iteraciones porque se adapta al problema.

Ejemplo trabajado

Gradiente y verificación de la dirección de ascenso.

f(x,y) = x²y + 3xy² + 2   en el punto (2,3)

∇f = (39, 40),   ‖∇f‖ = 55.87
dirección unitaria: (0.6981, 0.7160)

f(2,3) = 68.0

Moverse h = 0.001 en dirección +∇f:  68.055872   ↑
Moverse h = 0.001 en dirección −∇f:  67.944128   ↓

El gradiente sube y su opuesto baja           ✓

Qué calcula el laboratorio

El gradiente apunta al mayor ascenso.

python classes/part-08-calculo-multivariable-matricial-y-autodiferenciacion/164-gradiente/lab.py
compmath run 164

Salidas del laboratorio (9)

Muestra de la ejecución real

{
  "punto": [
    2.0,
    3.0
  ],
  "gradiente": [
    39.0,
    40.0
  ],
  "norma": 55.865911,
  "direccion_unitaria": [
    0.6981,
    0.716
  ],
  "f(p)": 68.0,
  "f(p + h·∇f)": 68.05588145
}

Errores comunes

Dónde se usa

Descenso de gradiente y todas sus variantes, criterios de parada, mapas de saliencia en interpretabilidad y ataques adversariales.

Idea rectora de la parte

Modo reverso calcula todas las derivadas en un solo barrido hacia atrás.

Error a evitar

Confundir la convención de layout (numerador vs denominador) en cálculo matricial.

Conexión con IA

Autograd de PyTorch y JAX es exactamente el modo reverso del grafo de cómputo que se construye en esta parte a mano.

Bibliografía de la clase

Archivos de la clase