行列導関数を取る $\| \left| \mathbf{X}\mathbf{W}\right|-\mathbf{1}_{n \times K} \| ^2_F$ Wに関して

Aug 18 2020

私は次の関数の行列導関数をとろうとしています。 $\bf W$

\ begin {equation} \ | \左| \ mathbf {X} \ mathbf {W} \ right |-\ mathbf {1} _ {n \ times K} \ | ^ 2_F \\ \ end {equation}

どこ $\mathbf{X}$ です $n \times d$$\mathbf{W}$ です $d \times K$ そして $\mathbf{1}_{n \times K}$ すべての要素が1つであるマリックスです。 $\| \cdot \|_F$ フロベニウスのノルムであり、 $\left| \mathbf{X}\mathbf{W}\right|$ の要素ごとの絶対値です $\mathbf{X}\mathbf{W}$

どんな助けでも大歓迎です。

回答

3 greg Aug 18 2020 at 23:07

入力しやすいように、行列を定義します $$\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}) \\ }$$ どこ $\odot$は要素ごと/アダマール積を示し、符号関数は要素ごとに適用されます。これらの新しい変数を使用して関数を書き直し、その勾配を計算します。$$\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) \\ }$$ ここで、コロンはトレース/フロベニウス積を示します。 $$\eqalign{ A:B = {\rm Tr}(A^TB) = {\rm Tr}(AB^T) = B:A }$$ トレースの周期的特性により、このような製品をさまざまな方法で再配置できます。 $$\eqalign{ A:BC &= B^TA:C \\ &= AC^T:B \\ }$$ 最後に、 $(A,B,C)$ すべて同じサイズで、アダマールとフロベニウスの製品は互いに通勤します $$\eqalign{ A:B\odot C &= A\odot B:C \\\\ }$$ 注意:の要素が$\,Y$ゼロに等しい場合、勾配は未定義です。この動作は、の派生物に似ています$\,|x|\,$ スカラーの場合。