Home
6314 words
32 minutes
『The Matrix Cookbook』Page 8完全解読:行列微分の構造・証明・応用

last_modified: 2026-01-10

生成AIによる自動生成記事に関する免責事項: 本記事は、Petersen & Pedersen著 The Matrix Cookbook (Nov 15, 2012 edition) のPage 8の内容を骨子とし再構成した解説記事です。筆者の学習目的で生成したものです。正確な内容は必ず一次情報で確認してください。

1. 序論:線形代数と解析学の交差点#

現代の数理科学において、行列(Matrix)をあたかも単一の変数のように扱い、関数を微分する技術「行列微分(Matrix Calculus)」は、不可欠なリテラシーとなっています。機械学習におけるバックプロパゲーション、ロバスト制御におけるH∞理論、あるいは一般相対性理論におけるアインシュタイン方程式の変分導出に至るまで、その応用範囲は枚挙に暇がありません。

『The Matrix Cookbook』のPage 8は、この広大な分野の中でも特に難解かつ重要とされる「行列式(Determinant)の微分」を扱ったセクションです。本稿では、同書の記述を単に追認するのではなく、そこに記述された公式群がなぜ成立するのかという数学的証明の多角的な視点と、具体的にどう役に立つのかという応用数理の視点の双方から、徹底的な解説を試みます。


2. 基礎概念と記法 (Fundamentals)#

議論の出発点として、行列変数の微分に関する基本定義と、Page 8で採用されている前提条件を確認します。

2.1 非構造化行列の仮定 (Eq. 32)#

本稿で扱う行列 XRM×NX \in \mathbb{R}^{M \times N} は、その成分 XijX_{ij} が互いに独立変数である「非構造化行列(Unstructured Matrix)」とします。これは、対称行列や直交行列といった制約条件を持たないことを意味し、微分は以下の基本関係式に基づきます [cite: 5, 10]。

XklXij=δikδlj\frac{\partial X_{kl}}{\partial X_{ij}} = \delta_{ik}\delta_{lj}

ここで δ\delta はクロネッカーのデルタです。この仮定は、偏微分の独立性を保証する上で極めて重要です。もし XX が対称行列であれば、非対角成分の独立性が失われるため、連鎖律(Chain Rule)適用時に係数の補正が必要となりますが、本稿ではPage 8の記述に従い、最も一般的な一般行列を対象とします。

2.2 微分演算子の定義#

行列 XX の微小変化 dXdX(あるいは X\partial X)に対する関数 f(X)f(X) の変化分(全微分)を考えます。スカラー関数 f:RM×NRf: \mathbb{R}^{M \times N} \to \mathbb{R} の場合、その微分はトレース形式で記述するのが便利です。

df=Tr((fX)TdX)df = \text{Tr}\left( \left( \frac{\partial f}{\partial X} \right)^T dX \right)

ここで、勾配行列 fX\frac{\partial f}{\partial X} は、(i,j)(i, j) 成分が fXij\frac{\partial f}{\partial X_{ij}} である行列として定義されます [cite: 7, 9]。

2.3 ベクトル微分の成分定義(レイアウトの確定)#

行列微分を取り扱う際、結果が行列のどの成分に配置されるか(行ベクトルになるか列ベクトルになるか)は、採用する流儀によって異なります。 『The Matrix Cookbook』では、以下の成分定義(画像参照)を採用しています。これは一般に 分子レイアウト(Numerator Layout) または ヤコビアン形式 と呼ばれるものです。

1. ベクトルをスカラーで微分する場合#

[xy]i=xiy\left[ \frac{\partial \mathbf{x}}{\partial y} \right]_i = \frac{\partial x_i}{\partial y}
  • 意味: ベクトル x\mathbf{x} の各成分 xix_i をスカラー yy で微分します。
  • 形状: x\mathbf{x} が列ベクトルであれば、結果も同じサイズの列ベクトルとなります(Tangent vector)。物理学における速度ベクトル(位置ベクトルの時間微分)などがこれに該当します。

2. スカラーをベクトルで微分する場合#

[xy]i=xyi\left[ \frac{\partial x}{\partial \mathbf{y}} \right]_i = \frac{\partial x}{\partial y_i}
  • 意味: スカラー関数 xx をベクトル y\mathbf{y} の各成分 yiy_i で偏微分します。
  • 形状: 数学的な勾配(Gradient)に相当します。分子レイアウトでは、これを行ベクトル(x)T(\nabla x)^T)として扱うか、列ベクトルとして扱うかの整合性が重要になりますが、本書の定義上、インデックス iiy\mathbf{y} の次元に対応します。通常、後の連鎖律の整合性を保つため、スカラーのベクトル微分はしばしば行ベクトルとして配置されます。

3. ベクトルをベクトルで微分する場合#

[xy]ij=xiyj\left[ \frac{\partial \mathbf{x}}{\partial \mathbf{y}} \right]_{ij} = \frac{\partial x_i}{\partial y_j}
  • 意味: ベクトル xRM\mathbf{x} \in \mathbb{R}^M をベクトル yRN\mathbf{y} \in \mathbb{R}^N で微分したものです。
  • 形状: 結果は M×NM \times N 行列、すなわち ヤコビ行列(Jacobian Matrix) となります。
  • 重要性: この定義「行インデックス ii が分子(x\mathbf{x})に、列インデックス jj が分母(y\mathbf{y})に対応する」こそが、分子レイアウトの特徴です。これにより、連鎖律が行列積の順序として自然に記述可能になります。

この定義を明確にしておくことで、後述する逆行列や行列式の微分において、転置(T^T)がどのタイミングで現れるかの曖昧さが排除されます。


3. 代数的性質と逆行列の微分#

行列式の微分に進む前に、基礎となる代数演算の微分則と、逆行列の微分公式を確立します。これらは後の導出における「基本語彙」となります。

3.1 線形性と積の微分 (Eq. 33–38)#

行列微分においても、スカラー微分と同様の線形性と積の法則(ライプニッツ則)が成立しますが、**非可換性(Non-commutativity)**には細心の注意が必要です [cite: 16]。

  1. 線形性: d(αX+βY)=αdX+βdYd(\alpha X + \beta Y) = \alpha dX + \beta dY
  2. 積の微分: d(XY)=(dX)Y+X(dY)d(XY) = (dX)Y + X(dY)
    • 注意: dXdXYY の順序を入れ替えてはいけません。
  3. トレースの可換性: d(Tr(X))=Tr(dX)d(\text{Tr}(X)) = \text{Tr}(dX)
    • トレースと微分演算子は可換です。これはスカラー値関数の微分を求める際に極めて強力なツールとなります [cite: 15]。

3.2 逆行列の微分公式 (Eq. 39)#

逆行列 X1X^{-1} の微分は、行列解析において最も頻出する公式の一つです。

【公式】

d(X1)=X1(dX)X1d(X^{-1}) = -X^{-1} (dX) X^{-1}

【詳細な導出】 逆行列の定義式 XX1=IX X^{-1} = I(単位行列)を出発点とします。両辺の全微分をとります。

d(XX1)=d(I)d(X X^{-1}) = d(I)

右辺は定数行列なので 00 です。左辺に積の微分法則を適用します。

(dX)X1+Xd(X1)=0(dX) X^{-1} + X d(X^{-1}) = 0

求めたい項 d(X1)d(X^{-1}) を含む項を左辺に残し、移項します。

Xd(X1)=(dX)X1X d(X^{-1}) = -(dX) X^{-1}

左から X1X^{-1} を乗じて XX を消去します。

d(X1)=X1(dX)X1d(X^{-1}) = -X^{-1} (dX) X^{-1}

【解釈】 スカラーの場合の (1/x)=1/x2(1/x)' = -1/x^2 に相当しますが、行列積の非可換性ゆえに、マイナス符号と共に dXdX が左右から X1X^{-1} で「挟み撃ち」される形になります。この構造は、後の対数行列式の二階微分(ヘッセ行列)の計算で重要な役割を果たします [cite: 19]。


4. 行列式の微分:ヤコビの公式 (Eq. 40–42)#

Page 8のハイライトである行列式の微分公式(ヤコビの公式)について、原典で用いられている余因子展開による証明に加え、より現代的かつ解析的な2つの別証明を与えます。これにより、公式の背景にある数理的構造がより鮮明になります。

4.1 公式の提示#

【ヤコビの公式 (Jacobi’s Formula)】

d(det(X))=det(X)Tr(X1dX)d(\det(X)) = \det(X) \text{Tr}(X^{-1} dX)

あるいは成分表示で、

det(X)X=det(X)(X1)T\frac{\partial \det(X)}{\partial X} = \det(X) (X^{-1})^T

4.2 証明アプローチ1:余因子展開(古典的アプローチ)#

『The Matrix Cookbook』が示唆している標準的な証明法です [cite: 20]。

ラプラス展開により、行列式を行 ii に沿って展開します。

det(X)=j=1NXijCij\det(X) = \sum_{j=1}^N X_{ij} C_{ij}

ここで CijC_{ij}(i,j)(i, j) 余因子(cofactor)です。重要な点は、CijC_{ij}XijX_{ij} を含まないということです。したがって、det(X)\det(X)XijX_{ij} で偏微分すると、単純に係数である余因子だけが残ります。

det(X)Xij=Cij\frac{\partial \det(X)}{\partial X_{ij}} = C_{ij}

これをすべての i,ji, j について並べると、勾配行列は余因子行列 CC となります。

det(X)X=C=adj(X)T\frac{\partial \det(X)}{\partial X} = C = \text{adj}(X)^T

ここで、逆行列と余因子行列の関係 X1=1det(X)adj(X)X^{-1} = \frac{1}{\det(X)} \text{adj}(X)、すなわち adj(X)=det(X)X1\text{adj}(X) = \det(X) X^{-1} を用いると、

det(X)X=(det(X)X1)T=det(X)(X1)T\frac{\partial \det(X)}{\partial X} = (\det(X) X^{-1})^T = \det(X) (X^{-1})^T

が得られます。全微分形式に直せば、

d(det(X))=Tr((det(X)(X1)T)TdX)=det(X)Tr(X1dX)d(\det(X)) = \text{Tr}\left( \left( \det(X) (X^{-1})^T \right)^T dX \right) = \det(X) \text{Tr}(X^{-1} dX)

となります [cite: 21]。

4.3 証明アプローチ2:固有値分解による解析#

行列式が「固有値の積」であることを利用した、より直感的な証明です。

行列 XX の固有値を λ1,,λN\lambda_1, \dots, \lambda_N とします。

det(X)=i=1Nλi\det(X) = \prod_{i=1}^N \lambda_i

両辺の自然対数をとります(det(X)>0\det(X) > 0 を仮定)。

ln(det(X))=i=1Nln(λi)\ln(\det(X)) = \sum_{i=1}^N \ln(\lambda_i)

両辺の変分(微分)をとります。

d(ln(det(X)))=i=1Ndλiλid(\ln(\det(X))) = \sum_{i=1}^N \frac{d\lambda_i}{\lambda_i}

ここで、固有値の摂動論(Perturbation Theory)より、固有値の変化 dλid\lambda_i は、対応する左固有ベクトル uiu_i と右固有ベクトル viv_i (正規化されているとする)を用いて dλi=uiT(dX)vid\lambda_i = u_i^T (dX) v_i と表せることが知られていますが、より単純に、基底変換により XX を上三角化(シューア分解)した系で考えれば、対角成分の変化和がトレースの変化と等価になることから、

i=1Ndλiλi=Tr(X1dX)\sum_{i=1}^N \frac{d\lambda_i}{\lambda_i} = \text{Tr}(X^{-1} dX)

が導かれます。左辺は連鎖律より 1det(X)d(det(X))\frac{1}{\det(X)} d(\det(X)) なので、整理すればヤコビの公式が得られます。

4.4 証明アプローチ3:行列指数関数と恒等式#

リー群・リー代数の理論で基本的な恒等式を用いた、最もエレガントな証明です。

任意の正則行列 XX に対して、ある行列 AA が存在して X=eAX = e^A (行列指数関数)と書けると仮定します(複素数の範囲で一般に成立)。ここで有名な公式(Jacobi’s identity)があります。

det(eA)=eTr(A)\det(e^A) = e^{\text{Tr}(A)}

すなわち、

det(X)=exp(Tr(lnX))\det(X) = \exp(\text{Tr}(\ln X))

この両辺を微分します。右辺に対して連鎖律を適用します。

d(det(X))=d(exp(Tr(lnX)))=exp(Tr(lnX))d(Tr(lnX))=det(X)Tr(d(lnX))\begin{aligned} d(\det(X)) &= d\left( \exp(\text{Tr}(\ln X)) \right) \\ &= \exp(\text{Tr}(\ln X)) \cdot d(\text{Tr}(\ln X)) \\ &= \det(X) \cdot \text{Tr}(d(\ln X)) \end{aligned}

対数関数の微分 d(lnX)=X1dXd(\ln X) = X^{-1} dXXXdXdX が可換である近似下、あるいはトレース内での巡回性により一般に成立)を用いると、

d(det(X))=det(X)Tr(X1dX)d(\det(X)) = \det(X) \text{Tr}(X^{-1} dX)

が導かれます。この証明は、行列式(体積形式)の変化がトレース(発散)に結びつく幾何学的意味を明瞭に示しています。


5. 対数行列式の微分と凸性解析#

実用上、行列式そのものよりも、その対数である ln(det(X))\ln(\det(X)) (log-determinant)を扱うことの方が圧倒的に多いです。ここではその一次微分だけでなく、二次微分(ヘッセ行列)まで踏み込み、最適化問題における重要概念である「凸性(Convexity)」について論じます。

5.1 対数行列式の一次微分 (Eq. 43)#

ヤコビの公式の両辺を det(X)\det(X) で割ることで直ちに得られます。

d(ln(det(X)))=Tr(X1dX)d(\ln(\det(X))) = \text{Tr}(X^{-1} dX)

勾配形式では:

Xln(det(X))=(X1)T\nabla_X \ln(\det(X)) = (X^{-1})^T

XX が対称行列の場合(分散共分散行列など)、X1X^{-1} も対称行列となるため、単に X1X^{-1} となります [cite: 22]。

5.2 対数行列式の二次微分 (Eq. 48 関連)#

最適化アルゴリズム(ニュートン法など)の実装には、勾配だけでなくヘッセ行列(二次微分)の情報が必要です。f(X)=ln(det(X))f(X) = \ln(\det(X)) の二階微分を導出します。

一次微分 df=Tr(X1dX)df = \text{Tr}(X^{-1} dX) を再度微分します。dXdX は定数とみなして、X1X^{-1} の変化のみを考えます。

d2f=d(Tr(X1dX))=Tr(d(X1)dX)\begin{aligned} d^2 f &= d(\text{Tr}(X^{-1} dX)) \\ &= \text{Tr}(d(X^{-1}) dX) \end{aligned}

ここで逆行列の微分公式 d(X1)=X1(dX)X1d(X^{-1}) = -X^{-1} (dX) X^{-1} を代入します。

d2f=Tr(X1(dX)X1(dX))=Tr((X1dX)2)\begin{aligned} d^2 f &= \text{Tr}\left( -X^{-1} (dX) X^{-1} (dX) \right) \\ &= -\text{Tr}\left( (X^{-1} dX)^2 \right) \end{aligned}

これが対数行列式の二階微分形式です。Page 8の式 (48) における第3項 Tr((Y1Yx)2)-\text{Tr}((Y^{-1}\frac{\partial Y}{\partial x})^2) は、まさにこの構造に対応しています [cite: 47]。

5.3 凹性(Concavity)の証明と意義#

関数 f(X)=ln(det(X))f(X) = \ln(\det(X)) は、正定値行列の集合 S++nS_{++}^n 上で 凹関数(Concave Function) です。これは最大化問題(最尤推定など)において、局所解が大域解であることを保証する極めて重要な性質です。

【証明】 任意の非ゼロ行列 VV 方向への二階微分(ヘッセ形式)が負であることを示せばよいです。 dX=VdX = V と置きます。

2f(X)[V,V]=Tr(X1VX1V)\nabla^2 f(X)[V, V] = -\text{Tr}(X^{-1} V X^{-1} V)

XX は正定値なので、コレスキー分解 X=LLTX = L L^T が可能です。

Tr(X1VX1V)=Tr(LTL1VLTL1V)=Tr(L1VLTL1VLT)(トレースの巡回性)=Tr((L1VLT)(L1VLT))\begin{aligned} \text{Tr}(X^{-1} V X^{-1} V) &= \text{Tr}(L^{-T} L^{-1} V L^{-T} L^{-1} V) \\ &= \text{Tr}(L^{-1} V L^{-T} L^{-1} V L^{-T}) \quad (\text{トレースの巡回性}) \\ &= \text{Tr}((L^{-1} V L^{-T}) (L^{-1} V L^{-T})) \end{aligned}

ここで A=L1VLTA = L^{-1} V L^{-T} と置くと、AA は対称行列です。対称行列の二乗のトレース Tr(A2)\text{Tr}(A^2) は、成分の二乗和 i,jAij2\sum_{i,j} A_{ij}^2 (フロベニウスノルムの二乗)に等しく、常に正です。 したがって、全体としてマイナス符号がついているため、

Tr(A2)<0(for V0)-\text{Tr}(A^2) < 0 \quad (\text{for } V \neq 0)

となり、二階微分が常に負定値であることが示されました。ゆえに ln(det(X))\ln(\det(X)) は凹関数です。 この事実は、「対数行列式を含む目的関数の最大化問題は、凸最適化問題として効率的に解ける」ことを数学的に保証します。


6. 実践的応用例:数式から現実世界へ#

これまで導出した公式が、実際の科学技術計算でどのように使われているか、3つの具体的なケーススタディを通して解説します。

応用例1:統計学における多変量正規分布の最尤推定 (MLE)#

機械学習や統計解析において、最も基本的かつ重要な応用例です。

【問題設定】 NN 個の pp 次元データベクトル x1,,xNx_1, \dots, x_N が、平均 μ=0\mu = 0、分散共分散行列 Σ\Sigma の多変量正規分布 N(0,Σ)\mathcal{N}(0, \Sigma) に従っているとします。このとき、データから Σ\Sigma を推定(最尤推定)したいとします。

【対数尤度関数】 確率密度関数 f(x)=(2π)p/2(detΣ)1/2exp(12xTΣ1x)f(x) = (2\pi)^{-p/2} (\det \Sigma)^{-1/2} \exp(-\frac{1}{2} x^T \Sigma^{-1} x) に基づく対数尤度 L(Σ)L(\Sigma) は以下のようになります(定数項は省略)。

L(Σ)=N2ln(det(Σ))12i=1NxiTΣ1xiL(\Sigma) = -\frac{N}{2} \ln(\det(\Sigma)) - \frac{1}{2} \sum_{i=1}^N x_i^T \Sigma^{-1} x_i

第二項はトレースを用いて書き換えられます:xiTΣ1xi=Tr(Σ1xixiT)=Tr(Σ1S)\sum x_i^T \Sigma^{-1} x_i = \text{Tr}(\Sigma^{-1} \sum x_i x_i^T) = \text{Tr}(\Sigma^{-1} S)。ここで S=xixiTS = \sum x_i x_i^T は散布行列です。

L(Σ)=N2ln(det(Σ))12Tr(Σ1S)L(\Sigma) = -\frac{N}{2} \ln(\det(\Sigma)) - \frac{1}{2} \text{Tr}(\Sigma^{-1} S)

【最適化】 L(Σ)L(\Sigma) を最大化するために、Σ\Sigma で微分して 0 と置きます。 ここで必要な道具は2つです。

  1. ln(det(Σ))Σ=Σ1\frac{\partial \ln(\det(\Sigma))}{\partial \Sigma} = \Sigma^{-1}Σ\Sigmaは対称)
  2. Tr(Σ1S)Σ=Σ1SΣ1\frac{\partial \text{Tr}(\Sigma^{-1} S)}{\partial \Sigma} = -\Sigma^{-1} S \Sigma^{-1} (逆行列の微分とトレースの性質より導出)

これらを代入します。

LΣ=N2Σ112(Σ1SΣ1)=0\frac{\partial L}{\partial \Sigma} = -\frac{N}{2} \Sigma^{-1} - \frac{1}{2} (- \Sigma^{-1} S \Sigma^{-1}) = 0

両辺に左右から Σ\Sigma を掛けます(あるいは 2Σ2\Sigma を掛けて整理)。

NΣ+S=0    Σ^=1NS-N \Sigma + S = 0 \implies \hat{\Sigma} = \frac{1}{N} S

これより、最尤推定解が「標本共分散行列」になるという有名な結果が、行列微分の計算だけで鮮やかに導出されます。この手法は、EMアルゴリズムやGraphical Lasso(スパース推定)などの高度な統計手法の基礎となっています。


応用例2:物理学(連続体力学)における質量保存則#

物理シミュレーションにおいて、物体の変形を記述する際にヤコビの公式が物理的な意味を持ちます。

【問題設定】 連続体の運動において、初期配置 XX から現在の配置 xx への写像(変形)を考えます。変形勾配テンソルを F=xXF = \frac{\partial x}{\partial X} とします。体積変化率は行列式 J=det(F)J = \det(F) で表されます。質量保存則やエネルギー保存則を記述するには、JJ の時間変化率 J˙\dot{J} が必要です。

【導出】 FF は時間 tt の関数です。連鎖律とヤコビの公式 (Eq. 41) を用います。

J˙=ddtdet(F)=det(F)Tr(F1F˙)\dot{J} = \frac{d}{dt} \det(F) = \det(F) \text{Tr}(F^{-1} \dot{F})

ここで、速度勾配 L=F˙F1L = \dot{F} F^{-1} (空間速度勾配)との関係を用います。Tr(F1F˙)=Tr(F˙F1)=Tr(L)\text{Tr}(F^{-1} \dot{F}) = \text{Tr}(\dot{F} F^{-1}) = \text{Tr}(L) です。 速度勾配のトレースは、速度ベクトル場 v\mathbf{v} の発散(divergence)に等しいため、以下の有名な「オイラーの膨張公式(Euler’s expansion formula)」が得られます。

J˙=J(v)=Jdivv\dot{J} = J (\nabla \cdot \mathbf{v}) = J \operatorname{div} \mathbf{v}

この式は、「体積の変化率(J˙/J\dot{J}/J)」が「湧き出し(div v)」に等しいことを示しており、流体力学や有限要素法(FEM)の定式化において基礎方程式の一部となります。


応用例3:最適設計におけるD-最適基準#

実験計画法やセンサ配置問題において、「情報の不確かさを最小化する」ための基準として行列式が使われます。

【問題設定】 推定パラメータ θ\theta の共分散行列が (XTX)1(X^T X)^{-1} で与えられる線形モデルを考えます(XX は計画行列)。推定の信頼楕円体の体積は det((XTX)1)=1/det(XTX)\det((X^T X)^{-1}) = 1/\det(X^T X) に比例します。 体積を最小化する(つまり情報を最大化する)ためには、det(XTX)\det(X^T X) を最大化すればよく、これは対数の単調性から f(X)=ln(det(XTX))f(X) = \ln(\det(X^T X)) の最大化と等価です。これを D-最適性(D-optimality) と呼びます。

【勾配計算】 最適化アルゴリズムを回すために、勾配が必要です。合成関数の微分則を使います。M=XTXM = X^T X と置きます。

ln(det(M))X=Tr((lndetMM)TMX)\frac{\partial \ln(\det(M))}{\partial X} = \text{Tr}\left( \left( \frac{\partial \ln \det M}{\partial M} \right)^T \frac{\partial M}{\partial X} \right)

ですが、より直接的に変分をとります。

d(lndet(XTX))=Tr((XTX)1d(XTX))=Tr((XTX)1((dX)TX+XTdX))=Tr((XTX)1(dX)TX)+Tr((XTX)1XTdX)=2Tr(X(XTX)1(dX)T)(対称性とトレースの性質)=2Tr((X(XTX)1)TdX)(トレースの転置不変性)\begin{aligned} d(\ln \det(X^T X)) &= \text{Tr}((X^T X)^{-1} d(X^T X)) \\ &= \text{Tr}((X^T X)^{-1} ( (dX)^T X + X^T dX )) \\ &= \text{Tr}((X^T X)^{-1} (dX)^T X) + \text{Tr}((X^T X)^{-1} X^T dX) \\ &= 2 \text{Tr}(X (X^T X)^{-1} (dX)^T) \quad (\text{対称性とトレースの性質}) \\ &= 2 \text{Tr}( (X (X^T X)^{-1})^T dX ) \quad (\text{トレースの転置不変性}) \end{aligned}

よって勾配は

lndet(XTX)X=2X(XTX)1\frac{\partial \ln \det(X^T X)}{\partial X} = 2 X (X^T X)^{-1}

となります。この勾配情報を用いて、実験条件 XX を逐次更新し、最適な実験計画を探索することが可能になります。


7. 結論#

『The Matrix Cookbook』Page 8に記載された公式群は、単なる記号操作のルールブックではありません。 本稿で示したように、ヤコビの公式 det(X)=det(X)Tr(X1X)\partial \det(X) = \det(X) \text{Tr}(X^{-1} \partial X) は、線形代数の固有値論、リー群の幾何学、そして微積分を結びつける深い数理的構造を持っています。

また、対数行列式の凹性逆行列の微分を組み合わせることで、

  1. 統計学: 複雑な確率分布のパラメータ推定
  2. 物理学: 連続体の変形と保存則の記述
  3. 工学: ロバストな最適設計

といった現実世界の諸問題を、統一的な数学的枠組みで記述し、解くことが可能になります。本稿が、数式変形の背後にある「意味」と「力」を理解するための一助となれば幸いです。

参考文献#

  1. Petersen, K. B., & Pedersen, M. S. (2012). The Matrix Cookbook. Technical University of Denmark. (Page 8, Eqs 32-48)
  2. Magnus, J. R., & Neudecker, H. (2019). Matrix Differential Calculus with Applications in Statistics and Econometrics. John Wiley & Sons.
  3. Boyd, S., & Vandenberghe, L. (2004). Convex Optimization. Cambridge University Press. (Log-det barrier functions)
  4. Higham, N. J. (2008). Functions of Matrices: Theory and Computation. SIAM. (Matrix exponential)
  5. Holzapfel, G. A. (2000). Nonlinear Solid Mechanics: A Continuum Approach for Engineering. Wiley. (Continuum mechanics applications)

追記: 基礎概念と微分の基本ルール (Eq. 32–38, 43–44)#

非構造化行列の仮定 (Eq. 32)#

本稿で扱う行列 XRM×NX \in \mathbb{R}^{M \times N} は、その成分 XijX_{ij} が互いに独立変数である「非構造化行列(Unstructured Matrix)」とします。

XklXij=δikδlj(32)\frac{\partial X_{kl}}{\partial X_{ij}} = \delta_{ik}\delta_{lj} \tag{32}

ここで δ\delta はクロネッカーのデルタです。もし XX が対称行列などの構造を持つ場合は、連鎖律適用時に補正が必要となりますが、Page 8の公式群は基本的にこの独立性を前提としています。

線形性と基本演算の微分 (Eq. 33–38)#

行列微分 dd(ディファレンシャル)は線形演算子であり、以下の性質を満たします。

  • 定数項: AA が定数行列のとき、 dA=0(33)dA = 0 \tag{33}
  • スカラー倍: α\alpha が定数のとき、 d(αX)=αdX(34)d(\alpha X) = \alpha dX \tag{34}
  • 和の微分: 線形性より、 d(X+Y)=dX+dY(35)d(X+Y) = dX + dY \tag{35}
  • トレースの微分: トレース Tr()\text{Tr}(\cdot) と微分演算子は可換です。 d(Tr(X))=Tr(dX)(36)d(\text{Tr}(X)) = \text{Tr}(dX) \tag{36}
  • 積の微分(ライプニッツ則): 行列積の非可換性に注意し、順序を維持する必要があります。 d(XY)=(dX)Y+X(dY)(37)d(XY) = (dX)Y + X(dY) \tag{37}
  • アダマール積・クロネッカー積: 要素ごとの積(\circ)やテンソル積(\otimes)にも積の法則が適用されます。 d(XY)=(dX)Y+X(dY)d(XY)=(dX)Y+X(dY)(38)\begin{aligned} d(X \circ Y) &= (dX) \circ Y + X \circ (dY) \\ d(X \otimes Y) &= (dX) \otimes Y + X \otimes (dY) \end{aligned} \tag{38}

転置の微分 (Eq. 43–44)#

微分演算と転置操作も可換です。

  • 転置: d(XT)=(dX)T(43)d(X^T) = (dX)^T \tag{43}
  • エルミート転置(共役転置): d(XH)=(dX)H(44)d(X^H) = (dX)^H \tag{44}

逆行列の微分 (Eq. 39)#

行列解析において頻出する重要な公式です。

【公式】

d(X1)=X1(dX)X1(39)d(X^{-1}) = -X^{-1} (dX) X^{-1} \tag{39}

【導出】 定義式 XX1=IX X^{-1} = I の両辺を微分します。dI=0dI = 0 および積の微分則 (Eq. 37) より、

(dX)X1+Xd(X1)=0(dX) X^{-1} + X d(X^{-1}) = 0

左から X1X^{-1} を乗じて整理することで得られます。スカラーの微分 1/x2-1/x^2 と似ていますが、行列積の非可換性により dXdXX1X^{-1} に挟まれる形になる点が重要です。


行列式の微分:ヤコビの公式 (Eq. 40–42, 47)#

Page 8の中核をなすのが、行列式の微分に関する一連の公式(ヤコビの公式)です。

基本公式#

【余因子形式】

d(det(X))=Tr(adj(X)dX)(40)d(\det(X)) = \text{Tr}(\text{adj}(X) dX) \tag{40}

【逆行列形式】 (XX が正則な場合)

d(det(X))=det(X)Tr(X1dX)(41)d(\det(X)) = \det(X) \text{Tr}(X^{-1} dX) \tag{41}

【導出のアプローチ】

  1. 余因子展開による証明: ラプラス展開 det(X)=jXijCij\det(X) = \sum_j X_{ij} C_{ij}CijC_{ij} は余因子)を XijX_{ij} で偏微分すると、余因子そのものになります。したがって det(X)/X=C=adj(X)T\partial \det(X) / \partial X = C = \text{adj}(X)^T となり、全微分をとると Eq. 40 が得られます。
  2. 固有値による解釈: det(X)=λi\det(X) = \prod \lambda_i の対数微分 dλi/λi\sum d\lambda_i / \lambda_iTr(X1dX)\text{Tr}(X^{-1}dX) と等価であることからも導けます。

対数行列式の微分#

実用上最も多用される形です。Eq. 41 の両辺を det(X)\det(X) で割ることで得られます。

d(ln(det(X)))=Tr(X1dX)(42)d(\ln(\det(X))) = \text{Tr}(X^{-1} dX) \tag{42}

勾配形式では ln(det(X))X=(X1)T\frac{\partial \ln(\det(X))}{\partial X} = (X^{-1})^T となり、非常にシンプルな形に帰着します。

余因子展開の恒等式 (Eq. 47)#

Page 8 には、微分の定義に関連して以下の恒等式も記載されています。

kdet(X)XikXjk=δijdet(X)(47)\sum_{k} \frac{\partial \det(X)}{\partial X_{ik}} X_{jk} = \delta_{ij} \det(X) \tag{47}

【解説】 det(X)Xik\frac{\partial \det(X)}{\partial X_{ik}} は余因子 (adj(X))ki(\text{adj}(X))_{ki} に等しいため、この式は (adj(X))X=det(X)I(\text{adj}(X)) X = \det(X) I という逆行列の定義式そのものを成分表示したものです。i=ji=j のときは行列式そのものになり、iji \neq j のときは 0 になるという性質を表しています。


スカラーパラメータによる微分 (Eq. 45–46)#

行列 YY があるスカラー変数 xx の関数である場合(Y=Y(x)Y = Y(x))、連鎖律(Chain Rule)を用いて以下のように記述されます。

ddet(Y)dx=det(Y)Tr(Y1dYdx)(46)\frac{d \det(Y)}{dx} = \det(Y) \text{Tr}\left( Y^{-1} \frac{dY}{dx} \right) \tag{46}

※ 原典のナンバリングでは、文脈により (45) や (46) として扱われることがありますが、ここでは明示的にスカラー微分として Eq. 46 を参照します。

【物理的応用】 連続体力学において、YY を変形勾配テンソル FFxx を時間 tt と見なせば、J˙=JTr(F˙F1)=Jdiv(v)\dot{J} = J \text{Tr}(\dot{F}F^{-1}) = J \operatorname{div}(\mathbf{v}) (オイラーの膨張公式)となり、質量保存則の記述に直結します。


二階微分と凸性 (Eq. 48)#

最適化問題(ニュートン法など)で必要となる、行列式の二階微分です。

d2det(Y)dx2=det(Y)[Tr(Y1d2Ydx2)+{Tr(Y1dYdx)}2Tr((Y1dYdx)2)](48)\begin{aligned} \frac{d^2 \det(Y)}{dx^2} = \det(Y) \bigg[ &\text{Tr}\left( Y^{-1} \frac{d^2 Y}{dx^2} \right) \\ &+ \left\{ \text{Tr}\left( Y^{-1} \frac{dY}{dx} \right) \right\}^2 \\ &- \text{Tr}\left( \left( Y^{-1} \frac{dY}{dx} \right)^2 \right) \bigg] \end{aligned} \tag{48}

【対数行列式の凸性(Concavity)】 対数行列式 f(X)=ln(det(X))f(X) = \ln(\det(X)) の二階微分(ヘッセ行列)を考えると、Eq. 48 の第3項に関連する形が現れます。

d2(ln(det(X)))=Tr((X1dX)2)d^2 (\ln(\det(X))) = -\text{Tr}((X^{-1} dX)^2)

この値は常に負(負定値)であるため、ln(det(X))\ln(\det(X)) は正定値行列の空間上で凹関数となります。この事実は、多変量解析や実験計画法(D-最適基準)における最大化問題が、凸最適化として効率的に解けることを数学的に保証します。

『The Matrix Cookbook』Page 8完全解読:行列微分の構造・証明・応用
https://ss0832.github.io/posts/20260110_the_matrix_cookbook_2/
Author
ss0832
Published at
2026-01-10
License
CC BY-NC-SA 4.0

Related Posts

大規模言語モデルにおけるChain-of-Thought Promptingの数理的定式化と推論能力の創発に関する考察
2026-01-11
Wei et al. (2022) によって提案されたChain-of-Thought (CoT) Promptingについて、その数理的な定義、標準的なFew-Shot Promptingとの比較、モデル規模に応じた推論能力の創発現象(Emergent Abilities)、および算術・常識・記号推論タスクにおける定量的な評価について、原著論文に基づき解説する。
大規模言語モデルにおける「思考の連鎖」の不忠実性:推論プロセスの乖離と正当化に関する包括的分析
2026-01-11
Turpin et al. (2023) による研究『Language Models Don't Always Say What They Think』は、Chain-of-Thought (CoT) プロンプティングが生成する推論プロセス(説明)が、必ずしもモデルの実際の予測根拠を反映していないことを実証した。本稿では、CoTにおける「忠実性(Faithfulness)」の欠如、バイアス特徴量による推論の歪曲、および事後正当化(Rationalization)のメカニズムについて、数理的定義、歴史的背景、および実証実験の結果に基づき詳細に論じる。
大規模言語モデルの推論におけるSelf-Consistency: 数理的定式化と多様な推論パスの周辺化による精度向上
2026-01-11
Wang et al. (2023) によって提案されたSelf-Consistency (自己無撞着性) は、Chain-of-Thought Promptingにおける従来の貪欲的デコーディングを、多様な推論パスのサンプリングと周辺化プロセスに置き換えることで、LLMの推論能力を大幅に向上させる手法である。本稿では、その確率論的な定義、貪欲法との数理的な比較、および算術・常識推論タスクにおける実証結果について、原著論文に基づき詳細に論じる。
SELF-REFINE: 大規模言語モデルにおける自己フィードバックを用いた反復的精緻化の数理と実証
2026-01-11
Madaan et al. (2023) によって提案されたSELF-REFINEは、追加の教師あり学習や強化学習(RL)を必要とせず、単一のLLMが自身の出力に対してフィードバックを生成し、反復的に修正を行うことで品質を向上させるフレームワークである。本稿では、そのアルゴリズム的定式化、従来の事後修正手法との比較、および多様な生成タスクにおける有効性について、原著論文に基づき詳細に論じる。
Tree of Thoughts: 大規模言語モデルにおける意図的推論と探索アルゴリズムの統合的枠組み
2026-01-11
Yao et al. (2023) によって提案されたTree of Thoughts (ToT) は、Chain-of-Thought (CoT) の概念を一般化し、LLMの推論プロセスを木構造上の探索問題として再定式化するフレームワークである。本稿では、ToTの数理的定義、認知科学における二重過程理論との関連、BFS-DFSを用いた探索アルゴリズムの実装詳細、および数理的・創作的タスクにおける実証的成果について、原著論文に基づき詳細に論じる。
Graph of Thoughts: 大規模言語モデルにおける任意のグラフ構造を用いた推論プロセスの数理的定式化と実証
2026-01-11
Besta et al. (2023) によって提案されたGraph of Thoughts (GoT) は、Chain-of-Thought (CoT) や Tree of Thoughts (ToT) の概念を拡張し、LLMの推論単位(Thought)を任意の有向グラフの頂点としてモデル化するフレームワークである。本稿では、GoTのグラフ理論に基づく形式的定義、従来のプロンプティング手法に対する構造的優位性(Latency-Volume Tradeoff)、およびソーティングや集合演算などの複雑なタスクにおける実証的成果について、原著論文に基づき詳細に論じる。