2 votos

Cálculo matricial: $\nabla_{\mathbf{c}}(-2\mathbf{x}^T \mathbf{D} \mathbf{c} + \mathbf{c}^T \mathbf{c}) = -2\mathbf{D}^T \mathbf{x} + 2\mathbf{c}$ ?

En un ejemplo de análisis de componentes principales, mi libro de texto utiliza el cálculo vectorial para hacer lo siguiente:

$\nabla_{\mathbf{c}}(-2\mathbf{x}^T \mathbf{D} \mathbf{c} + \mathbf{c}^T \mathbf{c}) = \mathbf{0}$

$\rightarrow -2\mathbf{D}^T \mathbf{x} + 2\mathbf{c} = \mathbf{0}$

$\rightarrow c = \mathbf{D}^T \mathbf{x}$

Dónde $\nabla_{\mathbf{c}}$ es el gradiente con respecto a $\mathbf{c}$ , $\mathbf{D} \in \mathbb{R}^{n \times l}$ , $\mathbf{c} \in \mathbb{R}^l$ y las columnas de $\mathbf{D}$ son ortogonales entre sí.

Tengo las siguientes preguntas:

  1. ¿Cómo llegaron los autores de $\mathbf{x}^T \mathbf{D} \mathbf{c}$ a $\mathbf{D}^T \mathbf{x}$ ? No he estudiado cálculo matricial, pero supongo que $\dfrac{ \partial }{\partial{\mathbf{c}}} \mathbf{c} = I$ ? ¿Qué pasa con $\mathbf{x}^T \mathbf{D}$ a $\mathbf{D}^T \mathbf{x}$ ?

  2. ¿Cómo pasaron los autores de $\mathbf{c}^T \mathbf{c}$ a $2\mathbf{c}$ ? He encontrado lo siguiente en Diferenciación de matrices por Randal J. Barnes:


enter image description here


Si suponemos que $\mathbf{A} = I$ ¿no es esto lo que buscamos? Pero eso no nos dejaría con $2\mathbf{c}^T$ en lugar de $2\mathbf{c}$ ?

Agradecería mucho que la gente se tomara la molestia de aclararlo.

2voto

Jackozee Hakkiuz Puntos 33

Existen (desgraciadamente) diferentes convenciones en el cálculo matricial. La más común es $$\nabla_{c} \equiv \frac{\partial}{\partial c}$$ Sin embargo, en su ejemplo la convención es $$\nabla_{c} \equiv \frac{\partial}{\partial c^{T}}$$ Teniendo esto en cuenta, realizamos el cálculo \begin{align*} \frac{\partial}{\partial c^{T}}\left(-2x^{T}Dc + c^{T}c\right) = 0 \tag{1}\\ \frac{\partial}{\partial c^{T}}\left(-2c^{T}D^{T}x + c^{T}c\right) = 0 \tag{2}\\ -2\frac{\partial c^{T}}{\partial c^{T}}D^{T}x + \frac{\partial}{\partial c^{T}}(c^{T}c) = 0 \tag{3}\\ -2D^{T}x + \frac{\partial c^{T}}{\partial c^{T}}c + c^{T}\frac{\partial c}{\partial c^{T}}= 0 \tag{4}\\ -2D^{T}x + c + c^{T}\frac{\partial c}{\partial c^{T}}= 0 \tag{5}\\ -2D^{T}x + 2c= 0 \tag{6} \end{align*}

Ahora, para ir de $(5)$ a $(6)$ tenemos que demostrar que $\displaystyle c^{T}\frac{\partial c}{\partial c^{T}} = c$ .

Podemos verlo utilizando la notación de índices. Aquí, $c$ tiene un índice superior, y $c^{T}$ tiene un índice más bajo. Están relacionados por $c^{i} = \delta^{ij}(c^{T})_{j}$ y $(c^{T})_{i} = \delta_{ij}c^{j}$ (donde $\delta$ es el delta de kronecker).

Así que tenemos $$\left(c^{T}\frac{\partial c}{\partial c^{T}}\right)^j = (c^{T})_{i}\frac{\partial c^{i}}{\partial (c^{T})_j}\\ = (c^{T})_{i}\frac{\partial (c^{T})_{k}\delta^{ki}}{\partial (c^{T})_j}\\ = (c^{T})_{i}\frac{\partial (c^{T})_{k}}{\partial (c^{T})_j}\delta^{ki}\\ = (c^{T})_{i}\delta^{j}_{k}\delta^{ki} = (c^{T})_{i}\delta^{ji} = c^{j} $$

Y hemos terminado.

0voto

Pierre Lebeaupin Puntos 729

Se puede definir el gradiente $\nabla f$ de una función escalar (agradable) $f$ como la única función con valor vectorial tal que $$ f(x+v) = f(x) + \nabla f(x)^Tv + o(|v|) \qquad (|v|\to 0)$$ A partir de esto, se pueden demostrar los siguientes resultados básicos-

  1. Si $f(x)$ es un mapa lineal dado por la multiplicación de matrices $f(x) = Ax$ entonces su gradiente es constante en $x$ con valor $\nabla f(x) =A^T$ .
  2. Si $f(x) = x^TAx$ entonces $\nabla f(x) = (A^T+A)x $ .

Yo diría que son buenos ejercicios si no has trabajado mucho con derivados. Estos juntos dan el resultado.

Una observación sobre el resultado que has encontrado en el libro de Barnes: él utiliza una convención diferente, $$f(x+v) = f(x) + \tilde\nabla f(x) v + o(|v|)$$ y éstas están, por supuesto, relacionadas por transposición de matrices. Pero debes tener en cuenta qué convención estás utilizando cuando consultes otros recursos.

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