Necesito derivar $\frac{\delta(X^{T}MX)}{\delta X}$ , donde $X$ y $M$ son $n \times n$ matrices.
Sé que $\frac{\delta(AXB)}{\delta X}=B^{T} \otimes A$ pero estoy teniendo dificultades para derivar lo que necesito de eso o desde cero.
Necesito derivar $\frac{\delta(X^{T}MX)}{\delta X}$ , donde $X$ y $M$ son $n \times n$ matrices.
Sé que $\frac{\delta(AXB)}{\delta X}=B^{T} \otimes A$ pero estoy teniendo dificultades para derivar lo que necesito de eso o desde cero.
Empezar con una función matricial, luego tomar la diferencial, luego vectorizar e identificar el gradiente.
$$\eqalign{ F &= X^TMX \cr dF &= dX^TMX + X^TMdX \cr {\rm vec}(dF) &= {\rm vec}(dX^TMX) + {\rm vec}(X^TMdX) \cr df&=(X^TM^T\otimes I){\rm vec}(dX^T) + (I\otimes X^TM){\rm vec}(dX)\cr &= \Big((X^TM^T\otimes I)K + (I\otimes X^TM)\Big)\,{\rm vec}(dX) \cr \frac{\partial f}{\partial x} &= (X^TM^T\otimes I)K + (I\otimes X^TM) \cr }$$ donde $K$ es el Matriz de conmutación para los productos de Kronecker.
Dejemos que $f(X) = X^T M X$ . Entonces, para una variación $\epsilon Y$ con $\epsilon$ un número real, tenemos por cálculo directo $$ f(X+\epsilon Y) = f(X) + \epsilon \left( Y^T M X + X^T M Y \right) + \epsilon^2 \left( Y^T M Y \right) $$ Por lo tanto, podemos calcular la derivada direccional como sigue: $$ \nabla_Y f(X) := \lim_{\epsilon \to 0} \frac{f(X+\epsilon Y)-f(X)}{\epsilon} = Y^T MX + X^T M Y. $$ Por lo tanto, la derivada $\nabla f$ en $X$ es el mapa lineal $$ \nabla f(X): Y \mapsto Y^T M X + X^T M Y $$
$\Phi: M_n \times M_n \to M_n$ dado por $\Phi(X,Y) = X^T M Y$ es una forma bilineal en un nvs de dimensión finita, por lo que $\Phi$ está acotado. Por lo tanto, $\Phi$ es diferenciable y:
$$D \Phi(X,Y)(H,K) = \Phi(H,Y) + \Phi(X,K) = H^T M Y + X^T M K$$
para todos $X,Y,H,K \in M_n$ .
Dejemos que $q: M_n \to M_n$ , $q(X) = \Phi(X,X)$ . Entonces, $q$ es diferenciable y para todo $X, H \in M_n$ ,
$$Dq(X)H = D\Phi(X,X)(H,H) = H^T M X + X^T M H$$
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.
1 votos
Si $A$ es un vector de filas y $B$ es un vector columna, entonces $AXB$ es un escalar. Por lo tanto, $(AXB)/X$ debe ser un $n \times n$ matriz. Sin embargo, $B^T \otimes A$ es un vector de filas. Algo no está bien. La derivada es en realidad $A^T B^T$ .
1 votos
Está siguiendo la convención Magnus-Neudecker, en la que se vectoriza todo.