🧮 Computational Mathematics

Inicio · Parte 08

Cálculo multivariable, matricial y autodiferenciación

universitario-avanzado 20 clases 80 horas estimadas motor part08

Derivadas parciales, gradiente, Jacobiano, Hessiano, Taylor multivariable, multiplicadores de Lagrange, cálculo matricial y autodiferenciación.

Panorama de la parte

Esta es la parte donde el programa deja de hablar de matemática «que se usa en IA» y pasa a construir el mecanismo exacto que entrena una red neuronal. Al final de las 20 clases habrás implementado un motor de autodiferenciación en modo reverso de unas cien líneas y habrás comprobado que sus gradientes coinciden con los que calculaste a mano.

Las clases 161 a 166 extienden la derivada a varias variables. La idea central es que el gradiente es el vector de derivadas parciales y apunta en la dirección de mayor crecimiento. De ahí sale, sin más argumento, el descenso de gradiente: para minimizar, hay que moverse en la dirección opuesta. Todo el entrenamiento de un modelo es esa frase repetida millones de veces.

Las clases 167 a 170 generalizan la maquinaria: regla de la cadena multivariable, Jacobiano, Hessiano y Taylor. El Jacobiano es la derivada de una función vectorial y es el objeto que manipulan internamente los frameworks: backward() calcula un producto vector-Jacobiano sin construir nunca el Jacobiano completo, que sería inmanejable. El Hessiano describe la curvatura y decide si un punto crítico es mínimo, máximo o silla.

Las clases 171 y 172 son optimización: descenso de gradiente sobre una cuadrática y multiplicadores de Lagrange. Lagrange convierte una restricción en un término del objetivo, y su multiplicador tiene una interpretación económica precisa —cuánto mejora el óptimo si se relaja la restricción— que reaparece en KKT (clase 257) y en el precio sombra de la programación lineal.

Las clases 173 a 176 tratan integrales múltiples y campos vectoriales, y las clases 177 y 178 el cálculo matricial: cómo derivar respecto a vectores y matrices. Ahí aparece la identidad más usada en machine learning: el gradiente de la pérdida cuadrática ‖Xw − y‖²/n es 2Xᵀ(Xw − y)/n. Esa expresión es el gradiente de una capa lineal.

El cierre (179 y 180) implementa la autodiferenciación y la contrasta con backpropagation manual sobre la misma red. Que ambos den exactamente el mismo número es la demostración de que autograd no es magia: es la regla de la cadena aplicada en orden topológico inverso (clase 096).

Recorrido de la parte

Ideas centrales

Por qué importa en IA

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

Errores frecuentes

Secuencia de clases

#ClaseDemostración ejecutable
161 Funciones de varias variables multivariable_functions
162 Superficies y curvas de nivel level_curves
163 Derivadas parciales partial_derivatives
164 Gradiente gradient
165 Derivada direccional directional_derivative
166 Plano tangente tangent_plane
167 Regla de la cadena multivariable multivariable_chain_rule
168 Jacobiano jacobian
169 Hessiano hessian
170 Taylor multivariable multivariable_taylor
171 Optimización sin restricciones unconstrained_optimization
172 Multiplicadores de Lagrange lagrange_multipliers
173 Integrales dobles double_integrals
174 Integrales triples triple_integrals
175 Campos vectoriales vector_fields
176 Divergencia y rotacional divergence_curl
177 Cálculo matricial matrix_calculus
178 Derivadas respecto de vectores y matrices vector_matrix_derivatives
179 Automatic differentiation y computational graphs autodiff
180 Capstone: backpropagation manual y automática capstone_backpropagation

Ejecutar la parte completa

compmath run --part 08

Glosario de la parte (19 términos)

TérminoDefiniciónClase
Derivada parcial Derivada respecto a una variable manteniendo las demás fijas. Se denota ∂f/∂x. 163
Curva de nivel Conjunto de puntos donde la función toma el mismo valor. El gradiente es perpendicular a ella. 162
Gradiente Vector de derivadas parciales. Apunta en la dirección de mayor crecimiento y su norma mide la pendiente. 164
Derivada direccional Tasa de cambio en una dirección unitaria; es la proyección del gradiente sobre ella. 165
Plano tangente Aproximación lineal de una superficie en un punto. Su error crece cuadráticamente con la distancia. 166
Jacobiano Matriz de primeras derivadas de una función vectorial. Su fila i es el gradiente de la componente i. 168
VJP Producto vector-Jacobiano. Es lo que calcula el modo reverso sin construir el Jacobiano completo. 168
Hessiano Matriz de segundas derivadas. Describe la curvatura y clasifica los puntos críticos. 169
Punto de silla Punto crítico con Hessiano de autovalores de signos mixtos: mínimo en unas direcciones y máximo en otras. 169
Taylor multivariable f(x+d) ≈ f(x) + ∇fᵀd + ½dᵀHd. El término de segundo orden usa el Hessiano. 170
Multiplicador de Lagrange Coeficiente λ que mide cuánto mejora el óptimo al relajar la restricción una unidad. 172
Teorema de Fubini Permite calcular una integral múltiple como integrales iteradas cuando la función es integrable. 173
Campo vectorial Función que asigna un vector a cada punto del espacio. 175
Campo conservativo Campo que es el gradiente de una función potencial. Su rotacional es nulo. 175
Divergencia Medida de cuánto un campo actúa como fuente o sumidero en un punto. 176
Rotacional Medida de la circulación local de un campo alrededor de un punto. 176
Convención de layout Acuerdo sobre si el gradiente es fila o columna. Mezclar convenciones produce transposiciones erróneas. 177
Grafo de cómputo DAG cuyos nodos son operaciones. La autodiferenciación lo recorre en orden topológico inverso. 179
Modo reverso Estrategia de autodiferenciación que calcula todas las derivadas con un barrido hacia adelante y uno hacia atrás. 179

Bibliografía

Ver el motor en GitHub