1 votos

Derivado de $\nabla_{\theta} f(x, \theta) f(x, \theta)$ (el gradiente de la función por la propia función)

Tengo problemas para calcular la derivada de $\nabla_{\theta}f(x, \theta)f(x, \theta) $ (el gradiente de la función $f(x, \theta)$ veces la propia función) que es \begin{align} D(\nabla_{\theta}f(x, \theta)f(x, \theta)), \end{align} para $\theta = (\theta_1, \theta_2)^T$ y donde $Df = (\partial_{\theta_1}f(x, \theta), \partial_{\theta_2}f(x, \theta)) \in \mathbb{R}^{1\times2}$ . El gradiente es un vector columna, $\nabla_{\theta}f(x, \theta) \in \mathbb{R}^{2\times1}$ .

Consigo que esto sea igual a \begin{align} D^2f(x, \theta)f(x, \theta) + \nabla_{\theta}f(x, \theta)\nabla_{\theta}f(x, \theta)^T, \end{align} donde $D^2f(x, \theta)$ es el hessiano y $\nabla_{\theta}f(x, \theta)\nabla_{\theta}f(x, \theta)^T$ es el producto exterior de los gradientes, pero mis cálculos numéricos (usando el paquete numDeriv en R) no parecen coincidir con esto.

¿En qué me estoy equivocando?

3voto

Lo he descubierto yo mismo. Gracias por la recomendación de la función, @whuber.

Para la función $f(\theta) = \theta_1^2 + \theta_2^2 + \theta_1 \theta_2$ , el gradiente de la función es igual a \begin{align} \nabla_{\theta}f(\theta) = \left[\begin{matrix}2 \theta_{1} + \theta_{2}\\\theta_{1} + 2 \theta_{2}\end{matrix} \[derecha], \N - fin \N - alineación y el hessiano es igual a \begin{align} D^2f(\theta) = \left[\begin{matrix}2 & 1\\1 & 2\end{matrix} \[derecha]. \N - Fin.

Ahora, el gradiente de la función por sí mismo es igual a

\begin{align} \nabla_{\theta}f(\theta) f(\theta) = \left[\begin{matrix}\left(2 \theta_{1} + \theta_{2}\right) \left(\theta_{1}^{2} + \theta_{1} \theta_{2} + \theta_{2}^{2}\right)\\\left(\theta_{1} + 2 \theta_{2}\right) \left(\theta_{1}^{2} + \theta_{1} \theta_{2} + \theta_{2}^{2}\right)\end{matrix} \[derecha]. \N - Fin.

La derivada de esta cantidad (la que me interesaba) es igual a

\begin{align} D(\nabla_{\theta}f(\theta) f(\theta)) &= \left[\begin{matrix}2 \theta_{1}^{2} + 2 \theta_{1} \theta_{2} + 2 \theta_{2}^{2} + \left(2 \theta_{1} + \theta_{2}\right)^{2} & \theta_{1}^{2} + \theta_{1} \theta_{2} + \theta_{2}^{2} + \left(\theta_{1} + 2 \theta_{2}\right) \left(2 \theta_{1} + \theta_{2}\right)\\\theta_{1}^{2} + \theta_{1} \theta_{2} + \theta_{2}^{2} + \left(\theta_{1} + 2 \theta_{2}\right) \left(2 \theta_{1} + \theta_{2}\right) & 2 \theta_{1}^{2} + 2 \theta_{1} \theta_{2} + 2 \theta_{2}^{2} + \left(\theta_{1} + 2 \theta_{2}\right)^{2}\end{matrix} \ right] \\ ~ - [derecha] \ ~ - [izquierda] \ ~ - [derecha] \ ~ &= \left[ \begin{matrix}2 & 1\\1 & 2\end{matrix} \right](\theta_1^2 + \theta_2^2 + \theta_1 \theta_2) + \left[ \begin{matrix}2 \theta_{1} + \theta_{2}\\\theta_{1} + 2 \theta_{2}\end{matrix} \derecha] \izquierda[ \begin{matrix}2 \theta_{1} + \theta_{2}, \theta_{1} + 2 \theta_{2}\end{matrix} \ right] \ ~ - [derecho] \ ~ - [derecho] \ ~ & = D^2f(\theta)f(\theta) + \nabla_{\theta}f(\theta) \nabla_{\theta}f(\theta)^T. \N - fin {align}

Así que la identidad se mantiene.

Para una función general $f{\left(\theta_{1},\theta_{2} \right)}$ el gradiente de esta función por sí mismo es igual a \begin{align} \left[\begin{matrix}f{\left(\theta_{1},\theta_{2} \right)} \frac{\partial}{\partial \theta_{1}} f{\left(\theta_{1},\theta_{2} \right)}\\f{\left(\theta_{1},\theta_{2} \right)} \frac{\partial}{\partial \theta_{2}} f{\left(\theta_{1},\theta_{2} \right)}\end{matrix} \[derecha] |align}

y la derivada de ésta es igual a \begin{align} \left[\begin{matrix}f{\left(\theta_{1},\theta_{2} \right)} \frac{\partial^{2}}{\partial \theta_{1}^{2}} f{\left(\theta_{1},\theta_{2} \right)} + \left(\frac{\partial}{\partial \theta_{1}} f{\left(\theta_{1},\theta_{2} \right)}\right)^{2} & f{\left(\theta_{1},\theta_{2} \right)} \frac{\partial^{2}}{\partial \theta_{2}\partial \theta_{1}} f{\left(\theta_{1},\theta_{2} \right)} + \frac{\partial}{\partial \theta_{1}} f{\left(\theta_{1},\theta_{2} \right)} \frac{\partial}{\partial \theta_{2}} f{\left(\theta_{1},\theta_{2} \right)}\\f{\left(\theta_{1},\theta_{2} \right)} \frac{\partial^{2}}{\partial \theta_{2}\partial \theta_{1}} f{\left(\theta_{1},\theta_{2} \right)} + \frac{\partial}{\partial \theta_{1}} f{\left(\theta_{1},\theta_{2} \right)} \frac{\partial}{\partial \theta_{2}} f{\left(\theta_{1},\theta_{2} \right)} & f{\left(\theta_{1},\theta_{2} \right)} \frac{\partial^{2}}{\partial \theta_{2}^{2}} f{\left(\theta_{1},\theta_{2} \right)} + \left(\frac{\partial}{\partial \theta_{2}} f{\left(\theta_{1},\theta_{2} \right)}\right)^{2}\end{matrix} \[derecha] |align}

que es igual a \begin{align} \left[\begin{matrix}\frac{\partial^{2}}{\partial \theta_{1}^{2}} f{\left(\theta_{1},\theta_{2} \right)} & \frac{\partial^{2}}{\partial \theta_{2}\partial \theta_{1}} f{\left(\theta_{1},\theta_{2} \right)}\\\frac{\partial^{2}}{\partial \theta_{2}\partial \theta_{1}} f{\left(\theta_{1},\theta_{2} \right)} & \frac{\partial^{2}}{\partial \theta_{2}^{2}} f{\left(\theta_{1},\theta_{2} \right)}\end{matrix} \f{left(\theta_{1},\theta_{2} \right)} + \left[ \begin{matrix}\frac{\partial}{\partial \theta_{1}} f{\left(\theta_{1},\theta_{2} \right)}\\\frac{\partial}{\partial \theta_{2}} f{\left(\theta_{1},\theta_{2} \right)}\end{matrix} \derecha] \izquierda[ \begin{matrix}\frac{\partial}{\partial \theta_{1}} f{\left(\theta_{1},\theta_{2} \right)}, \frac{\partial}{\partial \theta_{2}} f{\left(\theta_{1},\theta_{2} \right)}\end{matrix} \[derecho] \ ~ \ ~ - = D^2f{a la izquierda(\theta_{1},\theta_{2} \ right)} + \nabla_{theta}f{a la izquierda(\theta_{1},\theta_{2} \right)}f{a la izquierda(\theta_{1},\theta_{2} \right)}^T. \fin{align}

El motivo de mi confusión (ya hice esas derivaciones en mi cuaderno) fue una pequeña errata en mi código R :) Dejo aquí las derivaciones para alguien en el futuro que pueda encontrarse con el mismo problema que yo.

La razón por la que me interesaba $D(\nabla_{\theta}f{\left(\theta_{1},\theta_{2} \right)}f{\left(\theta_{1},\theta_{2} \right)})$ es cuando se encuentra el hessiano de la función de pérdida en mínimos cuadrados no lineales \begin{align} \frac{1}{2}(y - f{\left(\theta_{1},\theta_{2} \right)})^2. \end{align}

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