Inicio · Parte 08 — Cálculo multivariable, matricial y autodiferenciación
∂(aᵀx)/∂x = a
∂(xᵀAx)/∂x = (A + Aᵀ)x, y 2Ax si A es simétrica
∂‖x‖²/∂x = 2x
Derivar respecto a un vector o una matriz componente a componente es tedioso y propenso a error. El cálculo matricial ofrece fórmulas cerradas para los patrones que aparecen una y otra vez, y saberlas de memoria acelera cualquier deducción en machine learning.
Las dos más útiles son inmediatas: la derivada de una forma lineal aᵀx es a, y la de una forma cuadrática xᵀAx es (A + Aᵀ)x, que se reduce a 2Ax cuando A es simétrica —el caso habitual, porque toda forma cuadrática se puede escribir con matriz simétrica—.
El escollo práctico es la convención de layout. En la convención del denominador el gradiente es un vector columna; en la del numerador, una fila. Ambas son correctas y las fórmulas difieren en una transposición. Mezclarlas produce errores de shape que a veces no se detectan porque las dimensiones cuadran por casualidad.
La recomendación práctica es fijar una convención, declararla en el código y verificar siempre las fórmulas contra diferencias finitas. El laboratorio hace exactamente eso, y es lo mismo que hace torch.autograd.gradcheck.
Dos identidades verificadas numéricamente.
x = (1, 2), a = (4, −1), A = [[2,1],[1,3]] (simétrica)
Forma lineal aᵀx:
fórmula: ∂/∂x = a = (4, −1)
numérica: (4.000000, −1.000000) ✓
Forma cuadrática xᵀAx:
fórmula: (A + Aᵀ)x = 2Ax = (8, 14)
numérica: (8.00000, 14.00000) ✓
Convención usada: denominador (gradiente como columna)
Identidades básicas de cálculo matricial.
python classes/part-08-calculo-multivariable-matricial-y-autodiferenciacion/177-calculo-matricial/lab.py
compmath run 177
d(aᵀx)/dxgradiente_numerico_lineald(xᵀAx)/dx = (A+Aᵀ)xgradiente_numerico_cuadraticoA_simetrica_da_2Axconvencion{
"d(aᵀx)/dx": [
4.0,
-1.0
],
"gradiente_numerico_lineal": [
4.0,
-1.0
],
"d(xᵀAx)/dx = (A+Aᵀ)x": [
8.0,
14.0
],
"gradiente_numerico_cuadratico": [
8.0,
14.0
],
"A_simetrica_da_2Ax": [
8.0,
14.0
],
"convencion": "layout denominador (gradiente como columna)"
}
Deducción de gradientes de funciones de pérdida, backpropagation analítica, métodos de segundo orden y cualquier derivación en un paper de machine learning.
Autograd de PyTorch y JAX es exactamente el modo reverso del grafo de cómputo que se construye en esta parte a mano.
9781119541202 verificado en International ISBN Agency (2026-08-19).