Prendre la dérivée matricielle$\| \left| \mathbf{X}\mathbf{W}\right|-\mathbf{1}_{n \times K} \| ^2_F$par rapport à W
J'essaie de prendre la dérivée matricielle de la fonction suivante par rapport à$\bf W$:
\begin{équation} \| \gauche| \mathbf{X}\mathbf{W}\right|-\mathbf{1}_{n \times K} \| ^2_F \\ \end{équation}
Où$\mathbf{X}$est$n \times d$,$\mathbf{W}$est$d \times K$et$\mathbf{1}_{n \times K}$est un marix avec tous les éléments un.$\| \cdot \|_F$est la norme de Frobenius et$\left| \mathbf{X}\mathbf{W}\right|$est la valeur absolue par élément de$\mathbf{X}\mathbf{W}$.
Toute aide est très appréciée.
Réponses
Pour faciliter la saisie, définissez les matrices$$\eqalign{ Y &= XW \\ J &= 1_{n\times K} \qquad&({\rm all\,ones\,matrix}) \\ S &= {\rm sign}(Y) \\ A &= S\odot Y \qquad&({\rm absolute\,value\,of\,}Y) \\ B &= A-J \\ Y &= S\odot A \qquad&({\rm sign\,property}) \\ }$$où$\odot$désigne le produit élément par élément/Hadamard et la fonction de signe est appliquée élément par élément. Utilisez ces nouvelles variables pour réécrire la fonction, puis calculez son gradient.$$\eqalign{ \phi &= \|B\|_F^2 \\&= B:B \\ d\phi &= 2B:dB \\ &= 2(A-J):dA \\ &= 2(A-J):S\odot dY \\ &= 2S\odot(A-J):dY \\ &= 2(Y-S):dY \\ &= 2(Y-S):X\,dW \\ &= 2X^T(Y-S):dW \\ \frac{\partial\phi}{\partial W} &= 2X^T(Y-S) \\ }$$où deux-points désignent le produit trace/Frobenius, c'est-à-dire$$\eqalign{ A:B = {\rm Tr}(A^TB) = {\rm Tr}(AB^T) = B:A }$$La propriété cyclique de la trace permet à ces produits d'être réarrangés de diverses manières$$\eqalign{ A:BC &= B^TA:C \\ &= AC^T:B \\ }$$Enfin, quand$(A,B,C)$sont tous de la même taille, leurs produits Hadamard et Frobenius font la navette entre eux$$\eqalign{ A:B\odot C &= A\odot B:C \\\\ }$$ NB : Lorsqu'un élément de$\,Y$est égal à zéro, le gradient est indéfini. Ce comportement est similaire à la dérivée de$\,|x|\,$dans le cas scalaire.