機械学習に詳しくなりたいブログ

機械学習や数学について勉強した内容を中心に書きます。100%趣味です。記事は数学的に厳密でなかったり誤りを含んでいるかもしれません。ご指摘頂ければ幸いです。

行列の微分(2)


\displaystyle \frac{\partial}{\partial \mathbf X} \mathrm{Tr} (\mathbf X^{T} \mathbf Y \mathbf X) \tag{1}

を考えます。行列の微分の定義は行列の微分に書きました。ここで \mathbf Xm \times n \mathbf Ym \times mの行列とします。\mathrm{Tr} (\mathbf X^{T} \mathbf Y \mathbf X)はスカラですから、行列の微分の定義に従って計算していきます。(参考:行列の内積とトレース

 \mathrm{Tr} (\mathbf X^{T} \mathbf Y \mathbf X)を計算して書き出せば、


\displaystyle \mathrm{Tr} (\mathbf{X}^{T} \mathbf{Y} \mathbf{X}) = \sum_{j=1}^{m} x_{j1} \sum_{i=1}^{m} x_{i1}y_{ij}  + \cdots +\sum_{j=1}^{m}x_{jn}\sum_{i=1}^{m}x_{in}y_{ij}\tag{2}

です。これを \mathbf Xで微分します。 \mathbf Xab列の要素x_{ab}での微分は、積の微分公式を使って


\displaystyle \frac{\partial}{\partial x_{ab}} \mathrm{Tr} (\mathbf X^{T} \mathbf Y \mathbf X) = \sum_{i=1}^{m}x_{ib}y_{ia}+\sum_{j=1}^{m}x_{jb}y_{aj} \tag{3}

です。前半の項は\mathbf Y^{T}\mathbf Xab列の要素であり、後半の項は\mathbf Y\mathbf Xab列の要素ですから、


\displaystyle \frac{\partial}{\partial X} \mathrm{Tr} (\mathbf X^{T} \mathbf Y \mathbf X) = (\mathbf Y^{T} + \mathbf Y)\mathbf X\tag{4}

となります。