Inicio · Parte 08
Derivadas parciales, gradiente, Jacobiano, Hessiano, Taylor multivariable, multiplicadores de Lagrange, cálculo matricial y autodiferenciación.
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).
| # | Clase | Demostració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 |
compmath run --part 08
| Término | Definición | Clase |
|---|---|---|
| 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 |