35 votos

¿Cuál es la conexión entre el Jacobiano, el Hessiano y el gradiente?

En este artículo de Wikipedia tienen esto que decir sobre el gradiente:

Si $m = 1$, $\mathbf{f}$ es un campo escalar y la matriz jacobiana se reduce a un vector fila de derivadas parciales de $\mathbf{f}$—es decir, el gradiente de $\mathbf{f}$.

Así como

El Jacobiano del gradiente de una función escalar de varias variables tiene un nombre especial: la matriz Hessiana, que en cierto sentido es la "segunda derivada" de la función en cuestión.

Así que intenté hacer los cálculos y me quedé atascado.

Si dejamos que $f: \mathbb{R}^n \to \mathbb{R}$, entonces $$Df = \begin{bmatrix} \frac{\partial f}{\partial x_1} & \dots & \frac{\partial f}{\partial x_n} \end{bmatrix} = \nabla f$$ Hasta aquí todo bien, pero cuando intento calcular la matriz jacobiana del gradiente obtengo $$D^2f = \begin{bmatrix} \frac{\partial^2 f}{\partial x_1^2} & \frac{\partial^2 f}{\partial x_2 x_1} & \dots & \frac{\partial^2 f}{\partial x_n x_1} \\ \frac{\partial^2 f}{\partial x_1 x_2} & \frac{\partial^2 f}{\partial x_2^2} & \dots & \frac{\partial^2 f}{\partial x_n x_2} \\ \vdots & \vdots & \ddots & \vdots \\ \frac{\partial^2 f}{\partial x_1 x_n} & \frac{\partial^2 f}{\partial x_2 x_n} & \dots & \frac{\partial^2 f}{\partial x_n^2} \end{bmatrix}$$ Lo cual según este artículo, no es igual a la matriz Hessiana sino más bien su transpuesta, y por lo que puedo entender la Hessiana no es generalmente simétrica.

Así que tengo dos preguntas, ¿se considera generalmente al gradiente como un vector fila? ¿Y hice algo mal al calcular el Jacobiano del gradiente de $f$, o está incorrecto el artículo de Wikipedia?

33voto

Scott Staniewicz Puntos 396

No hiciste nada mal en tu cálculo. Si calculas directamente el Jacobiano del gradiente de $f$ con las convenciones que usaste, terminarás con la traspuesta del Hessiano. Esto se nota con más claridad en la introducción al Hessiano en Wikipedia (https://en.wikipedia.org/wiki/Hessian_matrix) donde dice

La matriz Hessiana puede considerarse relacionada con la matriz Jacobiana por $\mathbf{H}(f(\mathbf{x})) = \mathbf{J}(∇f(\mathbf{x}))^T$.

El otro artículo de Wikipedia probablemente debería actualizar el lenguaje para que coincida en consecuencia.

En cuanto al gradiente de $f$ que se define como un vector fila, así es como lo he visto más a menudo, pero se señala en https://en.wikipedia.org/wiki/Matrix_calculus#Layout_conventions que existen convenciones competidoras para derivadas de matrices en general. Sin embargo, no creo que eso deba cambiar tu respuesta para el Hessiano- con las convenciones que estás usando, es correcto que deba ser transpuesto.

5voto

AWSA Puntos 21

Comencemos uno por uno. Siguiendo la convención de diseño de numerador, el gradiente de $f(x): \mathbf{R}^n \rightarrow \mathbf{R}$ con respecto a $x$ es un vector columna como sigue $$ \nabla f(x) = \begin{bmatrix} \frac{\partial f}{\partial x_1}\\ \frac{\partial f}{\partial x_2}\\ \vdots \\ \frac{\partial f}{\partial x_n} \end{bmatrix} \in \mathbf{R}^n $$

La Hessiana es la segunda derivada con respecto a $x$ y es una matriz cuadrada que puede resumirse como $H f(x)_{ij} = \frac{\partial^2 f}{\partial x_i \partial x_j}$ donde $i$ es la fila y $j$ es la columna. La matriz Hesiana es $$ H_f(x) = \nabla^2 f(x) = \begin{bmatrix} \frac{\partial^2 f}{\partial x^2_1} & \frac{\partial^2 f}{\partial x_1 \partial x_2} & \cdots & \frac{\partial^2 f}{\partial x_1 \partial x_n}\\ \frac{\partial^2 f}{\partial x_2 \partial x_1} & \frac{\partial^2 f}{\partial x^2_2} & \cdots & \frac{\partial^2 f}{\partial x_2 \partial x_n}\\ \vdots & \vdots & \ddots & \vdots \\ \frac{\partial^2 f}{\partial x_n \partial x_1} & \frac{\partial^2 f}{\partial x_n \partial x_2} & \cdots & \frac{\partial^2 f}{\partial x^2_n} \end{bmatrix} \in \mathbf{R}^{n \times n} $$

Sugiero echar un vistazo al Apéndice D de este libro Optimización Convexa, Dattorro.

Ahora, en relación con la relación entre el Gradiente, Jacobiano y Hessiano, aquí hay un resumen basado en la misma convención de diseño de numerador.

  • El Gradiente es la traspuesta del Jacobiano, es decir, $\nabla f = J^T f$.
  • El Hessiano es la derivada del gradiente, es decir, $H f = J(\nabla f)$.

Intentemos el $J(\nabla f)$ en el primer elemento del gradiente $\frac{\partial f}{\partial x_1}$ en el que el Jacobiano es de hecho la derivada parcial $\frac{\partial f}{\partial x}$ y es un vector fila

$$ \frac{\partial f}{\partial x}\left ( \frac{\partial f}{\partial x_1} \right ) = \begin{bmatrix} \frac{\partial f}{\partial x_1}\left ( \frac{\partial f}{\partial x_1} \right ) & \frac{\partial f}{\partial x_2}\left ( \frac{\partial f}{\partial x_1} \right ) & \cdots & \frac{\partial f}{\partial x_n}\left ( \frac{\partial f}{\partial x_1} \right ) \end{bmatrix} \in \mathbf{R}^{1 \times n} $$ lo cual coincide con la primera fila de la matriz Hessiana arriba.

Solo recuerda que $\frac{\partial^2 f}{\partial x_1 \partial x_2} = \frac{\partial \left ( \frac{\partial f}{\partial x_1} \right )}{\partial x_2} = \frac{\partial \left ( \frac{\partial f}{\partial x_2} \right )}{\partial x_1} = \frac{\partial^2 f}{\partial x_2 \partial x_1}$.

Una prueba de la relación Hesiana se puede ver en la sección A.4.3 del libro de optimización convexa de B&V, los autores afirmaron que "la asignación del gradiente es la función $\nabla f: \mathbf{R}^n \rightarrow \mathbf{R}$, con $\mathbf{dom} \nabla f = \mathbf{dom} f$, con valor $\nabla f(x)$ en $x$. La derivada de esta asignación es $D \nabla f(x) = \nabla^2 f(x)$"

Entonces, según las palabras de los autores, el Hessiano = Jacobiano (gradiente f(x)) según la convención del libro que creo que es la convención de diseño de numerador.

3voto

suineg Puntos 67

En la sección A.4.1 del libro de Optimización Convexa de B & V, dado una función escalar $f(x)$ con $x\in \mathbf{R}^n$, la traspuesta de la derivada (o Jacobiano) de $f$ se llama el gradiente de esta función:

$$ \nabla f(x)=Df(x)^T $$

donde $\nabla f(x)$ es un vector columna y $Df(x)$ es un vector fila. En la comunidad de aprendizaje automático (ML), $$H(f(x))=\nabla^2 f(x)=\nabla\nabla^T f(x)=\nabla Df(x)=(D\nabla f(x))^T$$ donde la tercera igualdad se obtiene en el sentido notacional basado en el símbolo $\nabla\nabla^T f$, que puede no ser riguroso pero tiene sentido de alguna manera al combinar $(D\nabla f(x))^T$ la última igualdad (exactamente igual que la respuesta de Scott Staniewicz, es decir, $D\nabla f(x)^T$). En un sentido numérico, tanto tomar el gradiente de la derivada como transponer la derivada del gradiente producen la matriz Hessiana.

Nota que la notación $\nabla\nabla^T f$ es correcta y estándar. Técnicamente hablando, $\nabla^2 f$ no es una notación estándar en un sentido matemático, aunque comúnmente se usa en la comunidad de ML. @Scott Staniewicz


Por favor no tomar en serio las terceras y cuartas igualdades. Son solo otras formas de conectar el Jacobiano, la Hessiana y el gradiente.

i-Ciencias.com

I-Ciencias es una comunidad de estudiantes y amantes de la ciencia en la que puedes resolver tus problemas y dudas.
Puedes consultar las preguntas de otros usuarios, hacer tus propias preguntas o resolver las de los demás.

Powered by:

X