last_modified: 2026-01-10
生成AIによる自動生成記事に関する免責事項: 本記事は、Petersen & Pedersen著 The Matrix Cookbook (Nov 15, 2012 edition) のPage 13の内容(公式106〜123)を骨子とし、数理的な証明と応用例を大幅に加筆して再構成した解説記事です。筆者の学習目的で生成したものです。正確な内容は必ず一次情報で確認してください。
1. 序論:機械学習の「損失関数」を記述する言葉
Page 13は、行列微分の教科書において「最も付箋が貼られるページ」の一つと言っても過言ではありません。なぜなら、ここには**二次形式のトレース(Second Order Traces)**の微分公式が網羅されているからです。
機械学習や統計学において、誤差やエネルギーはしばしば「二乗和」で定義されます。行列の世界における二乗和は、フロベニウスノルムの二乗 や、重み付き二乗和 として表現されます。 本ページに記載された公式群(特に Eq. 108, 115)は、Ridge回帰、主成分分析(PCA)、行列分解(NMF/SVD)、そしてディープラーニングの重み減衰(Weight Decay)の勾配計算において使われているものです。
2. 二次形式のトレース微分 (Second Order)
変数 がトレースの中に2回現れる(二次式である)パターンの微分です。スカラーの に相当する直感を、行列の世界で厳密に展開します。
2.1 フロベニウスノルムと基本形 (Eq. 106, 115)
最も基本的かつ重要な公式です。
【公式】 \frac{\partial}{\partial X} \text{Tr}(X^2) = 2X^T \tag{106}
\frac{\partial}{\partial X} \text{Tr}(X^T X) = \frac{\partial}{\partial X} \text{Tr}(X X^T) = 2X \tag{115}
【解説と証明】
- Eq. 106: 勾配は の転置なので 。
- Eq. 115 (重要): (フロベニウスノルムの二乗) 勾配は 。 この という結果は、スカラーの の微分 と完全に一致します。これが正則化項(Ridge)の勾配が単に「係数×自分自身」となる理由です。
2.2 重み付き二次形式 (Eq. 107–113)
定数行列 が挟まった形式です。これらは物理学における運動エネルギーや、統計学における一般化分散の計算に現れます。
【公式一覧】
\frac{\partial}{\partial X} \text{Tr}(X^2 B) = (XB + BX)^T \tag{107}
\frac{\partial}{\partial X} \text{Tr}(X^T B X) = BX + B^T X \tag{108}
\frac{\partial}{\partial X} \text{Tr}(B X X^T) = BX + B^T X \tag{109}
\frac{\partial}{\partial X} \text{Tr}(X X^T B) = BX + B^T X \tag{110}
\frac{\partial}{\partial X} \text{Tr}(X B X^T) = XB^T + XB \tag{111}
\frac{\partial}{\partial X} \text{Tr}(B X^T X) = XB^T + XB \tag{112}
\frac{\partial}{\partial X} \text{Tr}(X^T X B) = XB^T + XB \tag{113}
【パターンの整理】 一見バラバラに見えますが、2つのグループに分類できます。
- と がペアの形 ( や ): Eq. 108, 109, 110
- 結果はすべて です。もし が対称行列なら です。
- と (または ) が離れている形: Eq. 111, 112, 113
- 結果はすべて です。もし が対称行列なら です。
【Eq. 108 の証明】
勾配は 。
2.3 4次以上の積を含む二次形式 (Eq. 114, 116–119)
が2回現れるものの、間に他の行列が挟まっている複雑なケースです。
【公式一覧】 \frac{\partial}{\partial X} \text{Tr}(A X B X) = A^T X^T B^T + B^T X^T A^T \tag{114}
\frac{\partial}{\partial X} \text{Tr}(B^T X^T C X B) = C^T X B B^T + C X B B^T \tag{116}
\frac{\partial}{\partial X} \text{Tr}(X^T B X C) = B X C + B^T X C^T \tag{117}
\frac{\partial}{\partial X} \text{Tr}(A X B X^T C) = A^T C^T X B^T + C A X B \tag{118}
\frac{\partial}{\partial X} \text{Tr}((AXB+C)(AXB+C)^T) = 2 A^T (AXB+C) B^T \tag{119}
【Eq. 119 の解説(線形変換の二乗誤差)】 これは、ニューラルネットワークの全結合層における二乗誤差 の微分そのものです。 と置くと、 の微分になります。
連鎖律(Page 12 Eq. 101 の一般化)により、係数 と がそれぞれ転置されて両側から掛かります。
これがバックプロパゲーションで勾配が伝播する仕組みです。
2.4 クロネッカー積のトレース (Eq. 120)
【公式】
【解説】 です。 スカラー関数 の微分なので、
となります。
3. 高次形式のトレース微分 (Higher Order)
が 回現れる形式の微分です。
3.1 べき乗のトレース (Eq. 121, 122)
【公式】
\frac{\partial}{\partial X} \text{Tr}(X^k) = k (X^{k-1})^T \tag{121}
\frac{\partial}{\partial X} \text{Tr}(A X^k) = \sum_{r=0}^{k-1} (X^r A X^{k-r-1})^T \tag{122}
【解説】
- Eq. 121: スカラーの の微分 に対応します。トレースの巡回性により、微分された を末尾に持ってくる際、残りの の順序が変わらないため、係数 でまとめることができます。
- Eq. 122: 行列 が入ると巡回性が崩れる( を飛び越えられない)ため、Eq. 121 のようにまとまらず、和の形(級数)で残ります。これは Page 11 Eq. 90 と同じ構造です。
3.2 複雑な4次形式 (Eq. 123)
非常に長く複雑な式ですが、機械学習において「積層されたネットワークの正則化」などを考える際に現れる可能性があります。
【公式】
\frac{\partial}{\partial X} \text{Tr}(B^T X^T C X X^T C X B) &= C X X^T C X B B^T \\ &+ C^T X B B^T X^T C^T X \\ &+ C X B B^T X^T C X \\ &+ C^T X X^T C^T X B B^T \end{aligned} \tag{123}$$ **【構造分析】** 中身は $Y = CXB$ と置くと $\text{Tr}(Y^T Y Y^T Y) = \text{Tr}((YY^T)^2)$ に近い形(完全には一致しませんが)の高次形式です。 積の微分則に従い、$X$ が4箇所にあるため、結果も4つの項の和となります。それぞれの項は、$dX$ 以外の部分を転置して並べ替えたものになります。 --- ## 4. 実践的応用例:機械学習のアルゴリズムを導く Page 13 の公式群は、現代のAIやデータ解析のアルゴリズムを支える「エンジンの設計図」のようなものです。ここでは、機械学習の教科書によく出てくる3つの最適化問題が、Page 13 の公式を使ってどのように解かれているかを解説します。 ### 応用例1:多変量Ridge回帰(フロベニウスノルム微分の応用) 複数の目的変数を持つ回帰問題において、過学習を防ぐために「L2正則化(Ridge)」を導入するケースです。ここでは **Eq. 115** が主役となります。 **【問題設定】** 入力行列 $X$ から出力行列 $Y$ を予測する線形モデル $Y = XW$ を考えます。 二乗誤差に、重み行列 $W$ の大きさに対するペナルティ(正則化項)を加えた損失関数 $J(W)$ を最小化します。J(W) = | Y - XW |_F^2 + \lambda | W |_F^2
ここで $\|A\|_F^2 = \text{Tr}(A^T A)$ はフロベニウスノルムの二乗です。 **【解析】** 損失関数をトレースで書き下ろします。\begin{aligned} J(W) &= \text{Tr}((Y - XW)^T (Y - XW)) + \lambda \text{Tr}(W^T W) \ &= \text{Tr}(Y^T Y - Y^T X W - W^T X^T Y + W^T X^T X W) + \lambda \text{Tr}(W^T W) \end{aligned}
これを $W$ で微分して 0 と置きます。 1. **誤差項**: $\text{Tr}(W^T X^T X W)$ は二次形式です。$A = X^T X$ と置けば $\text{Tr}(W^T A W)$ なので、**Eq. 108** より微分は $2 X^T X W$ となります。一次の項($-2 \text{Tr}(Y^T X W)$)の微分は $-2 X^T Y$ です。 2. **正則化項**: $\lambda \text{Tr}(W^T W)$ は、まさに **Eq. 115** そのものです。微分は $2 \lambda W$ となります。 これらを合計すると、\frac{\partial J}{\partial W} = 2 X^T X W - 2 X^T Y + 2 \lambda W = 0
(X^T X + \lambda I) W = X^T Y
これは、スカラーのRidge回帰の公式を行列版に拡張したものです。「正則化項の微分が $2 \lambda W$ になる」という直感的な操作は、Eq. 115 によって数学的に保証されています。 --- ### 応用例2:主成分分析(PCA)の導出(重み付き二次形式の応用) データを最もよく表現する軸(主成分)を見つける問題は、制約付き最適化問題として定式化されます。ここでは **Eq. 108** が使われます。 **【問題設定】** データの分散共分散行列を $S$ とします。射影後の分散 $\text{Tr}(W^T S W)$ を最大化するような直交行列 $W$ ($W^T W = I$)を求めたいとします。 **【解析】** ラグランジュの未定乗数法を用います。目的関数は以下の通りです。L(W, \Lambda) = \text{Tr}(W^T S W) - \text{Tr}(\Lambda (W^T W - I))
ここで $\Lambda$ は対称行列のラグランジュ乗数です。$W$ について微分します。 1. **第1項**: $\text{Tr}(W^T S W)$ の微分です。$S$ は対称行列なので、**Eq. 108**(の対称版)より $2SW$ となります。 2. **第2項**: $-\text{Tr}(\Lambda W^T W)$ と変形できます(トレースの巡回性)。これも同様に **Eq. 108**(あるいは Eq. 113)を適用すると、$-2 W \Lambda$ となります($\Lambda$ も対称と仮定)。 微分を 0 と置くと、2SW - 2W\Lambda = 0 \quad \implies \quad SW = W\Lambda
これはまさに「分散共分散行列 $S$ の固有値問題」です。PCAが固有値分解に帰着することは、この行列微分によって導かれます。 --- ### 応用例3:行列分解(Matrix Factorization)の勾配(Eq. 115の応用) Netflixなどの推薦システムで使われる「行列分解」の学習アルゴリズムです。ユーザーとアイテムの評価値行列 $R$ を、2つの低ランク行列 $P, Q$ の積で近似します。 **【問題設定】** 目的関数は $J = \| R - P Q^T \|_F^2$ です。勾配降下法で $P$ を更新するために、$\frac{\partial J}{\partial P}$ を求めます。 **【解析】** 展開すると、J = \text{Tr}(R^T R) - 2\text{Tr}(R^T P Q^T) + \text{Tr}(Q P^T P Q^T)
$P$ に関係する項のみを微分します。 1. **中間項**: $-2\text{Tr}(R^T P Q^T) = -2\text{Tr}(Q^T R^T P)$。Page 12 の **Eq. 100** より、係数の転置となるので $-2 R Q$ です。 2. **二次項**: $\text{Tr}(Q P^T P Q^T) = \text{Tr}(P^T P Q^T Q)$。ここで $A = Q^T Q$ と置くと $\text{Tr}(P^T P A)$ となり、これは $\text{Tr}(P A P^T)$ と同じ形(**Eq. 111** の定数行列が対称行列のケース)と見なせます。あるいは **Eq. 113** $\frac{\partial}{\partial X}\text{Tr}(X^T X B)$ を適用すれば、微分は $2 P (Q^T Q)$ となります。 合わせると、勾配は以下のようになります。\frac{\partial J}{\partial P} = -2 (R - P Q^T) Q
この式は、「誤差 $(R - P Q^T)$ を入力 $Q$ で重み付けして逆伝播させる」という直感的な解釈と一致します。この勾配を使って $P \leftarrow P - \eta \frac{\partial J}{\partial P}$ と更新していくのが、行列分解の学習ループです。 ## 5. 結論 Page 13 の公式群は、現代のデータサイエンスを支える数理的な土台です。 1. **Eq. 115 ($2X$)**: Ridge回帰、L2正則化、行列分解の勾配。これを知らずして機械学習は語れません。 2. **Eq. 108 ($BX+B^T X$)**: 一般化固有値問題やマハラノビス距離の勾配。 3. **Eq. 119**: 多層ニューラルネットワークの誤差逆伝播。 これらの公式を「スカラー微分の類推」として直感的に理解しつつ、必要なときに正確な転置の位置を確認できるようにしておくことが、実装におけるバグを防ぐ鍵となります。 ## 参考文献 1. Petersen, K. B., & Pedersen, M. S. (2012). *The Matrix Cookbook*. Technical University of Denmark. (Page 13, Eqs 106-123) 2. Goodfellow, I., et al. (2016). *Deep Learning*. MIT Press. (Regularization and Backprop) 3. Bishop, C. M. (2006). *Pattern Recognition and Machine Learning*. Springer. (Matrix derivatives in PCA) --- ### 補足:Page 13 の公式を「スカラー(数値)」で直感的に理解する 二次形式のトレース微分は、スカラー微分の直感と非常によく合致します。 #### 1. 基本形 ($X^2, X^T X$) * **Eq. 106**: $\text{Tr}(X^2) \to x^2$ * 微分: $2x$ * 行列: $2X^T$ (トレース微分特有の転置がつく) * **Eq. 115**: $\text{Tr}(X^T X) \to x^2$ * 微分: $2x$ * 行列: $2X$ ($X^T$ と $X$ の組み合わせの場合、転置が相殺されてそのまま $X$ が残ることが多い) #### 2. 重み付き形式 ($X^T B X$) * **Eq. 108**: $\text{Tr}(X^T B X) \to b x^2$ * 微分: $2bx$ * 行列: $(B+B^T)X$ (対称なら $2BX$)。スカラーの係数 $2b$ が、行列の対称和 $B+B^T$ に対応します。 #### 3. 線形変換の二乗 ($(AX+B)^2$) * **Eq. 119**: $\text{Tr}((AXB+C)(\dots)^T) \to (axb+c)^2$ * 微分: $2(axb+c) \cdot ab$ * 行列: $2 A^T (AXB+C) B^T$ * 係数 $a, b$ が、行列では $A^T, B^T$ として両側から挟み込む形になります。 **「二乗の微分は2倍」「係数は転置して掛ける」**。この2つのルールで、Page 13 のほとんどの公式は再現可能です。 ### 補足:Eq. 123 (複雑な4次形式) の詳細導出 『The Matrix Cookbook』Eq. 123 は、一見すると非常に長く複雑な式ですが、構造を分解すれば「積の微分」と「トレースの性質」を適用しているだけです。 以下に、直感的なスカラー翻訳と、厳密な導出ステップをまとめます。 #### 1. スカラー翻訳:ゴールを予測する まず、行列 $X, B, C$ をすべてスカラー(数値)$x, b, c$ に置き換えて、式の構造を把握します(転置 $^T$ は無視します)。 * **元の関数**: $$ f = b \cdot x \cdot c \cdot x \cdot x \cdot c \cdot x \cdot b = b^2 c^2 x^4 $$ * **微分**: $$ f' = \frac{d}{dx} (b^2 c^2 x^4) = 4 b^2 c^2 x^3 $$ つまり、**「係数 $b^2 c^2$ が掛かった $x^3$ の項が 4つ 出てくる」** というのが答えの構造です。 Eq. 123 の右辺を見てみると、確かに行列の順序や転置は異なりますが、スカラーに直すとすべて $b^2 c^2 x^3$ になる項が4つ並んでいます。 1. $C X X^T C X B B^T \rightarrow c^2 b^2 x^3$ 2. $C^T X B B^T X^T C^T X \rightarrow c^2 b^2 x^3$ 3. $C X B B^T X^T C X \rightarrow c^2 b^2 x^3$ 4. $C^T X X^T C^T X B B^T \rightarrow c^2 b^2 x^3$ #### 2. 厳密な導出ステップ 関数 $J = \text{Tr}(B^T X^T C X X^T C X B)$ を $X$ で微分します。 積の中に $X$(および $X^T$)が **4回** 登場するので、積の微分公式 $(uvwz)' = u'vwz + uv'wz + uvw'z + uvwz'$ に従い、4つの項の和となります。 **基本ルール**: * $\text{Tr}(M^T dX)$ の形になれば、勾配は $M$。 * $\text{Tr}(M dX)$ の形になれば、勾配は $M^T$。 --- **【第1項:1つ目の $X^T$ を微分】**\text{Tr}(B^T \underline{(dX)^T} C X X^T C X B)
トレースの巡回性 $\text{Tr}(YZ) = \text{Tr}(ZY)$ を使い、$(dX)^T$ を左端に寄せます。= \text{Tr}((dX)^T \underbrace{C X X^T C X B B^T}_{M})
これは $\text{Tr}(M^T dX)$ と等価なので、勾配への寄与は $M$ そのものです。\text{Term 1} = C X X^T C X B B^T
--- **【第2項:2つ目の $X$ を微分】**\text{Tr}(B^T X^T C \underline{(dX)} X^T C X B)
巡回性で $dX$ を右端に持ってきます。= \text{Tr}(\underbrace{X^T C X B B^T X^T C}_{A} dX)
これは $\text{Tr}(A dX)$ なので、勾配への寄与は $A^T$ (係数行列の転置)となります。\text{Term 2} = A^T = (X^T C X B B^T X^T C)^T = C^T X B B^T X^T C^T X
--- **【第3項:3つ目の $X^T$ を微分】**\text{Tr}(B^T X^T C X \underline{(dX)^T} C X B)
巡回性で $(dX)^T$ を左端に寄せます。= \text{Tr}((dX)^T \underbrace{C X B B^T X^T C X}_{M})
第1項と同様、勾配への寄与は $M$ です。\text{Term 3} = C X B B^T X^T C X
--- **【第4項:4つ目の $X$ を微分】**\text{Tr}(B^T X^T C X X^T C \underline{(dX)} B)
巡回性で $dX$ を右端に持っていきます。= \text{Tr}(\underbrace{B B^T X^T C X X^T C}_{A} dX)
第2項と同様、勾配への寄与は $A^T$ です。\text{Term 4} = A^T = (B B^T X^T C X X^T C)^T = C^T X X^T C^T X B B^T
--- #### 3. 結論 上記4つの項を足し合わせたものが、Eq. 123 の右辺となります。 **計算のコツ**: * **$X^T$ を微分した項**: 係数行列は「そのままの順序」で現れる。 * **$X$ を微分した項**: 係数行列は「全体が転置されて」現れる。 この規則性を知っていれば、複雑な式の検算も容易になります。