ベクトルによる微分・行列による微分(Matrix Calculus)
公式一覧から証明・応用まで — 全16章+分野別の応用例
ベクトルによる微分・行列による微分とは
ベクトルによる微分・行列による微分(Matrix Calculus)とは、スカラー・ベクトル・行列を変数とする関数の微分を体系的に扱う分野である。 通常の偏微分を行列やベクトルの形にまとめることで、多次元の勾配計算を簡潔に記述できる。
直感的な理解
1変数関数 $f(x)$ の微分は $\dfrac{df}{dx}$(スカラー)だった。では、$n$ 変数の関数 $f(\boldsymbol{x})$ を $\boldsymbol{x} = (x_1, \ldots, x_n)^\top$ で微分すると何になるか? 答えは勾配ベクトル(各偏微分を並べたベクトル)である:
$$\dfrac{\partial f}{\partial \boldsymbol{x}} = \begin{pmatrix} \dfrac{\partial f}{\partial x_1} \\[6pt] \vdots \\[6pt] \dfrac{\partial f}{\partial x_n} \end{pmatrix}$$同様に、ベクトル値関数 $\boldsymbol{f}(\boldsymbol{x})$ をベクトルで微分すればヤコビ行列に、スカラー関数を行列 $\boldsymbol{X}$ で微分すれば行列勾配になる。 これが「ベクトルによる微分」「行列による微分」の基本的な考え方である。
微分の種類と結果の形
| 被微分関数 | 微分変数 | 結果の形 | 名称 |
|---|---|---|---|
| スカラー $f$ | ベクトル $\boldsymbol{x} \in \mathbb{R}^n$ | $n$ 次元ベクトル | 勾配(gradient) |
| ベクトル $\boldsymbol{f} \in \mathbb{R}^m$ | ベクトル $\boldsymbol{x} \in \mathbb{R}^n$ | $n \times m$ 行列 | ヤコビ行列(Jacobian。分母レイアウト。標準的な定義 $m \times n$ の転置) |
| スカラー $f$ | ベクトル $\boldsymbol{x}$(2回微分) | $n \times n$ 行列 | ヘッセ行列(Hessian) |
| スカラー $f$ | 行列 $\boldsymbol{X} \in \mathbb{R}^{m \times n}$ | $m \times n$ 行列 | 行列勾配 |
なぜ必要なのか
- 機械学習: ニューラルネットワークの逆伝播(バックプロパゲーション)は行列による微分そのもの。損失関数の重み行列に関する勾配 $\frac{\partial L}{\partial \boldsymbol{W}}$ を計算する
- 統計学: 最尤推定でパラメータベクトルに関する対数尤度の勾配を求める。フィッシャー情報行列やガウス過程の計算にも不可欠
- 最適化: Newton法では勾配(1次)とヘッセ行列(2次)を使って収束を加速する。準Newton法はヘッセ行列を計算せず、勾配の履歴から近似を更新する
- 制御工学: LQR(線形二次レギュレータ)やカルマンフィルタの導出に二次形式の微分が必要
- 物理学: 連続体力学のひずみエネルギー関数、電磁気学のグリーン関数の微分など
主要公式 早見表(分母レイアウト)
以下は最も頻繁に使われる公式の抜粋である。全公式は公式集を参照。
ベクトルによる微分(スカラーをベクトルで微分)
| 関数 | 微分 $\dfrac{\partial}{\partial \boldsymbol{x}}$ | 備考 |
|---|---|---|
| $\boldsymbol{a}^\top \boldsymbol{x}$ | $\boldsymbol{a}$ | 線形関数 |
| $\boldsymbol{x}^\top \boldsymbol{A} \boldsymbol{x}$ | $(\boldsymbol{A} + \boldsymbol{A}^\top)\boldsymbol{x}$ | 二次形式($\boldsymbol{A}$ 対称なら $2\boldsymbol{A}\boldsymbol{x}$) |
| $\|\boldsymbol{x}\|^2 = \boldsymbol{x}^\top\boldsymbol{x}$ | $2\boldsymbol{x}$ | ノルムの二乗 |
| $\boldsymbol{x}^\top \boldsymbol{A}^\top \boldsymbol{b}$ | $\boldsymbol{A}^\top \boldsymbol{b}$ | アフィン変換 |
| $\|\boldsymbol{A}\boldsymbol{x} - \boldsymbol{b}\|^2$ | $2\boldsymbol{A}^\top(\boldsymbol{A}\boldsymbol{x} - \boldsymbol{b})$ | 最小二乗法の正規方程式 |
ベクトルによる微分(ベクトルをベクトルで微分)
| 関数 | 微分 $\dfrac{\partial}{\partial \boldsymbol{x}}$ | 備考 |
|---|---|---|
| $\boldsymbol{A}\boldsymbol{x}$ | $\boldsymbol{A}^\top$ | ヤコビ行列 (分母レイアウト。分子レイアウトでは $\boldsymbol{A}$) |
| $\boldsymbol{x}$ | $\boldsymbol{I}$ | 恒等写像 |
行列による微分(スカラーを行列で微分)
| 関数 | 微分 $\dfrac{\partial}{\partial \boldsymbol{X}}$ | 備考 |
|---|---|---|
| $\mathrm{tr}(\boldsymbol{A}\boldsymbol{X})$ | $\boldsymbol{A}^\top$ | トレースの微分(最基本) |
| $\mathrm{tr}(\boldsymbol{X}^\top\boldsymbol{A}\boldsymbol{X})$ | $(\boldsymbol{A}+\boldsymbol{A}^\top)\boldsymbol{X}$ | 二次形式のトレース |
| $\mathrm{tr}(\boldsymbol{A}\boldsymbol{X}^{-1}\boldsymbol{B})$ | $-\boldsymbol{X}^{-\top}\boldsymbol{A}^\top\boldsymbol{B}^\top\boldsymbol{X}^{-\top}$ | 逆行列を含むトレース |
| $\log|\boldsymbol{X}|$ | $\boldsymbol{X}^{-\top}$ | 対数行列式(最尤推定で頻出) |
| $|\boldsymbol{X}|$ | $|\boldsymbol{X}|\,\boldsymbol{X}^{-\top}$ | 行列式の微分 |
| $\boldsymbol{X}^{-1}$(行列値) | $d(\boldsymbol{X}^{-1}) = -\boldsymbol{X}^{-1}\, d\boldsymbol{X}\, \boldsymbol{X}^{-1}$ | 逆行列の微分 (微分形式表現。成分ごとの $\partial/\partial X_{kl}$ は 4 階テンソルになるため、上式の方が実用的) |
上表はすべて分母レイアウト(Hessian formulation)に基づく。分子レイアウトでは転置が入る。$|\boldsymbol{X}|$ は行列式 $\det\boldsymbol{X}$ を表し、逆行列・行列式を含む行は $\boldsymbol{X}$ が正方かつ正則な場合に限る($\det\boldsymbol{X}<0$ のときは $\log|\det\boldsymbol{X}|$ と読む)。詳細は入門ページの「レイアウトの選び方」を参照。
分母レイアウトと分子レイアウト
行列微分には2つの記法が共存しており、文献によって異なる。結果が転置の関係になるため、混在させると計算を間違える。
| 項目 | 分母レイアウト | 分子レイアウト |
|---|---|---|
| $\dfrac{\partial f}{\partial \boldsymbol{x}}$($f$: スカラー, $\boldsymbol{x} \in \mathbb{R}^n$) | $n \times 1$ 列ベクトル | $1 \times n$ 行ベクトル |
| 別名 | Hessian formulation | Jacobian formulation |
| 主な採用分野 | 統計学・最適化(機械学習は勾配が分母・ヤコビ行列が分子の混在) | 工学・物理学の一部 |
| 連鎖律の順序 | 内側の関数から左→右: $\dfrac{\partial z}{\partial \boldsymbol{x}} = \dfrac{\partial \boldsymbol{y}}{\partial \boldsymbol{x}}\, \dfrac{\partial z}{\partial \boldsymbol{y}}$ |
外側の関数から左→右: $\dfrac{\partial z}{\partial \boldsymbol{x}} = \dfrac{\partial z}{\partial \boldsymbol{y}}\, \dfrac{\partial \boldsymbol{y}}{\partial \boldsymbol{x}}$ |
本シリーズでは分母レイアウトを採用している。詳しい比較は入門ページ、約60分野のレイアウト傾向は分野別レイアウト一覧を参照。
本シリーズの特徴
- 全16章の公式集 — スカラー・ベクトル・行列による微分を網羅(トレース、行列式、逆行列、固有値、ノルム、構造行列、複素行列まで)
- 全公式に証明付き — 成分計算と余因子展開を用いた厳密な導出過程を証明集に収録(16章+Lie群3章+応用4章)
- 分野別の応用例 — 統計学、機械学習、最適化から分子動力学、ロボティクス、金融工学まで具体的な適用例を収録
- 分母・分子の両レイアウト対応 — 公式集の付録Aで分子レイアウトとの変換表を掲載
- Lie群の微分 — 指数写像の微分(dexp/dlog・$SO(3)$・$SE(3)$)、BCH公式と摂動、多様体上の最適化(Stiefel・Grassmann)の3章
シリーズ目次
-
ベクトル微分/行列微分入門
なぜ必要か、何ができるか、分母/分子レイアウトの選び方
-
ベクトル微分/行列微分の公式集
全16章・スカラー/ベクトル/行列による微分公式一覧
-
ベクトル微分/行列微分の証明集
各公式の詳細な導出過程(16章+Lie群3章+応用4章)
-
機械学習への応用
ニューラルネットワーク・SVD・Fisher情報・強化学習・NLPの勾配公式
-
統計学への応用(ハブ)
基礎分布・潜在変数・分散成分・空間・神経・情報幾何の 6 テーマで 60 超の公式
-
テンソル微分入門
高階テンソルへの一般化
-
自動微分と最適化
深層学習フレームワークとの関係
-
分野別レイアウト一覧
約60分野における記法の傾向
前提知識
- 線形代数の基礎(行列演算、転置、逆行列、行列式)
- 微分の基礎(偏微分、連鎖律)
- ベクトル解析の基礎(勾配)
よくある質問
ベクトルによる微分・行列による微分とは何ですか?
ベクトルによる微分・行列による微分(Matrix Calculus)は、スカラー・ベクトル・行列を変数とする関数の微分を体系的に扱う分野です。通常の偏微分を行列やベクトルの形にまとめることで、機械学習の勾配計算や統計学の最尤推定などを簡潔に記述できます。
分母レイアウトと分子レイアウトの違いは何ですか?
分母レイアウト(Hessian formulation)ではスカラーをベクトルで微分すると列ベクトルになり、分子レイアウト(Jacobian formulation)では行ベクトルになります。統計学・最適化では分母レイアウトが主流で、機械学習では勾配に分母レイアウト、ヤコビ行列に分子レイアウトが混在します。どちらを使うかで公式の転置が変わるため、文献を読む際は注意が必要です。
行列による微分で最もよく使う公式は何ですか?
頻出公式は $\partial(\boldsymbol{A}\boldsymbol{x})/\partial\boldsymbol{x} = \boldsymbol{A}^\top$(線形変換の微分)、$\partial(\boldsymbol{x}^\top\boldsymbol{A}\boldsymbol{x})/\partial\boldsymbol{x} = (\boldsymbol{A}+\boldsymbol{A}^\top)\boldsymbol{x}$(二次形式の微分)、$\partial\,\mathrm{tr}(\boldsymbol{A}\boldsymbol{X})/\partial\boldsymbol{X} = \boldsymbol{A}^\top$(トレースの微分)、$\partial\log|\boldsymbol{X}|/\partial\boldsymbol{X} = \boldsymbol{X}^{-\top}$(対数行列式の微分。$\boldsymbol{X}$ は正方かつ正則、$|\boldsymbol{X}|$ は行列式)です。いずれも分母レイアウトの式です。特に機械学習では二次形式とトレースの微分が多用されます。
ベクトルによる微分・行列による微分はどの分野で使われますか?
機械学習(損失関数の勾配計算、逆伝播)、統計学(最尤推定、フィッシャー情報行列)、最適化理論(Newton法、準Newton法)、制御工学(LQR、カルマンフィルタ)、物理シミュレーション、信号処理、計量経済学など幅広い分野で使われます。
ベクトルによる微分と行列による微分の違いは何ですか?
ベクトルによる微分は、スカラーやベクトルをベクトルで微分する操作です(結果は勾配ベクトルやヤコビ行列)。行列による微分は、スカラーを行列で微分する操作です(結果はトレース微分や行列式微分の公式で表されます)。行列値関数を行列で微分すると4階テンソルになるため、本シリーズでは微分形式で扱います。両者をまとめて Matrix Calculus と呼びます。
読み物
- 機械が行列微分を愛するわけ [読み物] — 深層学習の誤差逆伝播は、行列という衣装をまとった連鎖律にすぎない。なぜ機械が行列微分と相性がよいのかを語る。
- 行列で微分する [読み物] — スカラーの微分はただ一つの数。入力と出力が増えるにつれ、微分が勾配・ヤコビ行列・行列勾配へと「形」を変えていく階段をたどる。
- 学習を支える連鎖律 [読み物] — 逆伝播は魔法ではない。計算を一枚のグラフに描き、連鎖律を出口から入口へたどるだけ。なぜ「逆」が速いのかを計算グラフから読み解く。
- いちばんマシな答え [読み物] — 点はきれいに直線へ乗らない。それでも最良の直線は一本に決まる。勾配をゼロに置くと現れる正規方程式の物語。
- 世界を動かす微分 [読み物] — ロボットアームが手先を運ぶとき、裏で働くのはヤコビ行列。行列微分が制御やロボティクスで現実のモノを動かす様子を語る。