🧮 Computational Mathematics

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

178 — Derivadas respecto de vectores y matrices

universitario-avanzado clase 18 de 20 4 horas demostración vector_matrix_derivatives

El gradiente de la pérdida cuadrática es 2Xᵀ(Xw − y)/n: esa expresión es el gradiente de una capa lineal.

Fórmulas

L(w) = ‖Xw − y‖²/n
∇L = 2Xᵀ(Xw − y)/n

Desarrollo

Esta clase deduce la fórmula que más se usa en todo el machine learning. La pérdida cuadrática media de un modelo lineal es ‖Xw − y‖²/n, y su gradiente respecto a los pesos es 2Xᵀr/n, donde r = Xw − y es el vector de residuos.

La estructura de esa expresión merece leerse despacio, porque es la misma en modelos mucho más complejos. El residuo mide el error de cada observación; Xᵀ lo proyecta de vuelta al espacio de parámetros, atribuyendo a cada peso la parte del error que le corresponde según su feature; y la división por n promedia.

En una red neuronal ocurre exactamente lo mismo capa a capa: se calcula el error en la salida y se «retropropaga» multiplicando por la transpuesta de la matriz de pesos. La aparición de Wᵀ en backpropagation no es un truco: es esta fórmula.

Igualar el gradiente a cero da XᵀXw = Xᵀy, las ecuaciones normales de la clase 131. Optimización iterativa y solución cerrada llegan al mismo sitio; la primera escala a millones de parámetros y la segunda no.

Ejemplo trabajado

Gradiente de la pérdida cuadrática de un modelo lineal.

X = [[1,2],[2,1],[3,4]]   y = (5, 4, 11)   w = (1, 1)

predicciones: Xw = (3, 3, 7)
residuos r = Xw − y = (−2, −1, −4)

MSE = (4 + 1 + 16)/3 = 7.0

∇w = 2Xᵀr/n = 2·(−16, −21)/3 = (−10.6667, −14.0)
numérico:                       (−10.6667, −14.0)   ✓

Igualar a cero → ecuaciones normales XᵀXw = Xᵀy

Qué calcula el laboratorio

Gradiente de una pérdida cuadrática respecto de los pesos.

python classes/part-08-calculo-multivariable-matricial-y-autodiferenciacion/178-derivadas-respecto-de-vectores-y-matrices/lab.py
compmath run 178

Salidas del laboratorio (7)

Muestra de la ejecución real

{
  "X_shape": [
    3,
    2
  ],
  "w": [
    1.0,
    1.0
  ],
  "perdida_MSE": 7.0,
  "∇w_analitico_2Xᵀ(Xw-y)/n": [
    -10.666667,
    -14.0
  ],
  "∇w_numerico": [
    -10.666667,
    -14.0
  ],
  "coinciden": true
}

Errores comunes

Dónde se usa

Gradiente de una capa lineal, regresión por descenso de gradiente, deducción de backpropagation y toda función de pérdida cuadrática.

Idea rectora de la parte

El Hessiano describe la curvatura y decide el tipo de punto crítico.

Error a evitar

Olvidar acumular gradientes cuando un nodo se reutiliza en el grafo.

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