Kettenregel für Matrixderivate
Ich habe eine Funktion $f: \mathbb{R}^{n \times n} \to \mathbb{R}$, wo $\mathbb{R}^{n \times n}$ bezeichnet die Menge von $n \times n $echte Matrizen. Ich habe einen geschlossenen Ausdruck für$$ g(A) := \frac{\partial}{\partial A} f(A). $$
Das Ziel ist zu berechnen $\frac{\partial}{\partial B} f(C'BC)$ wo $B$ und $C$ sind $k \times k$ und $k \times n$ Matrizen jeweils (so dass $C'BC$ ist ein $n \times n $Matrix wie es sein sollte). Ich denke, es muss gleich sein$ C'g(C'BC)C $aber ich möchte sicherstellen und eine Referenz für diese Kettenregel erhalten. Vielen dank für Deine Hilfe.
[EDIT] Es scheint klar, dass meine Vermutung falsch ist. Jede Hilfe, um mich auf den richtigen Weg zu bringen, wäre sehr dankbar.
Antworten
Definieren $A:\mathbb{R}^{k\times k}\rightarrow\mathbb{R}^{n\times n}$ wie $A(B)=C'BC$
Bezeichnen Sie auch $g(A)=[g_{ij}(A)],~A=[a_{ij}],~c=[c_{ij}]$
Dann \begin{align} \dfrac{\partial}{\partial B}f(C'BC)=& \dfrac{\partial}{\partial B}(f\circ A)(B)\\ \triangleq&\left[\dfrac{\partial (f\circ A)}{\partial b_{kl}}(B)\right]\\ =&\left[\sum\limits_{i,j=1}^n\dfrac{\partial f}{\partial a_{ij}}\left(A(B)\right)\dfrac{\partial a_{ij}}{\partial b_{kl}}(B)\right]\\ =&\left[\sum\limits_{i,j=1}^ng_{ij}\left(A(B)\right)\dfrac{\partial a_{ij}}{\partial b_{kl}}(B)\right]\\ =&\left[\sum\limits_{i,j=1}^ng_{ij}\left(C'BC\right)c_{ki}c_{lj}\right]\\ =&\left[c_kg(C'BC)c_l'\right]\\ =&Cg(C'BC)C' \end{align}
wo $c_k$ bezeichnet die $k$-te Zeile von $C$
Bezeichnen Sie den bekannten Gradienten als Matrix $G$und verwenden Sie es, um das Differential der Funktion zu schreiben .$$\eqalign{ G &= \frac{\partial f}{\partial A} \doteq g(A) \\ df &= G:dA \\ }$$ Verwenden Sie nun die Beziehung $\,A=C^TBC\,$ um die unabhängige Variable zu ändern (von $A\to B\,$) $$\eqalign{ df &= G:d(C^TBC) \\ &= G:C^TdB\,C \\ &= CGC^T:dB \\ \frac{\partial f}{\partial B} &= CGC^T \\\\ }$$ Oben bezeichnet ein Doppelpunkt das Trace / Frobenius-Produkt, d. H. $$\eqalign{ M:N = {\rm Tr}(M^TN) = {\rm Tr}(N^TM) = N:M \\ }$$