行列微分の公式集
Matrix Calculus Formulas
本文は、機械学習、統計学、最適化理論、制御工学、信号処理、計量経済学などで必要となる多変数関数の微分(ベクトル微分、行列微分)に関する公式をまとめた資料である。
1. 概要
多変数解析やテンソル解析だけでも微分は扱えるが、行列微分は独立した体系として以下の利点を持つ:
- 添字を用いない記法圧縮(index-free calculus)
- vec演算子とKronecker積による代数的操作
- 機械学習・統計学における行列関数の閉形式勾配の導出
行列微分は、解析学(多変数微分)、線形代数(行列演算)、テンソル解析(多重線形代数)の交差領域に位置する。 有限次元Euclid空間ではGateaux微分とFréchet微分は一致し、本公式集の微分はFréchet微分と整合する[1]。
行列微分には大きく2つのアプローチがある。1つは座標を取らずテンソル的に扱う座標自由(coordinate-free)アプローチであり、 もう1つは成分を明示的に書き下す成分計算(component-wise)アプローチである。 本公式集は後者の立場をとり、実用的な計算のために具体的な成分表示を提供する。 座標自由な観点からは、行列微分はテンソル微分(2階テンソルに関する微分)の特殊ケースとして位置づけられる。 その設定では、勾配やHesse行列は共変テンソルとして扱われる。 座標自由な定式化についてはテンソル微分入門を参照されたい。
本シリーズでは、特に断りのない限り標準Euclid内積を仮定する。 この計量により接ベクトル空間と余接ベクトル空間が同一視され、勾配をベクトルとして扱うことができる。 行列空間 $\mathbb{R}^{m \times n}$ に対しては、Frobenius内積 $\langle \boldsymbol{A}, \boldsymbol{B} \rangle_F = \mathrm{tr}(\boldsymbol{A}^\top \boldsymbol{B})$ により双対空間 $(\mathbb{R}^{m \times n})^*$ と $\mathbb{R}^{m \times n}$ を同一視する。
本シリーズは有限次元Euclid空間 $\mathbb{R}^n$ 上の関数に限定する。 Banach空間・Hilbert空間への拡張については証明集 第1章で補足する。
写像 $f: \mathbb{R}^{m \times n} \to \mathbb{R}$ が点 $\boldsymbol{X}$ で微分可能であるとは、 線形写像 $Df(\boldsymbol{X}): \mathbb{R}^{m \times n} \to \mathbb{R}$ が存在して $$\lim_{\|\boldsymbol{H}\|_F \to 0} \frac{|f(\boldsymbol{X}+\boldsymbol{H}) - f(\boldsymbol{X}) - Df(\boldsymbol{X})[\boldsymbol{H}]|}{\|\boldsymbol{H}\|_F} = 0$$ を満たすことをいう。Frobenius内積により $Df(\boldsymbol{X})[\boldsymbol{H}] = \langle \nabla f(\boldsymbol{X}), \boldsymbol{H} \rangle_F$ と表せる行列 $\nabla f(\boldsymbol{X}) \in \mathbb{R}^{m \times n}$ を $f$ の勾配と呼ぶ。
微分 $Df(\boldsymbol{X})$ は座標によらない線形汎関数(余接空間 $T_{\boldsymbol{X}}^* M$ の元)であり、 Riesz表現定理により内積を通じて勾配 $\nabla f(\boldsymbol{X})$(接空間 $T_{\boldsymbol{X}} M$ の元)に対応する。 勾配の具体的な形は計量(内積)の選択に依存する。
点 $(x_0, f(x_0))$ における接線は、関数 $f$ の最良線形近似を与える。 曲線と接線の差 $f(x_0+h) - [f(x_0) + f'(x_0)h]$ は $h \to 0$ で $o(h)$($h$ より高次の無限小)となる。
1.1 記法と定義
多変数関数の微分では、結果を行列やベクトルとして表現する際に「分母レイアウト」と「分子レイアウト」の2つの記法がある。 本資料では分母レイアウト(denominator layout)を採用する。 2つの記法の違いや分野別のレイアウト採用傾向については行列微分の記法ガイドを参照。
分母レイアウトでは、微分結果は「偏微分の分母に現れる変数の次元が行、分子に現れる変数の次元が列」に対応する行列として定義される。 この記法は機械学習・統計学・最適化理論・計量経済学などで多用され、勾配ベクトルが列ベクトルとして直接的な形になるなどの利点がある。
分母レイアウトは Magnus & Neudecker の標準的教科書で採用されており、統計学・計量経済学の文献で主流である。 一方、工学系の一部や機械学習フレームワーク(PyTorch の autograd など)では分子レイアウトが用いられることがある。 両者は転置関係にあり、本資料の公式は転置により分子レイアウトに変換できる。 詳細は付録Aを参照。
- スカラ: $a, b, c, \ldots$ または $x, y, z, u, v, w$(小文字イタリック)
- ベクトル: $\boldsymbol{a}, \boldsymbol{b}, \boldsymbol{c}, \ldots$ または $\boldsymbol{x}, \boldsymbol{y}, \boldsymbol{z}$(小文字ボールド)
- 行列: $\boldsymbol{A}, \boldsymbol{B}, \boldsymbol{C}, \ldots$ または $\boldsymbol{X}, \boldsymbol{Y}, \boldsymbol{Z}$(大文字ボールド)
- 対数関数: $\log$ は自然対数(底 $e$)、底が $a$ の対数は $\log_a$
- 単一成分行列: $\boldsymbol{J}^{ij}$ は $(i,j)$ 成分のみが 1、他はすべて 0 の行列
- 勾配: $\nabla f$ または $\displaystyle\frac{\partial f}{\partial \boldsymbol{x}}$(スカラ $f$ のベクトル $\boldsymbol{x}$ による微分、列ベクトル)
- Jacobi行列: $\displaystyle\frac{\partial \boldsymbol{y}}{\partial \boldsymbol{x}}$(ベクトル $\boldsymbol{y}$ のベクトル $\boldsymbol{x}$ による微分、行列)
- Hesse行列: $\displaystyle\frac{\partial^2 f}{\partial \boldsymbol{x} \partial \boldsymbol{x}^\top}$ または $\boldsymbol{H}$(スカラ $f$ の2階微分、対称行列)
- 添字: 0 始まり($x_0, x_1, \ldots, x_{N-1}$ のように $i = 0, \ldots, N-1$)
1.1.1 スカラをベクトルで微分
スカラ $y$ を $N$ 次元ベクトル $\boldsymbol{x}$ で微分した結果は列ベクトルになる。
分母レイアウトでは、スカラー値関数をベクトルで微分した結果は列ベクトルとして定義される。 これは最適化において、勾配ベクトルをそのまま更新方向として用いるためである。
1.1.2 ベクトルをスカラで微分
分母レイアウトでは、ベクトル $\boldsymbol{y}$(列ベクトル)をスカラ $x$ で微分した結果は行ベクトルになる。 これは「分子の添字が列、分母の添字が行を決める」という規則による。 分子 $\boldsymbol{y}$ の添字 $j$ が列方向に並び、分母 $x$ には添字がないため、結果は $1 \times M$ の行ベクトルになる。
ここで $\boldsymbol{y} = (y_0, y_1, \ldots, y_{M-1})^\top$ は $M$ 次元列ベクトルである。 分母レイアウトの規則「分母の次元 × 分子の次元」に従い、$\partial \boldsymbol{y}/\partial x \in \mathbb{R}^{1 \times M}$($x$ の次元 1 × $\boldsymbol{y}$ の次元 $M$)となる。
1.1.3 ベクトルをベクトルで微分
これは $N \times M$ 行列であり、$(i, j)$ 成分は $\displaystyle\frac{\partial y_j}{\partial x_i}$ である。
1.1.4 スカラを行列で微分
スカラ関数 $f(\boldsymbol{X})$ を $m \times n$ 行列 $\boldsymbol{X}$ で微分した結果は、 $(i,j)$ 成分が $\displaystyle\frac{\partial f}{\partial X_{ij}}$ である $m \times n$ 行列になる。
この定義により、勾配行列 $\displaystyle\frac{\partial f}{\partial \boldsymbol{X}}$ は元の行列 $\boldsymbol{X}$ と同じサイズになる。 これは最急降下法などの最適化アルゴリズムで $\boldsymbol{X} \leftarrow \boldsymbol{X} - \alpha \displaystyle\frac{\partial f}{\partial \boldsymbol{X}}$ という更新式を自然に書けるため便利である。
1.2 Jacobi行列と連鎖律
$M$ 次元ベクトル値関数 $\boldsymbol{y}(\boldsymbol{x})$ の $N$ 次元ベクトル $\boldsymbol{x}$ による微分を考える。
1.2.1 Jacobi行列の定義
分母レイアウト記法では、Jacobi行列は $N \times M$ 行列となる:
すなわち $(i, j)$ 成分は $\displaystyle\frac{\partial y_j}{\partial x_i}$ である。 これは「分母」である $\boldsymbol{x}$ の添字が行を決め、「分子」である $\boldsymbol{y}$ の添字が列を決めることを意味する。
分母レイアウトでは、ベクトル値関数 $\boldsymbol{y}: \mathbb{R}^N \to \mathbb{R}^M$ に対するJacobi行列は $$\displaystyle\frac{\partial \boldsymbol{y}}{\partial \boldsymbol{x}} \in \mathbb{R}^{N \times M}$$ となる(「分母の次元 × 分子の次元」)。分子レイアウトで定義されるJacobi行列 $\in \mathbb{R}^{M \times N}$ とは転置関係にある。
1.2.2 スカラ微分との関係
$\boldsymbol{y}$ が 1 次元(スカラ $y$)の場合、Jacobi行列は $N \times 1$ 列ベクトルになり、勾配ベクトルに一致する:
1.2.3 連鎖律
合成関数 $\boldsymbol{z}(\boldsymbol{y}(\boldsymbol{x}))$ の微分を考える。 ここで $\boldsymbol{x}$ は $N$ 次元、$\boldsymbol{y}$ は $M$ 次元、$\boldsymbol{z}$ は $L$ 次元とする。
1.2.3.1 ベクトル連鎖律
$\boldsymbol{z}$ の第 $l$ 成分 $z_l$ を $\boldsymbol{x}$ の第 $i$ 成分 $x_i$ で微分する。 通常の多変数連鎖律により:
分母レイアウトでは $\displaystyle\left(\displaystyle\frac{\partial \boldsymbol{z}}{\partial \boldsymbol{x}}\right)_{il} = \displaystyle\frac{\partial z_l}{\partial x_i}$ なので:
これは行列の積の定義そのものなので:
サイズは $(N \times M) \cdot (M \times L) = N \times L$ となり、期待通りである。
分母レイアウトでは、Jacobi行列の行と列はそれぞれ分母・分子の次元に対応する。 そのため連鎖律における行列積の順序は、次元整合性から一意に定まる。 順序を入れ替えると積が定義されない点に注意すること。
1.2.3.2 スカラを出力とする場合
$z$ がスカラ($L = 1$)の場合、$\displaystyle\frac{\partial z}{\partial \boldsymbol{y}}$ は $M \times 1$ の列ベクトル(勾配)となる:
サイズは $(N \times M) \cdot (M \times 1) = N \times 1$ で、$\boldsymbol{x}$ に関する勾配ベクトルが得られる。
1.2.3.3 要素ごとの関数
$f$ がスカラ関数で、$\boldsymbol{u}$ の各要素に $f$ を適用した $\boldsymbol{y} = (f(u_0), f(u_1), \ldots, f(u_{M-1}))^\top$ を考える。 このとき $y_j = f(u_j)$ なので:
したがって:
連鎖律と組み合わせると:
2. スカラをベクトルで微分
スカラ関数 $f$ をベクトル $\boldsymbol{x}$ で微分する公式。$a$ はスカラ定数、$\boldsymbol{a}, \boldsymbol{b}$ は定数ベクトル、$\boldsymbol{A}$ は定数行列。 証明は証明集 第2章を参照。
| 公式 | 備考 | 証明 |
|---|---|---|
| $\displaystyle\frac{\partial a}{\partial \boldsymbol{x}} = \boldsymbol{0}$ | $a$ は定数 | 2.1 |
| $\displaystyle\frac{\partial (\boldsymbol{a}^\top \boldsymbol{x})}{\partial \boldsymbol{x}} = \boldsymbol{a}$ | 2.2 | |
| $\displaystyle\frac{\partial (\boldsymbol{x}^\top \boldsymbol{a})}{\partial \boldsymbol{x}} = \boldsymbol{a}$ | 2.2 | |
| $\displaystyle\frac{\partial (\boldsymbol{x}^\top \boldsymbol{x})}{\partial \boldsymbol{x}} = 2\boldsymbol{x}$ | 2.3 | |
| $\displaystyle\frac{\partial (\boldsymbol{b}^\top \boldsymbol{A} \boldsymbol{x})}{\partial \boldsymbol{x}} = \boldsymbol{A}^\top \boldsymbol{b}$ | バイリニア形式 | 2.4 |
| $\displaystyle\frac{\partial (\boldsymbol{x}^\top \boldsymbol{A} \boldsymbol{x})}{\partial \boldsymbol{x}} = (\boldsymbol{A} + \boldsymbol{A}^\top) \boldsymbol{x}$ | 二次形式 | 2.5 |
| $\displaystyle\frac{\partial (\boldsymbol{x}^\top \boldsymbol{A} \boldsymbol{x})}{\partial \boldsymbol{x}} = 2\boldsymbol{A} \boldsymbol{x}$ | $\boldsymbol{A}$ が対称行列 | 2.5 |
| $\displaystyle\frac{\partial \|\boldsymbol{x} - \boldsymbol{a}\|}{\partial \boldsymbol{x}} = \displaystyle\frac{\boldsymbol{x} - \boldsymbol{a}}{\|\boldsymbol{x} - \boldsymbol{a}\|}$ | 2-ノルム | 2.6 |
| $\displaystyle\frac{\partial \|\boldsymbol{x} - \boldsymbol{a}\|^2}{\partial \boldsymbol{x}} = 2(\boldsymbol{x} - \boldsymbol{a})$ | 2-ノルムの2乗 | 2.7 |
| $\displaystyle\frac{\partial (uv)}{\partial \boldsymbol{x}} = \displaystyle u \displaystyle\frac{\partial v}{\partial \boldsymbol{x}} + v \displaystyle\frac{\partial u}{\partial \boldsymbol{x}}$ | 積の法則 | 2.9 |
| $\displaystyle\frac{\partial (\boldsymbol{u}^\top \boldsymbol{v})}{\partial \boldsymbol{x}} = \displaystyle\frac{\partial \boldsymbol{u}}{\partial \boldsymbol{x}} \boldsymbol{v} + \displaystyle\frac{\partial \boldsymbol{v}}{\partial \boldsymbol{x}} \boldsymbol{u}$ | 内積の法則 | 2.8 |
| $\displaystyle\frac{\partial (f + g)}{\partial \boldsymbol{x}} = \displaystyle\frac{\partial f}{\partial \boldsymbol{x}} + \displaystyle\frac{\partial g}{\partial \boldsymbol{x}}$ | 和の法則 | 2.10 |
| $\displaystyle\frac{\partial (cf)}{\partial \boldsymbol{x}} = \displaystyle c \displaystyle\frac{\partial f}{\partial \boldsymbol{x}}$ | スカラ倍 | 2.11 |
| $\displaystyle\frac{\partial (u/v)}{\partial \boldsymbol{x}} = \displaystyle\frac{1}{v^2}\left( v \displaystyle\frac{\partial u}{\partial \boldsymbol{x}} - u \displaystyle\frac{\partial v}{\partial \boldsymbol{x}} \right)$ | 商の法則 | 2.12 |
| $\displaystyle\frac{\partial (1/u)}{\partial \boldsymbol{x}} = \displaystyle -\displaystyle\frac{1}{u^2} \displaystyle\frac{\partial u}{\partial \boldsymbol{x}}$ | 逆数 | 2.13 |
| $\displaystyle\frac{\partial u^n}{\partial \boldsymbol{x}} = \displaystyle n u^{n-1} \displaystyle\frac{\partial u}{\partial \boldsymbol{x}}$ | べき乗 | 2.14 |
| $\displaystyle\frac{\partial e^u}{\partial \boldsymbol{x}} = \displaystyle e^u \displaystyle\frac{\partial u}{\partial \boldsymbol{x}}$ | 指数関数 | 2.15 |
| $\displaystyle\frac{\partial \log u}{\partial \boldsymbol{x}} = \displaystyle \displaystyle\frac{1}{u} \displaystyle\frac{\partial u}{\partial \boldsymbol{x}}$ | 対数関数 | 2.16 |
3. ベクトルをベクトルで微分
ベクトル関数 $\boldsymbol{y}$ をベクトル $\boldsymbol{x}$ で微分する公式。結果はJacobi行列($N \times M$)となる。 証明は証明集 第3章を参照。
| 公式 | 備考 | 証明 |
|---|---|---|
| $\displaystyle\frac{\partial \boldsymbol{x}}{\partial \boldsymbol{x}} = \boldsymbol{I}$ | 恒等変換 | 3.1 |
| $\displaystyle\frac{\partial \boldsymbol{a}}{\partial \boldsymbol{x}} = \boldsymbol{O}$ | 定数ベクトル | 3.3 |
| $\displaystyle\frac{\partial (\boldsymbol{A}\boldsymbol{x})}{\partial \boldsymbol{x}} = \boldsymbol{A}^\top$ | 線形変換 | 3.2 |
| $\displaystyle\frac{\partial (\boldsymbol{A}\boldsymbol{x} + \boldsymbol{b})}{\partial \boldsymbol{x}} = \boldsymbol{A}^\top$ | アフィン変換 | 3.4 |
| $\displaystyle\frac{\partial (\boldsymbol{x}^\top \boldsymbol{A})}{\partial \boldsymbol{x}} = \boldsymbol{A}$ | 転置線形変換 | 3.5 |
| $\displaystyle\frac{\partial (\boldsymbol{u} + \boldsymbol{v})}{\partial \boldsymbol{x}} = \displaystyle\frac{\partial \boldsymbol{u}}{\partial \boldsymbol{x}} + \displaystyle\frac{\partial \boldsymbol{v}}{\partial \boldsymbol{x}}$ | 和の法則 | 3.6 |
| $\displaystyle\frac{\partial (v \boldsymbol{u})}{\partial \boldsymbol{x}} = \displaystyle v \displaystyle\frac{\partial \boldsymbol{u}}{\partial \boldsymbol{x}} + \displaystyle\frac{\partial v}{\partial \boldsymbol{x}} \boldsymbol{u}^\top$ | 積の法則(スカラ×ベクトル) | 3.7 |
| $\displaystyle\frac{\partial (\boldsymbol{x} \odot \boldsymbol{x})}{\partial \boldsymbol{x}} = 2\text{diag}(\boldsymbol{x})$ | 要素ごとの2乗 | 3.8 |
| $\displaystyle\frac{\partial (\boldsymbol{x} \odot \boldsymbol{y})}{\partial \boldsymbol{z}} = \displaystyle\text{diag}(\boldsymbol{x}) \displaystyle\frac{\partial \boldsymbol{y}}{\partial \boldsymbol{z}} + \text{diag}(\boldsymbol{y}) \displaystyle\frac{\partial \boldsymbol{x}}{\partial \boldsymbol{z}}$ | Hadamard積(要素ごとの積) $\boldsymbol{x} = \boldsymbol{x}(\boldsymbol{z}),\ \boldsymbol{y} = \boldsymbol{y}(\boldsymbol{z})$ |
3.12 |
| $\displaystyle\frac{d(\boldsymbol{x} \times \boldsymbol{y})}{dt} = \displaystyle\frac{d\boldsymbol{x}}{dt} \times \boldsymbol{y} + \boldsymbol{x} \times \displaystyle\frac{d\boldsymbol{y}}{dt}$ | 外積の時間微分 | 3.9 |
| $\displaystyle\frac{d\|\boldsymbol{x}(t)\|}{dt} = \displaystyle\frac{\boldsymbol{x}}{\|\boldsymbol{x}\|} \cdot \displaystyle\frac{d\boldsymbol{x}}{dt}$ | 2-ノルムの時間微分 | 3.10 |
| $\displaystyle\frac{\partial}{\partial \boldsymbol{u}} \begin{pmatrix} f(u_0) \\ \vdots \\ f(u_{N-1}) \end{pmatrix} = \text{diag}\begin{pmatrix} f'(u_0) \\ \vdots \\ f'(u_{N-1}) \end{pmatrix}$ | 要素ごとの関数適用 | 3.11 |
| $\displaystyle\frac{\partial \text{softmax}(\boldsymbol{x})}{\partial \boldsymbol{x}} = \text{diag}(\boldsymbol{p}) - \boldsymbol{p}\boldsymbol{p}^\top$ | softmax関数 ($\boldsymbol{p} = \text{softmax}(\boldsymbol{x})$) | 3.13 |
4. 行列微分の基本公式
スカラ関数 $f(\boldsymbol{X})$ を行列 $\boldsymbol{X}$ で微分する基本公式。$\boldsymbol{A}$ は定数行列、$\boldsymbol{a}, \boldsymbol{b}$ は定数ベクトル。 証明は証明集 第4章を参照。
| 公式 | 備考 | 証明 |
|---|---|---|
| $\displaystyle\frac{\partial}{\partial \boldsymbol{X}} (\boldsymbol{a}^\top \boldsymbol{X} \boldsymbol{b}) = \boldsymbol{a} \boldsymbol{b}^\top$ | 双線形形式 | 4.1 |
| $\displaystyle\frac{\partial}{\partial \boldsymbol{X}} (\boldsymbol{a}^\top \boldsymbol{X}^\top \boldsymbol{b}) = \boldsymbol{b} \boldsymbol{a}^\top$ | 転置を含む双線形形式 | 4.2 |
| $\displaystyle\frac{\partial \boldsymbol{X}}{\partial X_{ij}} = \boldsymbol{J}^{ij}$ | 単位行列の成分微分 | 4.3 |
| $\displaystyle\frac{\partial (\boldsymbol{X}\boldsymbol{A})_{ij}}{\partial X_{mn}} = \delta_{im} A_{nj} = (\boldsymbol{J}^{mn}\boldsymbol{A})_{ij}$ | 行列積の成分微分 | 4.4 |
| $\displaystyle\frac{\partial (\boldsymbol{X}^\top\boldsymbol{A})_{ij}}{\partial X_{mn}} = \delta_{in} A_{mj} = (\boldsymbol{J}^{nm}\boldsymbol{A})_{ij}$ | 転置行列積の成分微分 | 4.5 |
5. トレースの微分
トレース関数 $\text{tr}(\cdot)$ を含むスカラ関数の微分公式。 証明は証明集 第5章を参照。
| 公式 | 備考 | 証明 |
|---|---|---|
| $\displaystyle\frac{\partial}{\partial \boldsymbol{X}} \text{tr}(\boldsymbol{X}) = \boldsymbol{I}$ | トレース | 5.1 |
| $\displaystyle\frac{\partial}{\partial \boldsymbol{X}} \text{tr}(\boldsymbol{A}\boldsymbol{X}) = \boldsymbol{A}^\top$ | トレース | 5.2 |
| $\displaystyle\frac{\partial}{\partial \boldsymbol{X}} \text{tr}(\boldsymbol{X}\boldsymbol{A}) = \boldsymbol{A}^\top$ | トレース | 5.3 |
| $\displaystyle\frac{\partial}{\partial \boldsymbol{X}} \text{tr}(\boldsymbol{A}\boldsymbol{X}^\top) = \boldsymbol{A}$ | トレース | 5.4 |
| $\displaystyle\frac{\partial}{\partial \boldsymbol{X}} \text{tr}(\boldsymbol{X}^\top\boldsymbol{A}) = \boldsymbol{A}$ | トレース | 5.5 |
| $\displaystyle\frac{\partial}{\partial \boldsymbol{X}} \text{tr}(\boldsymbol{X}^2) = 2\boldsymbol{X}^\top$ | トレース | 5.6 |
| $\displaystyle\frac{\partial}{\partial \boldsymbol{X}} \text{tr}(\boldsymbol{X}^2\boldsymbol{A}) = (\boldsymbol{X}\boldsymbol{A} + \boldsymbol{A}\boldsymbol{X})^\top$ | 二次トレース | 5.7 |
| $\displaystyle\frac{\partial}{\partial \boldsymbol{X}} \text{tr}(\boldsymbol{X}^\top \boldsymbol{A} \boldsymbol{X}) = \boldsymbol{A}\boldsymbol{X} + \boldsymbol{A}^\top\boldsymbol{X}$ | 二次形式トレース | 5.8 |
| $\displaystyle\frac{\partial}{\partial \boldsymbol{X}} \text{tr}(\boldsymbol{A}\boldsymbol{X}\boldsymbol{X}^\top) = \boldsymbol{A}\boldsymbol{X} + \boldsymbol{A}^\top\boldsymbol{X}$ | 二次形式トレース | 5.9 |
| $\displaystyle\frac{\partial}{\partial \boldsymbol{X}} \text{tr}(\boldsymbol{X}\boldsymbol{X}^\top\boldsymbol{A}) = \boldsymbol{A}\boldsymbol{X} + \boldsymbol{A}^\top\boldsymbol{X}$ | 二次形式トレース | 5.10 |
| $\displaystyle\frac{\partial}{\partial \boldsymbol{X}} \text{tr}(\boldsymbol{X}\boldsymbol{A}\boldsymbol{X}^\top) = \boldsymbol{X}\boldsymbol{A}^\top + \boldsymbol{X}\boldsymbol{A}$ | 二次形式トレース | 5.11 |
| $\displaystyle\frac{\partial}{\partial \boldsymbol{X}} \text{tr}(\boldsymbol{A}\boldsymbol{X}^\top\boldsymbol{X}) = \boldsymbol{X}\boldsymbol{A}^\top + \boldsymbol{X}\boldsymbol{A}$ | 二次形式トレース | 5.12 |
| $\displaystyle\frac{\partial}{\partial \boldsymbol{X}} \text{tr}(\boldsymbol{X}^\top\boldsymbol{X}\boldsymbol{A}) = \boldsymbol{X}\boldsymbol{A}^\top + \boldsymbol{X}\boldsymbol{A}$ | 二次形式トレース | 5.13 |
| $\displaystyle\frac{\partial}{\partial \boldsymbol{X}} \text{tr}(\boldsymbol{A}\boldsymbol{X}\boldsymbol{B}\boldsymbol{X}) = \boldsymbol{A}^\top\boldsymbol{X}^\top\boldsymbol{B}^\top + \boldsymbol{B}^\top\boldsymbol{X}^\top\boldsymbol{A}^\top$ | 二次形式トレース | 5.14 |
| $\displaystyle\frac{\partial}{\partial \boldsymbol{X}} \text{tr}(\boldsymbol{X}^\top\boldsymbol{X}) = 2\boldsymbol{X}$ | Frobeniusノルム | 5.15 |
| $\displaystyle\frac{\partial}{\partial \boldsymbol{X}} \text{tr}(\boldsymbol{X}\boldsymbol{X}^\top) = 2\boldsymbol{X}$ | Frobeniusノルム | 5.16 |
| $\displaystyle\frac{\partial}{\partial \boldsymbol{X}} \text{tr}(\boldsymbol{B}^\top\boldsymbol{X}^\top\boldsymbol{C}\boldsymbol{X}\boldsymbol{B}) = \boldsymbol{C}^\top\boldsymbol{X}\boldsymbol{B}\boldsymbol{B}^\top + \boldsymbol{C}\boldsymbol{X}\boldsymbol{B}\boldsymbol{B}^\top$ | 二次形式トレース | 5.17 |
| $\displaystyle\frac{\partial}{\partial \boldsymbol{X}} \text{tr}(\boldsymbol{X}^\top\boldsymbol{B}\boldsymbol{X}\boldsymbol{C}) = \boldsymbol{B}\boldsymbol{X}\boldsymbol{C} + \boldsymbol{B}^\top\boldsymbol{X}\boldsymbol{C}^\top$ | 二次形式トレース | 5.18 |
| $\displaystyle\frac{\partial}{\partial \boldsymbol{X}} \text{tr}(\boldsymbol{A}\boldsymbol{X}\boldsymbol{B}\boldsymbol{X}^\top\boldsymbol{C}) = \boldsymbol{A}^\top\boldsymbol{C}^\top\boldsymbol{X}\boldsymbol{B}^\top + \boldsymbol{C}\boldsymbol{A}\boldsymbol{X}\boldsymbol{B}$ | 二次形式トレース | 5.19 |
| $\displaystyle\frac{\partial}{\partial \boldsymbol{X}} \text{tr}[(\boldsymbol{A}\boldsymbol{X}\boldsymbol{B}+\boldsymbol{C})(\boldsymbol{A}\boldsymbol{X}\boldsymbol{B}+\boldsymbol{C})^\top] = 2\boldsymbol{A}^\top(\boldsymbol{A}\boldsymbol{X}\boldsymbol{B}+\boldsymbol{C})\boldsymbol{B}^\top$ | 二次形式トレース | 5.20 |
| $\displaystyle\frac{\partial}{\partial \boldsymbol{X}} \text{tr}(\boldsymbol{X} \otimes \boldsymbol{X}) = 2\text{tr}(\boldsymbol{X})\boldsymbol{I}$ | Kronecker積トレース | 5.21 |
| $\displaystyle\frac{\partial}{\partial \boldsymbol{X}} \text{tr}(\boldsymbol{X}^\top \boldsymbol{A} \boldsymbol{X}) = (\boldsymbol{A} + \boldsymbol{A}^\top)\boldsymbol{X}$ | 二次形式トレース | 5.22 |
| $\displaystyle\frac{\partial}{\partial \boldsymbol{X}} \text{tr}(\boldsymbol{A}\boldsymbol{X}\boldsymbol{B}) = \boldsymbol{A}^\top \boldsymbol{B}^\top$ | 積のトレース | 5.23 |
| $\displaystyle\frac{\partial}{\partial \boldsymbol{X}} \text{tr}(\boldsymbol{A}\boldsymbol{X}^\top\boldsymbol{B}) = \boldsymbol{B}\boldsymbol{A}$ | 転置を含む積のトレース | 5.24 |
| $\displaystyle\frac{\partial}{\partial \boldsymbol{X}} \text{tr}(\boldsymbol{A} \otimes \boldsymbol{X}) = \text{tr}(\boldsymbol{A})\boldsymbol{I}$ | Kronecker積のトレース | 5.25 |
| $\displaystyle\frac{\partial}{\partial \boldsymbol{X}} \text{tr}(\boldsymbol{X}^{-1}\boldsymbol{A}) = -\boldsymbol{X}^{-\top} \boldsymbol{A}^\top \boldsymbol{X}^{-\top}$ | 逆行列トレース | 5.26 |
| $\displaystyle\frac{\partial}{\partial \boldsymbol{X}} \text{tr}(\boldsymbol{X}^k) = k(\boldsymbol{X}^{k-1})^\top$ | 高次トレース | 5.27 |
| $\displaystyle\frac{\partial}{\partial \boldsymbol{X}} \text{tr}(\boldsymbol{A}\boldsymbol{X}^k) = \displaystyle\sum_{r=0}^{k-1} (\boldsymbol{X}^r \boldsymbol{A} \boldsymbol{X}^{k-r-1})^\top$ | 高次トレース | 5.28 |
| \begin{align}&\frac{\partial}{\partial \boldsymbol{X}} \text{tr}(\boldsymbol{B}^\top\boldsymbol{X}^\top\boldsymbol{C}\boldsymbol{X}\boldsymbol{X}^\top\boldsymbol{C}\boldsymbol{X}\boldsymbol{B}) \notag\\&= \boldsymbol{C}\boldsymbol{X}\boldsymbol{X}^\top\boldsymbol{C}\boldsymbol{X}\boldsymbol{B}\boldsymbol{B}^\top + \boldsymbol{C}^\top\boldsymbol{X}\boldsymbol{B}\boldsymbol{B}^\top\boldsymbol{X}^\top\boldsymbol{C}^\top\boldsymbol{X} \notag\\&\quad + \boldsymbol{C}\boldsymbol{X}\boldsymbol{B}\boldsymbol{B}^\top\boldsymbol{X}^\top\boldsymbol{C}\boldsymbol{X} + \boldsymbol{C}^\top\boldsymbol{X}\boldsymbol{X}^\top\boldsymbol{C}^\top\boldsymbol{X}\boldsymbol{B}\boldsymbol{B}^\top \notag\end{align} | 高次二次形式 | 5.29 |
| $\displaystyle\frac{\partial}{\partial \boldsymbol{X}} \text{tr}(\boldsymbol{A}\boldsymbol{X}^{-1}\boldsymbol{B}) = -\boldsymbol{X}^{-\top}\boldsymbol{A}^\top\boldsymbol{B}^\top\boldsymbol{X}^{-\top}$ | 逆行列トレース | 5.30 |
| \begin{align}&\frac{\partial}{\partial \boldsymbol{X}} \text{tr}[(\boldsymbol{X}^\top\boldsymbol{C}\boldsymbol{X})^{-1}\boldsymbol{A}] \notag\\&= -\boldsymbol{C}\boldsymbol{X}(\boldsymbol{X}^\top\boldsymbol{C}\boldsymbol{X})^{-1}(\boldsymbol{A}+\boldsymbol{A}^\top)(\boldsymbol{X}^\top\boldsymbol{C}\boldsymbol{X})^{-1} \notag\end{align}($\boldsymbol{C}$: 対称) | 二次形式逆行列トレース | 5.31 |
| \begin{align}&\frac{\partial}{\partial \boldsymbol{X}} \text{tr}[(\boldsymbol{X}^\top\boldsymbol{C}\boldsymbol{X})^{-1}(\boldsymbol{X}^\top\boldsymbol{B}\boldsymbol{X})] \notag\\&= -2\boldsymbol{C}\boldsymbol{X}(\boldsymbol{X}^\top\boldsymbol{C}\boldsymbol{X})^{-1}\boldsymbol{X}^\top\boldsymbol{B}\boldsymbol{X}(\boldsymbol{X}^\top\boldsymbol{C}\boldsymbol{X})^{-1} \notag\\&\quad +2\boldsymbol{B}\boldsymbol{X}(\boldsymbol{X}^\top\boldsymbol{C}\boldsymbol{X})^{-1} \notag\end{align}($\boldsymbol{B}, \boldsymbol{C}$: 対称) | 二次形式逆行列トレース | 5.32 |
| \begin{align}&\frac{\partial}{\partial \boldsymbol{X}} \text{tr}[(\boldsymbol{A}+\boldsymbol{X}^\top\boldsymbol{C}\boldsymbol{X})^{-1}(\boldsymbol{X}^\top\boldsymbol{B}\boldsymbol{X})] \notag\\&= -2\boldsymbol{C}\boldsymbol{X}(\boldsymbol{A}+\boldsymbol{X}^\top\boldsymbol{C}\boldsymbol{X})^{-1}\boldsymbol{X}^\top\boldsymbol{B}\boldsymbol{X} \notag\\&\qquad \times(\boldsymbol{A}+\boldsymbol{X}^\top\boldsymbol{C}\boldsymbol{X})^{-1} +2\boldsymbol{B}\boldsymbol{X}(\boldsymbol{A}+\boldsymbol{X}^\top\boldsymbol{C}\boldsymbol{X})^{-1} \notag\end{align}($\boldsymbol{B}, \boldsymbol{C}$: 対称) | 二次形式逆行列トレース | 5.33 |
| $\displaystyle\frac{\partial}{\partial \boldsymbol{X}} \text{tr}(\exp(\boldsymbol{X})) = \exp(\boldsymbol{X})^\top$ | 指数トレース | 5.34 |
| $\displaystyle\frac{\partial}{\partial \boldsymbol{X}} \text{tr}(\log(\boldsymbol{X})) = \boldsymbol{X}^{-\top}$ | 対数トレース | 5.35 |
| $\displaystyle\frac{\partial}{\partial \boldsymbol{X}} \text{tr}(\boldsymbol{X}^n) = n(\boldsymbol{X}^{n-1})^\top$ ($n$: 正整数) |
べき乗トレース | 5.27 |
| $\displaystyle\frac{\partial}{\partial \boldsymbol{X}} \text{tr}(\sqrt{\boldsymbol{X}}) = \displaystyle\frac{1}{2}(\boldsymbol{X}^{-1/2})^\top$ ($\boldsymbol{X}$: 正定値) |
平方根トレース | 5.36 |
| $\displaystyle\frac{\partial}{\partial \boldsymbol{X}} \text{tr}(\sin(\boldsymbol{X})) = \cos(\boldsymbol{X})^\top$ | 正弦トレース | 5.37 |
| $\displaystyle\frac{\partial}{\partial \boldsymbol{X}} \text{tr}(\cos(\boldsymbol{X})) = -\sin(\boldsymbol{X})^\top$ | 余弦トレース | 5.38 |
| $\displaystyle\frac{\partial}{\partial \boldsymbol{X}} \text{tr}(\tan(\boldsymbol{X})) = \sec^2(\boldsymbol{X})^\top$ | 正接トレース | 5.39 |
| $\displaystyle\frac{\partial}{\partial \boldsymbol{X}} \text{tr}(\arcsin(\boldsymbol{X})) = ((\boldsymbol{I}-\boldsymbol{X}^2)^{-1/2})^\top$ | 逆正弦トレース | 5.40 |
| $\displaystyle\frac{\partial}{\partial \boldsymbol{X}} \text{tr}(\arccos(\boldsymbol{X})) = -((\boldsymbol{I}-\boldsymbol{X}^2)^{-1/2})^\top$ | 逆余弦トレース | 5.41 |
| $\displaystyle\frac{\partial}{\partial \boldsymbol{X}} \text{tr}(\arctan(\boldsymbol{X})) = ((\boldsymbol{I}+\boldsymbol{X}^2)^{-1})^\top$ | 逆正接トレース | 5.42 |
| $\displaystyle\frac{\partial}{\partial \boldsymbol{X}} \text{tr}(\sinh(\boldsymbol{X})) = \cosh(\boldsymbol{X})^\top$ | 双曲線正弦トレース | 5.43 |
| $\displaystyle\frac{\partial}{\partial \boldsymbol{X}} \text{tr}(\cosh(\boldsymbol{X})) = \sinh(\boldsymbol{X})^\top$ | 双曲線余弦トレース | 5.44 |
| $\displaystyle\frac{\partial}{\partial \boldsymbol{X}} \text{tr}(\tanh(\boldsymbol{X})) = \text{sech}^2(\boldsymbol{X})^\top$ | 双曲線正接トレース | 5.45 |
| $\displaystyle\frac{\partial}{\partial \boldsymbol{X}} \text{tr}(\text{arcsinh}(\boldsymbol{X})) = ((\boldsymbol{I}+\boldsymbol{X}^2)^{-1/2})^\top$ | 逆双曲線正弦トレース | 5.46 |
| $\displaystyle\frac{\partial}{\partial \boldsymbol{X}} \text{tr}(\text{arccosh}(\boldsymbol{X})) = ((\boldsymbol{X}^2-\boldsymbol{I})^{-1/2})^\top$ | 逆双曲線余弦トレース | 5.47 |
| $\displaystyle\frac{\partial}{\partial \boldsymbol{X}} \text{tr}(\text{arctanh}(\boldsymbol{X})) = ((\boldsymbol{I}-\boldsymbol{X}^2)^{-1})^\top$ | 逆双曲線正接トレース | 5.48 |
| $\displaystyle\frac{\partial}{\partial \boldsymbol{X}} \text{tr}(\boldsymbol{A}\exp(\boldsymbol{X})) = (\boldsymbol{A}\exp(\boldsymbol{X}))^\top$ | 行列係数指数トレース | 5.50 |
| $\displaystyle\frac{\partial}{\partial \boldsymbol{X}} \text{tr}(\boldsymbol{A}\sin(\boldsymbol{X})) = (\boldsymbol{A}\cos(\boldsymbol{X}))^\top$ | 行列係数正弦トレース | 5.49 |
| $\displaystyle\frac{\partial}{\partial \boldsymbol{X}} \text{tr}(\boldsymbol{A}\cos(\boldsymbol{X})) = -(\boldsymbol{A}\sin(\boldsymbol{X}))^\top$ | 行列係数余弦トレース | 5.51 |
| $\displaystyle\frac{\partial}{\partial \boldsymbol{X}} \text{tr}(\boldsymbol{A}\tan(\boldsymbol{X})) = (\boldsymbol{A}\sec^2(\boldsymbol{X}))^\top$ | 行列係数正接トレース | 5.52 |
| $\displaystyle\frac{\partial}{\partial \boldsymbol{X}} \text{tr}(\boldsymbol{A}\arcsin(\boldsymbol{X})) = (\boldsymbol{A}(\boldsymbol{I}-\boldsymbol{X}^2)^{-1/2})^\top$ | 行列係数逆正弦トレース | 5.53 |
| $\displaystyle\frac{\partial}{\partial \boldsymbol{X}} \text{tr}(\boldsymbol{A}\arccos(\boldsymbol{X})) = -(\boldsymbol{A}(\boldsymbol{I}-\boldsymbol{X}^2)^{-1/2})^\top$ | 行列係数逆余弦トレース | 5.54 |
| $\displaystyle\frac{\partial}{\partial \boldsymbol{X}} \text{tr}(\boldsymbol{A}\arctan(\boldsymbol{X})) = (\boldsymbol{A}(\boldsymbol{I}+\boldsymbol{X}^2)^{-1})^\top$ | 行列係数逆正接トレース | 5.55 |
| $\displaystyle\frac{\partial}{\partial \boldsymbol{X}} \text{tr}(\boldsymbol{A}\sinh(\boldsymbol{X})) = (\boldsymbol{A}\cosh(\boldsymbol{X}))^\top$ | 行列係数双曲線正弦トレース | 5.56 |
| $\displaystyle\frac{\partial}{\partial \boldsymbol{X}} \text{tr}(\boldsymbol{A}\cosh(\boldsymbol{X})) = (\boldsymbol{A}\sinh(\boldsymbol{X}))^\top$ | 行列係数双曲線余弦トレース | 5.57 |
| $\displaystyle\frac{\partial}{\partial \boldsymbol{X}} \text{tr}(\boldsymbol{A}\tanh(\boldsymbol{X})) = (\boldsymbol{A}\text{sech}^2(\boldsymbol{X}))^\top$ | 行列係数双曲線正接トレース | 5.58 |
6. Hadamard積と活性化関数
要素ごとの積(Hadamard積)および機械学習で頻出の活性化関数の微分公式。 証明は証明集 第6章を参照。
| 公式 | 備考 | 証明 |
|---|---|---|
| $\displaystyle\frac{\partial (\boldsymbol{x} \odot \boldsymbol{y})}{\partial \boldsymbol{z}} = \text{diag}(\boldsymbol{x}) \displaystyle\frac{\partial \boldsymbol{y}}{\partial \boldsymbol{z}} + \text{diag}(\boldsymbol{y}) \displaystyle\frac{\partial \boldsymbol{x}}{\partial \boldsymbol{z}}$ | Hadamard積の微分 | 6.1 |
| $\displaystyle\frac{\partial \text{softmax}(\boldsymbol{x})}{\partial \boldsymbol{x}} = \text{diag}(\boldsymbol{p}) - \boldsymbol{p}\boldsymbol{p}^\top$ ($\boldsymbol{p} = \text{softmax}(\boldsymbol{x})$) |
softmaxのJacobian | 6.2 |
| $\displaystyle\frac{\partial \sigma(\boldsymbol{x})}{\partial \boldsymbol{x}} = \text{diag}(\sigma(\boldsymbol{x}) \odot (1 - \sigma(\boldsymbol{x})))$ ($\sigma(x) = \displaystyle\frac{1}{1+e^{-x}}$) |
シグモイド関数 | 6.3 |
| $\displaystyle\frac{\partial \tanh(\boldsymbol{x})}{\partial \boldsymbol{x}} = \text{diag}(1 - \tanh^2(\boldsymbol{x}))$ | tanh関数 | 6.4 |
| $\displaystyle\frac{\partial \text{ReLU}(\boldsymbol{x})}{\partial \boldsymbol{x}} = \text{diag}(\mathbf{1}_{x_i > 0})$ ($\text{ReLU}(x) = \max(0, x)$) |
ReLU($x = 0$ で劣勾配) | 6.5 |
| $\displaystyle\frac{\partial \text{LeakyReLU}(\boldsymbol{x})}{\partial \boldsymbol{x}} = \text{diag}(\mathbf{1}_{x_i > 0} + \alpha \cdot \mathbf{1}_{x_i \leq 0})$ ($\text{LeakyReLU}(x) = \max(\alpha x, x)$) |
Leaky ReLU | 6.6 |
| $\displaystyle\frac{\partial}{\partial \boldsymbol{x}} (-\boldsymbol{y}^\top \log \boldsymbol{p}) = \boldsymbol{p} - \boldsymbol{y}$ ($\boldsymbol{p} = \text{softmax}(\boldsymbol{x})$) |
クロスエントロピー損失 (softmax + CE) |
6.7 |
| $\displaystyle\frac{\partial}{\partial x} \text{BCE}(y, \sigma(x)) = \sigma(x) - y$ (BCE = $-y\log\sigma(x) - (1-y)\log(1-\sigma(x))$) |
二値クロスエントロピー (sigmoid + BCE) |
6.8 |
| $\displaystyle\frac{\partial \text{GELU}(\boldsymbol{x})}{\partial \boldsymbol{x}} = \text{diag}(\Phi(\boldsymbol{x}) + \boldsymbol{x} \odot \phi(\boldsymbol{x}))$ ($\text{GELU}(x) = x \cdot \Phi(x)$) |
GELU $\Phi$: 標準正規CDF $\phi$: 標準正規PDF |
6.9 |
| $\displaystyle\frac{\partial \text{Swish}(\boldsymbol{x})}{\partial \boldsymbol{x}} = \text{diag}(\sigma(\boldsymbol{x}) + \boldsymbol{x} \odot \sigma(\boldsymbol{x}) \odot (1 - \sigma(\boldsymbol{x})))$ ($\text{Swish}(x) = x \cdot \sigma(x)$) |
Swish (SiLU) | 6.10 |
7. 行列式の微分
行列式 $\det(\boldsymbol{X})$ およびその関連関数の微分公式。 証明は証明集 第7章を参照。
| 公式 | 備考 | 証明 |
|---|---|---|
| $\displaystyle\frac{\partial}{\partial \boldsymbol{X}} |\boldsymbol{X}| = |\boldsymbol{X}| \boldsymbol{X}^{-\top}$ | 行列式 | 7.1 |
| $\displaystyle\frac{\partial}{\partial \boldsymbol{X}} \log|\boldsymbol{X}| = \boldsymbol{X}^{-\top}$ | 対数行列式 | 7.2 |
| $\displaystyle\frac{\partial}{\partial \boldsymbol{X}} |\boldsymbol{X}^n| = n|\boldsymbol{X}^n| \boldsymbol{X}^{-\top}$ | 行列式のべき乗 | 7.3 |
| $\displaystyle\frac{\partial}{\partial \boldsymbol{X}} |\boldsymbol{A}\boldsymbol{X}\boldsymbol{B}| = |\boldsymbol{A}\boldsymbol{X}\boldsymbol{B}| \boldsymbol{X}^{-\top}$ ($\boldsymbol{A}, \boldsymbol{B}$: 正方可逆) |
積の行列式 | 7.6 |
| $\displaystyle\sum_{k} \displaystyle\frac{\partial |\boldsymbol{X}|}{\partial X_{ik}} X_{jk} = \delta_{ij} |\boldsymbol{X}|$ | 余因子展開の性質 | 7.4 |
| $\displaystyle\frac{\partial}{\partial \boldsymbol{X}} |\boldsymbol{X}^\top \boldsymbol{A} \boldsymbol{X}| = 2|\boldsymbol{X}^\top \boldsymbol{A} \boldsymbol{X}| \boldsymbol{X}^{-\top}$ ($\boldsymbol{X}$: 正方可逆) |
二次形式の行列式 | 7.7.1 |
| $\displaystyle\frac{\partial}{\partial \boldsymbol{X}} |\boldsymbol{X}^\top \boldsymbol{A} \boldsymbol{X}| = 2|\boldsymbol{X}^\top \boldsymbol{A} \boldsymbol{X}| \boldsymbol{A}\boldsymbol{X}(\boldsymbol{X}^\top \boldsymbol{A} \boldsymbol{X})^{-1}$ ($\boldsymbol{X}$: 非正方、$\boldsymbol{A}$: 対称、$\boldsymbol{X}^\top \boldsymbol{A} \boldsymbol{X}$: 可逆) |
二次形式の行列式 | 7.7.2 |
| \begin{align}\frac{\partial}{\partial \boldsymbol{X}} |\boldsymbol{X}^\top \boldsymbol{A} \boldsymbol{X}| &= |\boldsymbol{X}^\top \boldsymbol{A} \boldsymbol{X}|(\boldsymbol{A}\boldsymbol{X}(\boldsymbol{X}^\top \boldsymbol{A} \boldsymbol{X})^{-1} \notag\\&\quad + \boldsymbol{A}^\top \boldsymbol{X}(\boldsymbol{X}^\top \boldsymbol{A}^\top \boldsymbol{X})^{-1}) \notag\end{align}($\boldsymbol{X}$: 非正方、$\boldsymbol{A}$: 一般、$\boldsymbol{X}^\top \boldsymbol{A} \boldsymbol{X}$: 可逆) | 二次形式の行列式 | 7.7.3 |
| $\displaystyle\frac{\partial}{\partial \boldsymbol{X}} \log |\boldsymbol{X}^\top \boldsymbol{X}| = 2(\boldsymbol{X}^{+})^\top$ | グラム行列の対数行列式 | 7.8.1 |
| $\displaystyle\frac{\partial}{\partial \boldsymbol{X}^{+}} \log |\boldsymbol{X}^\top \boldsymbol{X}| = -2\boldsymbol{X}^\top$ | 擬似逆行列による微分 | 7.8.2 |
| $\displaystyle\frac{\partial}{\partial \boldsymbol{X}} \log |\det(\boldsymbol{X})| = (\boldsymbol{X}^{-1})^\top = (\boldsymbol{X}^\top)^{-1}$ | 対数絶対行列式 | 7.9 |
8. 逆行列の微分
逆行列 $\boldsymbol{X}^{-1}$ を含む関数の微分公式。 証明は証明集 第8章を参照。
| 公式 | 備考 | 証明 |
|---|---|---|
| $\displaystyle\frac{\partial (\boldsymbol{X}^{-1})_{kl}}{\partial X_{ij}} = -(\boldsymbol{X}^{-1})_{ki}(\boldsymbol{X}^{-1})_{jl}$ | 逆行列の成分微分 | 8.1 |
| $\displaystyle\frac{\partial}{\partial \boldsymbol{X}} \boldsymbol{a}^\top \boldsymbol{X}^{-1} \boldsymbol{b} = -\boldsymbol{X}^{-\top} \boldsymbol{a} \boldsymbol{b}^\top \boldsymbol{X}^{-\top}$ | 逆行列を含む二次形式 | 8.2 |
| $\displaystyle\frac{\partial}{\partial \boldsymbol{X}} |\boldsymbol{X}^{-1}| = -|\boldsymbol{X}^{-1}|(\boldsymbol{X}^{-1})^\top$ | 逆行列の行列式 | 8.3 |
| $\displaystyle\frac{\partial}{\partial \boldsymbol{X}} \text{tr}(\boldsymbol{A}\boldsymbol{X}^{-1}\boldsymbol{B}) = -(\boldsymbol{X}^{-1}\boldsymbol{B}\boldsymbol{A}\boldsymbol{X}^{-1})^\top$ | 逆行列を含むトレース | 8.4 |
| $\displaystyle\frac{\partial}{\partial \boldsymbol{X}} \text{tr}((\boldsymbol{X}+\boldsymbol{A})^{-1}) = -((\boldsymbol{X}+\boldsymbol{A})^{-1}(\boldsymbol{X}+\boldsymbol{A})^{-1})^\top$ | 和の逆行列のトレース | 8.5 |
| $\displaystyle\frac{\partial J}{\partial \boldsymbol{A}} = -\boldsymbol{A}^{-\top} \displaystyle\frac{\partial J}{\partial \boldsymbol{W}} \boldsymbol{A}^{-\top}$ (ただし $\boldsymbol{W} = \boldsymbol{A}^{-1}$) |
逆行列の連鎖律 | 8.6 |
| $\displaystyle\frac{\partial}{\partial A_{ij}} (\boldsymbol{I} - \boldsymbol{A})^{-1} = \boldsymbol{L} \boldsymbol{E}_{ij} \boldsymbol{L}$ ($\boldsymbol{L} = (\boldsymbol{I} - \boldsymbol{A})^{-1}$:Leontief逆行列) ($\boldsymbol{E}_{ij}$は$(i,j)$成分のみ1の行列) |
Leontief逆行列の微分(産業連関分析) | 8.7 |
| $\displaystyle\frac{\partial}{\partial \boldsymbol{A}} \text{tr}((\boldsymbol{I} - \boldsymbol{A})^{-1}) = ((\boldsymbol{I} - \boldsymbol{A})^{-1}(\boldsymbol{I} - \boldsymbol{A})^{-1})^\top$ | Leontief逆行列のトレース | 8.8 |
8.2 Moore-Penrose擬似逆行列の微分
Moore-Penrose擬似逆行列 $\boldsymbol{X}^+ \in \mathbb{R}^{n \times m}$($\boldsymbol{X} \in \mathbb{R}^{m \times n}$)の微分。 ロボット工学の冗長マニピュレータ、最小二乗法、信号処理で使用。 $\boldsymbol{X}^+$ は $\boldsymbol{X}\boldsymbol{X}^+\boldsymbol{X} = \boldsymbol{X}$, $\boldsymbol{X}^+\boldsymbol{X}\boldsymbol{X}^+ = \boldsymbol{X}^+$ などを満たす一般化逆行列。
| 公式 | 備考 | 証明 |
|---|---|---|
| \begin{align}d\boldsymbol{X}^+ &= -\boldsymbol{X}^+ (d\boldsymbol{X}) \boldsymbol{X}^+ + \boldsymbol{X}^{+\top}\boldsymbol{X}^\top (d\boldsymbol{X})^\top (\boldsymbol{I} - \boldsymbol{X}\boldsymbol{X}^+) \notag\\&\quad + (\boldsymbol{I} - \boldsymbol{X}^+\boldsymbol{X})(d\boldsymbol{X})^\top \boldsymbol{X}^{+\top}\boldsymbol{X}^+ \notag\end{align}(フルランク $m \le n$) | Golub-Pereyraの公式 | 8.9 |
| $d\boldsymbol{X}^+ = (\boldsymbol{X}^\top\boldsymbol{X})^{-1}(d\boldsymbol{X})^\top(\boldsymbol{I} - \boldsymbol{X}\boldsymbol{X}^+) - \boldsymbol{X}^+(d\boldsymbol{X})\boldsymbol{X}^+$ (フルランク $m \ge n$、列フルランク) |
左逆行列型 | 8.10 |
| $d\boldsymbol{X}^+ = (\boldsymbol{I} - \boldsymbol{X}^+\boldsymbol{X})(d\boldsymbol{X})^\top(\boldsymbol{X}\boldsymbol{X}^\top)^{-1} - \boldsymbol{X}^+(d\boldsymbol{X})\boldsymbol{X}^+$ (フルランク $m \le n$、行フルランク) |
右逆行列型 | 8.11 |
| \begin{align}\frac{d\boldsymbol{X}^+}{dt} &= -\boldsymbol{X}^+ \dot{\boldsymbol{X}} \boldsymbol{X}^+ + \boldsymbol{X}^{+\top}\boldsymbol{X}^\top \dot{\boldsymbol{X}}^\top (\boldsymbol{I} - \boldsymbol{X}\boldsymbol{X}^+) \notag\\&\quad + (\boldsymbol{I} - \boldsymbol{X}^+\boldsymbol{X})\dot{\boldsymbol{X}}^\top \boldsymbol{X}^{+\top}\boldsymbol{X}^+ \notag\end{align}(時間微分) | ロボットJacobianの時間微分に使用 | 8.12 |
| $\boldsymbol{X}^+ = \boldsymbol{X}^\top(\boldsymbol{X}\boldsymbol{X}^\top)^{-1}$ (行フルランク) |
右逆行列 | — |
| $\boldsymbol{X}^+ = (\boldsymbol{X}^\top\boldsymbol{X})^{-1}\boldsymbol{X}^\top$ (列フルランク) |
左逆行列 | — |
ロボット工学では、Jacobian行列 $\boldsymbol{J}(\boldsymbol{q})$ の擬似逆行列 $\boldsymbol{J}^+$ を用いて 逆運動学 $\dot{\boldsymbol{q}} = \boldsymbol{J}^+ \dot{\boldsymbol{x}}$ を解く。 冗長マニピュレータ(関節数 $n$ > 作業空間次元 $m$)では、$\boldsymbol{J}^+$ は最小ノルム解を与える。
9. 固有値・固有ベクトルの微分
固有値 $\lambda_i$ および固有ベクトル $\boldsymbol{v}_i$ の微分公式。 証明は証明集 第9章を参照。
| 公式 | 備考 | 証明 |
|---|---|---|
| $\displaystyle\frac{\partial}{\partial \boldsymbol{X}} \sum_i \lambda_i(\boldsymbol{X}) = \boldsymbol{I}$ | 固有値の和の微分 | 9.1 |
| $\displaystyle\frac{\partial}{\partial \boldsymbol{X}} \prod_i \lambda_i(\boldsymbol{X}) = \det(\boldsymbol{X}) \boldsymbol{X}^{-\top}$ | 固有値の積の微分 | 9.2 |
| $\partial \lambda_i = \boldsymbol{v}_i^\top \partial\boldsymbol{A} \, \boldsymbol{v}_i$ (ただし $\boldsymbol{A}$: 実対称行列) |
固有値の微分 | 9.3 |
| $\partial \boldsymbol{v}_i = (\lambda_i \boldsymbol{I} - \boldsymbol{A})^+ \partial\boldsymbol{A} \, \boldsymbol{v}_i$ (ただし $\boldsymbol{A}$: 実対称行列) |
固有ベクトルの微分 | 9.4 |
10. 二次形式の微分
ベクトル・行列の二次形式の微分公式。 証明は証明集 第10章を参照。
| 公式 | 備考 | 証明 |
|---|---|---|
| $\displaystyle\frac{\partial}{\partial \boldsymbol{X}} (\boldsymbol{a}^\top \boldsymbol{X} \boldsymbol{a}) = \boldsymbol{a} \boldsymbol{a}^\top$ | 行列の二次形式 | 10.1 |
| $\displaystyle\frac{\partial}{\partial X_{ij}} \left(\sum_{k,l} X_{kl}\right)^2 = 2 \displaystyle\sum_{k,l} X_{kl}$ | 成分和の二乗 | 10.2 |
| $\displaystyle\frac{\partial}{\partial \boldsymbol{X}} (\boldsymbol{b}^\top \boldsymbol{X}^\top \boldsymbol{X} \boldsymbol{c}) = \boldsymbol{X} (\boldsymbol{b} \boldsymbol{c}^\top + \boldsymbol{c} \boldsymbol{b}^\top)$ | グラム行列の双線形形式 | 10.3 |
| \begin{align}&\frac{\partial}{\partial \boldsymbol{x}} (\boldsymbol{B}\boldsymbol{x}+\boldsymbol{b})^\top \boldsymbol{C} (\boldsymbol{D}\boldsymbol{x}+\boldsymbol{d}) \notag\\&= \boldsymbol{B}^\top \boldsymbol{C} (\boldsymbol{D}\boldsymbol{x}+\boldsymbol{d}) + \boldsymbol{D}^\top \boldsymbol{C}^\top (\boldsymbol{B}\boldsymbol{x}+\boldsymbol{b}) \notag\end{align} | 一般二次形式 | 10.4 |
| $\displaystyle\frac{\partial (\boldsymbol{X}^\top \boldsymbol{B} \boldsymbol{X})}{\partial X_{ij}} = \boldsymbol{X}^\top \boldsymbol{B} \boldsymbol{J}^{ij} + \boldsymbol{J}^{ji} \boldsymbol{B} \boldsymbol{X}$ | 行列二次形式の成分微分 | 10.5 |
| $\displaystyle\frac{\partial \boldsymbol{x}^\top \boldsymbol{B} \boldsymbol{x}}{\partial \boldsymbol{x}} = (\boldsymbol{B} + \boldsymbol{B}^\top)\boldsymbol{x}$ | ベクトル二次形式 | 10.6 |
| $\displaystyle\frac{\partial \boldsymbol{b}^\top \boldsymbol{X}^\top \boldsymbol{D} \boldsymbol{X} \boldsymbol{c}}{\partial \boldsymbol{X}} = \boldsymbol{D}^\top \boldsymbol{X} \boldsymbol{b} \boldsymbol{c}^\top + \boldsymbol{D} \boldsymbol{X} \boldsymbol{c} \boldsymbol{b}^\top$ | 一般化双線形Gram形式 | 10.7 |
| $\displaystyle\frac{\partial}{\partial \boldsymbol{X}} (\boldsymbol{X}\boldsymbol{b} + \boldsymbol{c})^\top \boldsymbol{D} (\boldsymbol{X}\boldsymbol{b} + \boldsymbol{c}) = (\boldsymbol{D} + \boldsymbol{D}^\top)(\boldsymbol{X}\boldsymbol{b} + \boldsymbol{c})\boldsymbol{b}^\top$ | アフィン二次形式 | 10.8 |
| $\displaystyle\frac{\partial}{\partial \boldsymbol{x}} (\boldsymbol{x} - \boldsymbol{s})^\top \boldsymbol{W} (\boldsymbol{x} - \boldsymbol{s}) = 2\boldsymbol{W}(\boldsymbol{x} - \boldsymbol{s})$ ($\boldsymbol{W}$: 対称) |
対称二次形式($\boldsymbol{x}$微分) | 10.9 |
| $\displaystyle\frac{\partial}{\partial \boldsymbol{s}} (\boldsymbol{x} - \boldsymbol{s})^\top \boldsymbol{W} (\boldsymbol{x} - \boldsymbol{s}) = -2\boldsymbol{W}(\boldsymbol{x} - \boldsymbol{s})$ ($\boldsymbol{W}$: 対称) |
対称二次形式($\boldsymbol{s}$微分) | 10.10 |
| $\displaystyle\frac{\partial}{\partial \boldsymbol{x}} (\boldsymbol{x} - \boldsymbol{A}\boldsymbol{s})^\top \boldsymbol{W} (\boldsymbol{x} - \boldsymbol{A}\boldsymbol{s}) = 2\boldsymbol{W}(\boldsymbol{x} - \boldsymbol{A}\boldsymbol{s})$ ($\boldsymbol{W}$: 対称) |
アフィン対称($\boldsymbol{x}$微分) | 10.11 |
| $\displaystyle\frac{\partial}{\partial \boldsymbol{s}} (\boldsymbol{x} - \boldsymbol{A}\boldsymbol{s})^\top \boldsymbol{W} (\boldsymbol{x} - \boldsymbol{A}\boldsymbol{s}) = -2\boldsymbol{A}^\top\boldsymbol{W}(\boldsymbol{x} - \boldsymbol{A}\boldsymbol{s})$ ($\boldsymbol{W}$: 対称) |
アフィン対称($\boldsymbol{s}$微分) | 10.12 |
| $\displaystyle\frac{\partial}{\partial \boldsymbol{A}} (\boldsymbol{x} - \boldsymbol{A}\boldsymbol{s})^\top \boldsymbol{W} (\boldsymbol{x} - \boldsymbol{A}\boldsymbol{s}) = -2\boldsymbol{W}(\boldsymbol{x} - \boldsymbol{A}\boldsymbol{s})\boldsymbol{s}^\top$ ($\boldsymbol{W}$: 対称) |
アフィン対称($\boldsymbol{A}$微分) | 10.13 |
11. 行列べき乗と合成関数の微分
行列のべき乗 $\boldsymbol{X}^n$ を含む関数、および合成関数・Rayleigh商の微分公式。 証明は証明集 第11章を参照。
| 公式 | 備考 | 証明 |
|---|---|---|
| $\displaystyle\frac{\partial (\boldsymbol{X}^n)_{kl}}{\partial X_{ij}} = \displaystyle\sum_{r=0}^{n-1} (\boldsymbol{X}^r \boldsymbol{J}^{ij} \boldsymbol{X}^{n-1-r})_{kl}$ | 行列べき乗の成分微分 | 11.1 |
| $\displaystyle\frac{\partial}{\partial \boldsymbol{X}} \boldsymbol{a}^\top \boldsymbol{X}^n \boldsymbol{b} = \displaystyle\sum_{r=0}^{n-1} (\boldsymbol{X}^r)^\top \boldsymbol{a} \boldsymbol{b}^\top (\boldsymbol{X}^{n-1-r})^\top$ | べき乗の双線形形式 | 11.2 |
| $\displaystyle\frac{\partial}{\partial \boldsymbol{X}} \boldsymbol{a}^\top (\boldsymbol{X}^n)^\top \boldsymbol{X}^n \boldsymbol{b} = \displaystyle\sum_{r=0}^{n-1} \bigl[ \boldsymbol{X}^{n-1-r} \boldsymbol{a} \boldsymbol{b}^\top (\boldsymbol{X}^n)^\top \boldsymbol{X}^r + (\boldsymbol{X}^r)^\top \boldsymbol{X}^n \boldsymbol{a} \boldsymbol{b}^\top (\boldsymbol{X}^{n-1-r})^\top \bigr]$ | べき乗のGram形式 | 11.3 |
| $\displaystyle\frac{\partial}{\partial \boldsymbol{x}} \boldsymbol{s}(\boldsymbol{x})^\top \boldsymbol{A} \boldsymbol{r}(\boldsymbol{x}) = \displaystyle\left[\displaystyle\frac{\partial \boldsymbol{s}}{\partial \boldsymbol{x}}\right]^\top \boldsymbol{A} \boldsymbol{r} + \left[\displaystyle\frac{\partial \boldsymbol{r}}{\partial \boldsymbol{x}}\right]^\top \boldsymbol{A}^\top \boldsymbol{s}$ | 合成双線形形式 | 11.4 |
| $\displaystyle\frac{\partial}{\partial \boldsymbol{x}} \displaystyle\frac{(\boldsymbol{A}\boldsymbol{x})^\top (\boldsymbol{A}\boldsymbol{x})}{(\boldsymbol{B}\boldsymbol{x})^\top (\boldsymbol{B}\boldsymbol{x})} = \displaystyle 2\displaystyle\frac{\boldsymbol{A}^\top \boldsymbol{A} \boldsymbol{x}}{\boldsymbol{x}^\top \boldsymbol{B}^\top\boldsymbol{B}\boldsymbol{x}} - 2\displaystyle\frac{\boldsymbol{x}^\top \boldsymbol{A}^\top \boldsymbol{A} \boldsymbol{x} \cdot \boldsymbol{B}^\top \boldsymbol{B} \boldsymbol{x}}{(\boldsymbol{x}^\top \boldsymbol{B}^\top \boldsymbol{B} \boldsymbol{x})^2}$ | Rayleigh商 | 11.5 |
| $\nabla_{\boldsymbol{x}} f = (\boldsymbol{A} + \boldsymbol{A}^\top)\boldsymbol{x} + \boldsymbol{b}$ ($f(\boldsymbol{x}) = \boldsymbol{x}^\top \boldsymbol{A} \boldsymbol{x} + \boldsymbol{b}^\top \boldsymbol{x}$) |
勾配 | 11.6 |
| $\displaystyle\frac{\partial^2 f}{\partial \boldsymbol{x} \partial \boldsymbol{x}^\top} = \boldsymbol{A} + \boldsymbol{A}^\top$ ($f(\boldsymbol{x}) = \boldsymbol{x}^\top \boldsymbol{A} \boldsymbol{x} + \boldsymbol{b}^\top \boldsymbol{x}$) |
Hessian | 11.6 |
11.1 行列指数関数の微分
行列指数関数 $e^{\boldsymbol{A}} = \sum_{k=0}^{\infty} \displaystyle\frac{\boldsymbol{A}^k}{k!}$ の微分(Fréchet微分)。 リー群・リー代数、微分方程式、制御理論で重要。
| 公式 | 備考 | 証明 |
|---|---|---|
| $D_{\boldsymbol{A}} e^{\boldsymbol{A}}[\boldsymbol{E}] = \displaystyle\int_0^1 e^{s\boldsymbol{A}} \boldsymbol{E}\, e^{(1-s)\boldsymbol{A}} ds$ (方向 $\boldsymbol{E}$ へのFréchet微分) |
行列指数関数のFréchet微分 | 11.7 |
| $\displaystyle\frac{\partial}{\partial t} e^{t\boldsymbol{A}} = \boldsymbol{A} e^{t\boldsymbol{A}} = e^{t\boldsymbol{A}} \boldsymbol{A}$ | スカラパラメータ微分 | 11.8 |
| $\displaystyle\frac{\partial}{\partial \boldsymbol{A}} \text{tr}(e^{\boldsymbol{A}}) = (e^{\boldsymbol{A}})^\top$ | 行列指数のトレース微分 | 11.9 |
| $e^{\boldsymbol{A}}$ の条件数 $\kappa(e^{\boldsymbol{A}}) = \|L(\boldsymbol{A}, \cdot)\|$ ($L$はFréchet微分作用素) |
数値安定性の指標 | 11.10 |
11.2 行列平方根の勾配
正定値行列 $\boldsymbol{A}$ の行列平方根 $\boldsymbol{A}^{1/2}$($\boldsymbol{A} = \boldsymbol{A}^{1/2}\boldsymbol{A}^{1/2}$ を満たす)の勾配。
| 公式 | 備考 | 証明 |
|---|---|---|
| $\displaystyle\frac{\partial L}{\partial \boldsymbol{A}}$ ($\boldsymbol{S} = \boldsymbol{A}^{1/2}$) Sylvester方程式 $\boldsymbol{S}\boldsymbol{X} + \boldsymbol{X}\boldsymbol{S} = \bar{\boldsymbol{S}}$ の解 |
$\bar{\boldsymbol{S}}$ は上流勾配 $\displaystyle\frac{\partial L}{\partial \boldsymbol{A}} = \boldsymbol{X}$ |
11.11 |
12. ノルムの微分
ベクトルノルムおよび行列ノルムの微分公式。 証明は証明集 第12章を参照。
| 公式 | 備考 | 証明 |
|---|---|---|
| $\displaystyle\frac{\partial}{\partial \boldsymbol{x}} \|\boldsymbol{x} - \boldsymbol{a}\|_2 = \displaystyle\frac{\boldsymbol{x} - \boldsymbol{a}}{\|\boldsymbol{x} - \boldsymbol{a}\|_2}$ | 2-ノルムの微分 | 12.1 |
| $\displaystyle\frac{\partial}{\partial \boldsymbol{x}} \displaystyle\frac{\boldsymbol{x} - \boldsymbol{a}}{\|\boldsymbol{x} - \boldsymbol{a}\|_2} = \displaystyle\frac{\boldsymbol{I}}{\|\boldsymbol{x} - \boldsymbol{a}\|_2} - \displaystyle\frac{(\boldsymbol{x} - \boldsymbol{a})(\boldsymbol{x} - \boldsymbol{a})^\top}{\|\boldsymbol{x} - \boldsymbol{a}\|_2^3}$ | 正規化ベクトルの微分 | 12.2 |
| $\displaystyle\frac{\partial}{\partial \boldsymbol{x}} \|\boldsymbol{x}\|_2^2 = 2\boldsymbol{x}$ | 2-ノルムの2乗の微分 | 12.3 |
| $\displaystyle\frac{\partial}{\partial \boldsymbol{X}} \|\boldsymbol{X}\|_F^2 = 2\boldsymbol{X}$ | Frobeniusノルムの2乗 | 12.4 |
| $\displaystyle\frac{\partial}{\partial \boldsymbol{X}} \|\boldsymbol{X}\|_F = \displaystyle\frac{\boldsymbol{X}}{\|\boldsymbol{X}\|_F}$ | Frobeniusノルム | 12.5 |
| $\displaystyle\frac{\partial}{\partial \boldsymbol{X}} \|\boldsymbol{X} - \boldsymbol{A}\|_F^2 = 2(\boldsymbol{X} - \boldsymbol{A})$ | 差のFrobeniusノルムの2乗 | 12.6 |
| $\displaystyle\frac{\partial}{\partial \boldsymbol{X}} \|\boldsymbol{A}\boldsymbol{X} - \boldsymbol{B}\|_F^2 = 2\boldsymbol{A}^\top(\boldsymbol{A}\boldsymbol{X} - \boldsymbol{B})$ | 線形回帰の残差(左から乗算) | 12.7 |
| $\displaystyle\frac{\partial}{\partial \boldsymbol{X}} \|\boldsymbol{X}\boldsymbol{A} - \boldsymbol{B}\|_F^2 = 2(\boldsymbol{X}\boldsymbol{A} - \boldsymbol{B})\boldsymbol{A}^\top$ | 線形回帰の残差(右から乗算) | 12.8 |
| $\displaystyle\frac{\partial}{\partial \boldsymbol{w}} \|\boldsymbol{X}\boldsymbol{w} - \boldsymbol{y}\|^2 = 2\boldsymbol{X}^\top(\boldsymbol{X}\boldsymbol{w} - \boldsymbol{y})$ | 回帰の重み勾配 | 12.9 |
| $\displaystyle\frac{\partial}{\partial \boldsymbol{W}} \displaystyle\frac{\lambda}{2}\|\boldsymbol{W}\|_F^2 = \lambda \boldsymbol{W}$ | L2正則化(Weight Decay) | 12.10 |
| $\displaystyle\frac{\partial}{\partial \boldsymbol{W}} \lambda\|\boldsymbol{W}\|_1 = \lambda \cdot \text{sign}(\boldsymbol{W})$ | L1正則化(劣勾配) $W_{ij} = 0$ で $[-1, 1]$ |
12.11 |
| LASSO勾配 $\displaystyle\frac{\partial}{\partial \boldsymbol{\alpha}}\left(\displaystyle\frac{1}{2}\|\boldsymbol{x} - \boldsymbol{D}\boldsymbol{\alpha}\|^2 + \lambda\|\boldsymbol{\alpha}\|_1\right) = \boldsymbol{D}^\top(\boldsymbol{D}\boldsymbol{\alpha} - \boldsymbol{x}) + \lambda \cdot \text{sign}(\boldsymbol{\alpha})$ |
L1正則化付き回帰 劣勾配 |
12.12 |
13. 構造行列の微分
対称行列、対角行列、Toeplitz行列などの構造を持つ行列の微分公式。 証明は証明集 第13章を参照。
| 公式 | 備考 | 証明 |
|---|---|---|
| $\displaystyle\frac{df}{dA_{ij}} = \displaystyle\text{tr}\left[\left(\displaystyle\frac{\partial f}{\partial \boldsymbol{A}}\right)^\top \boldsymbol{S}^{ij}\right]$ (ただし $\boldsymbol{A}$: 構造行列) |
構造行列の微分(一般形) | 13.1 |
| $\displaystyle\frac{\partial \boldsymbol{A}}{\partial A_{ij}} = \boldsymbol{J}^{ij}$ (ただし $\boldsymbol{A}$: 一般行列) (単一成分行列) |
構造行列(一般) | 13.2 |
| $\displaystyle\frac{\partial \boldsymbol{A}}{\partial A_{ij}} = \boldsymbol{J}^{ij} + \boldsymbol{J}^{ji} - \delta_{ij}\boldsymbol{J}^{ij}$ (ただし $\boldsymbol{A}$: 対称行列) |
構造行列(対称) | 13.3 |
| \begin{align}&\frac{\partial f}{\partial \boldsymbol{A}} = \frac{\partial f}{\partial \boldsymbol{A}}\bigg|_{\text{sym}} = \frac{\partial f}{\partial \boldsymbol{A}}\bigg|_{\text{gen}} + \left(\frac{\partial f}{\partial \boldsymbol{A}}\bigg|_{\text{gen}}\right)^\top \notag\\&\quad - \text{diag}\left(\frac{\partial f}{\partial \boldsymbol{A}}\bigg|_{\text{gen}}\right) \notag\end{align}(対称行列 $\boldsymbol{A}$) | 対称行列による微分 | 13.4 |
ここで $\boldsymbol{S}^{ij} = \displaystyle\frac{\partial \boldsymbol{A}}{\partial A_{ij}}$ は構造行列で、$A_{ij}$ を変化させたときに行列全体がどう変化するかを表す。
13.1 vec演算子と関連行列
行列を列ベクトルに変換する vec 演算子と、それに関連する可換行列・duplication行列。 行列微分を線形変換として扱う際の基礎ツールである。
| 公式 | 備考 | 証明 |
|---|---|---|
| $\text{vec}(\boldsymbol{A}\boldsymbol{X}\boldsymbol{B}) = (\boldsymbol{B}^\top \otimes \boldsymbol{A})\,\text{vec}(\boldsymbol{X})$ | 行列積のベクトル化 | 13.7 |
| $\boldsymbol{K}_{mn}\,\text{vec}(\boldsymbol{A}) = \text{vec}(\boldsymbol{A}^\top)$ ($\boldsymbol{A}$: $m \times n$) |
可換行列(commutation matrix) | 13.8 |
| $\boldsymbol{K}_{mn}(\boldsymbol{A} \otimes \boldsymbol{B}) = (\boldsymbol{B} \otimes \boldsymbol{A})\boldsymbol{K}_{pq}$ ($\boldsymbol{A}$: $m \times p$, $\boldsymbol{B}$: $n \times q$) |
Kronecker積の順序交換 | 13.9 |
| $\boldsymbol{D}_n\,\text{vech}(\boldsymbol{A}) = \text{vec}(\boldsymbol{A})$ ($\boldsymbol{A}$: $n \times n$ 対称) |
duplication matrix | 13.10 |
| $\boldsymbol{L}_n\,\text{vec}(\boldsymbol{A}) = \text{vech}(\boldsymbol{A})$ ($\boldsymbol{A}$: $n \times n$ 対称) |
elimination matrix | 13.11 |
| $\boldsymbol{L}_n \boldsymbol{D}_n = \boldsymbol{I}_{n(n+1)/2}$ | elimination・duplication の関係 | 13.12 |
| $\displaystyle\frac{\partial\,\text{vec}(\boldsymbol{X})}{\partial\,\text{vec}(\boldsymbol{X})^\top} = \boldsymbol{I}_{mn}$ ($\boldsymbol{X}$: $m \times n$) |
ベクトル化の微分 | 13.13 |
ここで $\text{vec}(\boldsymbol{A})$ は行列 $\boldsymbol{A}$ の列を縦に並べたベクトル、 $\text{vech}(\boldsymbol{A})$ は対称行列の下三角部分(対角含む)をベクトル化したもの、 $\otimes$ はKronecker積を表す。
13.2 Cholesky分解の勾配
正定値行列 $\boldsymbol{A}$ のCholesky分解 $\boldsymbol{A} = \boldsymbol{L}\boldsymbol{L}^\top$($\boldsymbol{L}$ は下三角行列)の勾配。 Gauss過程や共分散行列の処理で重要。
| 公式 | 備考 | 証明 |
|---|---|---|
| $\displaystyle\frac{\partial L}{\partial \boldsymbol{A}}$ ($\boldsymbol{A} = \boldsymbol{L}\boldsymbol{L}^\top$) $\boldsymbol{L}^{-\top}\text{tril}(\boldsymbol{L}^\top \bar{\boldsymbol{L}})\boldsymbol{L}^{-1}$ |
$\bar{\boldsymbol{L}}$ は $\boldsymbol{L}$ への上流勾配 $\text{tril}$ は下三角部分 |
13.14 |
| $\displaystyle\frac{\partial \log|\boldsymbol{A}|}{\partial \boldsymbol{A}}$ (Cholesky経由) $\boldsymbol{A}^{-\top}$ |
$\log|\boldsymbol{A}| = 2\sum_i \log L_{ii}$ | 13.15 |
14. 行列連鎖律
行列 $\boldsymbol{U} = f(\boldsymbol{X})$ が行列 $\boldsymbol{X}$ の関数であり、さらにスカラ関数 $g(\boldsymbol{U})$ があるとき、合成関数の微分公式。 証明は証明集 第14章を参照。
| 公式 | 備考 | 証明 |
|---|---|---|
| $\displaystyle\frac{\partial g(\boldsymbol{U})}{\partial X_{ij}} = \displaystyle\sum_{k,l} \displaystyle\frac{\partial g}{\partial U_{kl}} \displaystyle\frac{\partial U_{kl}}{\partial X_{ij}}$ ($\boldsymbol{U} = f(\boldsymbol{X})$) |
行列連鎖律(成分形式) | 14.1 |
| $\displaystyle\frac{\partial g(\boldsymbol{U})}{\partial X_{ij}} = \displaystyle\text{tr}\left[\left(\displaystyle\frac{\partial g}{\partial \boldsymbol{U}}\right)^\top \displaystyle\frac{\partial \boldsymbol{U}}{\partial X_{ij}}\right]$ ($\boldsymbol{U} = f(\boldsymbol{X})$) |
行列連鎖律(トレース形式) | 14.2 |
15. 特殊行列の微分
対称行列、対角行列、Toeplitz行列などに対する具体的な微分公式。 証明は証明集 第15章を参照。
| 公式 | 備考 | 証明 |
|---|---|---|
| $\displaystyle\frac{\partial \text{tr}(\boldsymbol{A}\boldsymbol{X})}{\partial \boldsymbol{X}} = \boldsymbol{A} + \boldsymbol{A}^\top - (\boldsymbol{A} \circ \boldsymbol{I})$ ($\boldsymbol{X}$: 対称) |
対称行列のトレース微分 | 15.1 |
| $\displaystyle\frac{\partial |\boldsymbol{X}|}{\partial \boldsymbol{X}} = |\boldsymbol{X}|(2\boldsymbol{X}^{-1} - (\boldsymbol{X}^{-1} \circ \boldsymbol{I}))$ ($\boldsymbol{X}$: 対称) |
対称行列の行列式微分 | 15.2 |
| $\displaystyle\frac{\partial \log|\boldsymbol{X}|}{\partial \boldsymbol{X}} = 2\boldsymbol{X}^{-1} - (\boldsymbol{X}^{-1} \circ \boldsymbol{I})$ ($\boldsymbol{X}$: 対称) |
対称行列の対数行列式微分 | 15.3 |
| $\displaystyle\frac{\partial \text{tr}(\boldsymbol{A}\boldsymbol{X})}{\partial \boldsymbol{X}} = \boldsymbol{A} \circ \boldsymbol{I}$ ($\boldsymbol{X}$: 対角) |
対角行列のトレース微分 | 15.4 |
| $\displaystyle\frac{\partial \text{tr}(\boldsymbol{A}\boldsymbol{T})}{\partial \boldsymbol{T}} = \boldsymbol{\alpha}(\boldsymbol{A})$ ($\boldsymbol{T}$: Toeplitz) |
Toeplitz行列のトレース微分 | 15.5 |
| $\displaystyle\frac{\partial c(\boldsymbol{A})}{\partial \boldsymbol{A}} = \displaystyle\frac{1}{\lambda_{\min}}\boldsymbol{v}_{\max}\boldsymbol{v}_{\max}^\top - \displaystyle\frac{c(\boldsymbol{A})}{\lambda_{\min}}\boldsymbol{v}_{\min}\boldsymbol{v}_{\min}^\top$ ($\boldsymbol{A}$: 対称正定値) |
条件数の微分 | 15.6 |
ここで $\boldsymbol{A} \circ \boldsymbol{I}$ はHadamard積で対角成分のみを残す操作、$\boldsymbol{\alpha}(\boldsymbol{A})$ は $\boldsymbol{A}^\top$ の対角線要素和を成分とする行列、$c(\boldsymbol{A}) = \lambda_{\max}/\lambda_{\min}$ は条件数である。
16. 複素行列の微分
複素共役を含む関数のWirtinger微分と、複素トレースの微分公式。 証明は証明集 第16章を参照。
| 公式 | 備考 | 証明 |
|---|---|---|
| $\displaystyle\frac{\partial f}{\partial z}$, $\displaystyle\frac{\partial f}{\partial z^*} = \displaystyle\frac{1}{2}\left(\displaystyle\frac{\partial f}{\partial \Re z} \mp i\displaystyle\frac{\partial f}{\partial \Im z}\right)$ | Wirtinger微分 | 16.1 |
| $\nabla f(\boldsymbol{z}) = \displaystyle 2\displaystyle\frac{\partial f(\boldsymbol{z})}{\partial \boldsymbol{z}^*}$ ($f$: 実数値) |
複素勾配ベクトル | 16.2 |
| $\displaystyle\frac{\partial g}{\partial z} = \displaystyle\frac{\partial g}{\partial f}\displaystyle\frac{\partial f}{\partial z} + \displaystyle\frac{\partial g}{\partial f^*}\displaystyle\frac{\partial f^*}{\partial z}$ (合成関数) |
複素微分の連鎖律 | 16.3 |
| $\displaystyle\frac{\partial \text{Tr}(\boldsymbol{X}^*)}{\partial \Re\boldsymbol{X}} = \boldsymbol{I}$ | 複素共役トレースの微分 | 16.4 |
| $\displaystyle\frac{\partial \text{Tr}(\boldsymbol{A}\boldsymbol{X}^H)}{\partial \Re\boldsymbol{X}} = \boldsymbol{A}^\top$ | Hermiteトレースの微分 | 16.6 |
| $\displaystyle\frac{\partial \text{Tr}(\boldsymbol{X}\boldsymbol{X}^H)}{\partial \Re\boldsymbol{X}} = 2\Re\boldsymbol{X}$ | Frobeniusノルムの微分 | 16.8 |
| $\displaystyle\frac{\partial \text{Tr}(\boldsymbol{X}\boldsymbol{X}^H)}{\partial \boldsymbol{X}} = \boldsymbol{X}^*$ | Wirtinger微分 | 16.9 |
| $\nabla\|\boldsymbol{X}\|_F^2 = 2\boldsymbol{X}$ | Frobeniusノルムの複素勾配 | 16.10 |
| $\displaystyle\frac{\partial \det(\boldsymbol{X}^H\boldsymbol{A}\boldsymbol{X})}{\partial \boldsymbol{X}^*} = \det(\boldsymbol{X}^H\boldsymbol{A}\boldsymbol{X})\boldsymbol{A}\boldsymbol{X}(\boldsymbol{X}^H\boldsymbol{A}\boldsymbol{X})^{-1}$ | 複素行列式の微分 | 16.11 |
| $\displaystyle\frac{\partial}{\partial \boldsymbol{x}}\displaystyle\frac{(\boldsymbol{A}\boldsymbol{x})^H(\boldsymbol{A}\boldsymbol{x})}{(\boldsymbol{B}\boldsymbol{x})^H(\boldsymbol{B}\boldsymbol{x})}$ (複素Rayleigh商) |
複素Rayleigh商の微分 | 16.12 |
| $\displaystyle\frac{\partial (a - \boldsymbol{x}^H \boldsymbol{b})^2}{\partial \boldsymbol{x}} = -2\bar{\boldsymbol{b}}(a - \boldsymbol{x}^H \boldsymbol{b})^*$ | 複素二次形式の微分 | 16.13 |
| $\displaystyle\frac{\partial}{\partial \boldsymbol{z}^*}(\boldsymbol{w}^H\boldsymbol{z}) = \boldsymbol{0}$, $\quad\displaystyle\frac{\partial}{\partial \boldsymbol{z}^*}(\boldsymbol{z}^H\boldsymbol{w}) = \boldsymbol{w}$ | ベクトル内積のWirtinger微分 | 16.57 |
| $\displaystyle\frac{\partial}{\partial \boldsymbol{z}^*}(\boldsymbol{z}^H\boldsymbol{A}\boldsymbol{z}) = \boldsymbol{A}\boldsymbol{z}$ ($\boldsymbol{A}$: エルミート行列) |
エルミート二次形式のWirtinger微分 | 16.57 |
ここで $\boldsymbol{X}^H = (\boldsymbol{X}^*)^\top$ はHermite転置、$\boldsymbol{X}^*$ は要素ごとの複素共役、$\bar{\boldsymbol{b}}$ は $\boldsymbol{b}$ の複素共役である。
証明
各公式の詳細な証明は行列微分の証明集を参照。
付録A 分子レイアウトとの対応と表記上の注意
A.1 勾配ベクトルの形状
スカラー $f$ をベクトル $\boldsymbol{x} \in \mathbb{R}^n$ で微分した勾配について:
- 分子レイアウト:$\nabla f = \displaystyle\frac{\partial f}{\partial \boldsymbol{x}} \in \mathbb{R}^{1 \times n}$(行ベクトル)
- 分母レイアウト(本資料):$\nabla f = \displaystyle\frac{\partial f}{\partial \boldsymbol{x}} \in \mathbb{R}^{n \times 1}$(列ベクトル)
最適化アルゴリズムで「勾配方向に進む」という記述がある場合、本資料の表記ではそのまま $-\nabla f$ を加算すればよいが、分子レイアウトの教科書では転置 $(\nabla f)^T$ が必要になる点に注意。
A.2 Jacobi行列の定義
ベクトル値関数 $\boldsymbol{f}: \mathbb{R}^n \to \mathbb{R}^m$ のJacobi行列について:
- 分子レイアウト:$\boldsymbol{J} = \displaystyle\frac{\partial \boldsymbol{f}}{\partial \boldsymbol{x}} \in \mathbb{R}^{m \times n}$($i$行$j$列成分が $\displaystyle\frac{\partial f_i}{\partial x_j}$)
- 分母レイアウト(本資料):$\boldsymbol{J} = \displaystyle\frac{\partial \boldsymbol{f}}{\partial \boldsymbol{x}} \in \mathbb{R}^{n \times m}$($i$行$j$列成分が $\displaystyle\frac{\partial f_j}{\partial x_i}$)
つまり、両者は転置の関係にある:$\boldsymbol{J}_{\text{denom}} = \boldsymbol{J}_{\text{numer}}^T$
A.3 連鎖律の形式
合成関数 $\boldsymbol{g}(\boldsymbol{f}(\boldsymbol{x}))$ の微分において:
- 分子レイアウト:$\displaystyle\frac{\partial \boldsymbol{g}}{\partial \boldsymbol{x}} = \displaystyle\frac{\partial \boldsymbol{g}}{\partial \boldsymbol{f}} \displaystyle\frac{\partial \boldsymbol{f}}{\partial \boldsymbol{x}}$(左から順に掛ける)
- 分母レイアウト(本資料):$\displaystyle\frac{\partial \boldsymbol{g}}{\partial \boldsymbol{x}} = \displaystyle\frac{\partial \boldsymbol{f}}{\partial \boldsymbol{x}} \displaystyle\frac{\partial \boldsymbol{g}}{\partial \boldsymbol{f}}$(右から順に掛ける)
ニューラルネットワークの逆伝播実装では、どちらの表記を採用しているか確認し、行列積の順序を正しく設定すること。
A.4 主要公式の対応表
| 公式 | 分母レイアウト(本資料) | 分子レイアウト |
|---|---|---|
| $\displaystyle\frac{\partial}{\partial \boldsymbol{x}}(\boldsymbol{a}^T \boldsymbol{x})$ | $\boldsymbol{a}$ | $\boldsymbol{a}^T$ |
| $\displaystyle\frac{\partial}{\partial \boldsymbol{x}}(\boldsymbol{x}^T \boldsymbol{A} \boldsymbol{x})$ | $(\boldsymbol{A} + \boldsymbol{A}^T)\boldsymbol{x}$ | $\boldsymbol{x}^T(\boldsymbol{A} + \boldsymbol{A}^T)$ |
| $\displaystyle\frac{\partial}{\partial \boldsymbol{X}}(\boldsymbol{a}^T \boldsymbol{X} \boldsymbol{b})$ | $\boldsymbol{a}\boldsymbol{b}^T$ | $\boldsymbol{b}\boldsymbol{a}^T$ |
| $\displaystyle\frac{\partial}{\partial \boldsymbol{X}}\mathrm{tr}(\boldsymbol{A}\boldsymbol{X})$ | $\boldsymbol{A}^T$ | $\boldsymbol{A}$ |
| $\displaystyle\frac{\partial}{\partial \boldsymbol{X}}\log|\boldsymbol{X}|$ | $(\boldsymbol{X}^{-1})^T = \boldsymbol{X}^{-T}$ | $\boldsymbol{X}^{-1}$ |
他の文献と照合する際は、まず勾配ベクトルが行ベクトルか列ベクトルかを確認し、表記の違いを把握してから公式を適用すること。
応用公式
本公式集の応用として、各分野への適用例をまとめている。詳細な証明は証明集をご覧ください。
機械学習・情報科学
自然科学・工学
参考文献・関連記事
関連記事
基本文献
- Magnus, J. R. & Neudecker, H. (2019). Matrix Differential Calculus with Applications in Statistics and Econometrics, 3rd ed. Wiley. — 行列微分の標準的教科書。分母レイアウトを採用。
- The Matrix Cookbook - Petersen & Pedersen (2012) — 公式集として広く参照される。
- Absil, P.-A., Mahony, R. & Sepulchre, R. (2008). Optimization Algorithms on Matrix Manifolds. Princeton University Press. — 多様体上の最適化と行列微分。
- Edelman, A., Arias, T. A. & Smith, S. T. (1998). The Geometry of Algorithms with Orthogonality Constraints. SIAM J. Matrix Anal. Appl. 20(2), 303–353. — 直交制約付き最適化の幾何学的基礎。
- Baydin, A. G., Pearlmutter, B. A., Radul, A. A. & Siskind, J. M. (2018). Automatic Differentiation in Machine Learning: A Survey. J. Mach. Learn. Res. 18(153), 1–43. — 自動微分の包括的サーベイ。
- Matrix calculus - Wikipedia
注
- Fréchet微分の形式的定義:写像 $f: \mathbb{R}^n \to \mathbb{R}^m$ が点 $\boldsymbol{x}$ でFréchet微分可能であるとは、 線形写像 $Df(\boldsymbol{x}): \mathbb{R}^n \to \mathbb{R}^m$ が存在して $\displaystyle\lim_{\|\boldsymbol{h}\| \to 0} \frac{\|f(\boldsymbol{x}+\boldsymbol{h}) - f(\boldsymbol{x}) - Df(\boldsymbol{x})[\boldsymbol{h}]\|}{\|\boldsymbol{h}\|} = 0$ を満たすことをいう。↩