Home
6458 words
32 minutes
『The Matrix Cookbook』Page 10完全解読:逆行列の成分微分・固有値摂動論・基本形式

last_modified: 2026-01-10

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

1. 序論:微細構造への視点と基本への回帰#

『The Matrix Cookbook』のPage 10は、これまで扱ってきた「逆行列」や「行列式」といった大域的な演算子の微分を、より微細な成分レベルで記述する公式群から始まります。これは、感度解析や数値計算の実装において、「特定の成分 XijX_{ij} が変化したとき、逆行列の成分 (X1)kl(X^{-1})_{kl} はどう動くか?」といった問いに答えるための強力なツールです。

また、本ページの中核をなすのが、固有値と固有ベクトルの微分です。これは量子力学や振動工学において「摂動論(Perturbation Theory)」として知られる分野の線形代数的な基礎であり、主成分分析(PCA)のロバスト性解析など、現代のデータサイエンスとも密接に関わります。

後半では、行列微分の「九九」とも呼べる、ベクトルやスカラーの一次形式の微分公式が整理されており、これらは複雑な機械学習モデルの勾配計算を構成する原子(atom)となります。


2. 逆行列の微分の深化 (Eq. 60–65)#

Page 8-9 で学んだ逆行列の微分公式 d(X1)=X1(dX)X1d(X^{-1}) = -X^{-1} (dX) X^{-1} を、より具体的な形式や成分表示に応用します。

2.1 逆行列の成分ごとの微分 (Eq. 60)#

行列 XX の特定の成分 XijX_{ij} が変化した際の、逆行列の成分 (X1)kl(X^{-1})_{kl} の変化率です。

【公式】

(X1)klXij=(X1)ki(X1)jl(60)\frac{\partial (X^{-1})_{kl}}{\partial X_{ij}} = -(X^{-1})_{ki} (X^{-1})_{jl} \tag{60}

【証明】 基本公式 d(X1)=X1(dX)X1d(X^{-1}) = -X^{-1} (dX) X^{-1} を成分で考えます。 XijX_{ij} のみが変化する場合、dXdX(i,j)(i, j) 成分のみが 1 で他は 0 の行列(シングルエントリ行列 JijJ^{ij})となります。

dX=eiejTdX = e_i e_j^T

これを代入すると、

X1Xij=X1(eiejT)X1=(X1ei)(ejTX1)\frac{\partial X^{-1}}{\partial X_{ij}} = -X^{-1} (e_i e_j^T) X^{-1} = -(X^{-1} e_i) (e_j^T X^{-1})

(k,l)(k, l) 成分を取り出すために、左から ekTe_k^T、右から ele_l を掛けます。

[X1Xij]kl=(ekTX1ei)(ejTX1el)=(X1)ki(X1)jl\left[ \frac{\partial X^{-1}}{\partial X_{ij}} \right]_{kl} = - (e_k^T X^{-1} e_i) (e_j^T X^{-1} e_l) = - (X^{-1})_{ki} (X^{-1})_{jl}

これで証明完了です。 【意義】 この公式は、行列の特定の要素の誤差が逆行列全体にどのように伝播するか(条件数や誤差解析)を評価する際に直接使用されます。

2.2 逆行列を含む二次形式・トレースの微分 (Eq. 61–64)#

これらは統計学や最適化で頻出する形式です。

【公式一覧】

aTX1bX=XTabTXT(61)\frac{\partial \mathbf{a}^T X^{-1} \mathbf{b}}{\partial X} = -X^{-T} \mathbf{a} \mathbf{b}^T X^{-T} \tag{61} det(X1)X=det(X1)(X1)T(62)\frac{\partial \det(X^{-1})}{\partial X} = -\det(X^{-1}) (X^{-1})^T \tag{62} Tr(AX1B)X=(X1BAX1)T(63)\frac{\partial \operatorname{Tr}(A X^{-1} B)}{\partial X} = -(X^{-1} B A X^{-1})^T \tag{63} Tr ⁣((X+A)1)X=(X+A)T(X+A)T(64)\frac{\partial \operatorname{Tr}\!\left((X+A)^{-1}\right)}{\partial X} = -(X+A)^{-T}(X+A)^{-T} \tag{64}

【Eq. 61 の導出】 スカラー関数 f=aTX1b=Tr(aTX1b)f = \mathbf{a}^T X^{-1} \mathbf{b} = \text{Tr}(\mathbf{a}^T X^{-1} \mathbf{b}) とみなします(スカラーのトレースは自身)。

df=Tr(aTd(X1)b)=Tr(aT(X1dXX1)b)=Tr(X1baTX1dX)(トレースの巡回性)\begin{aligned} df &= \text{Tr}(\mathbf{a}^T d(X^{-1}) \mathbf{b}) \\ &= \text{Tr}(\mathbf{a}^T (-X^{-1} dX X^{-1}) \mathbf{b}) \\ &= -\text{Tr}(X^{-1} \mathbf{b} \mathbf{a}^T X^{-1} dX) \quad (\text{トレースの巡回性}) \end{aligned}

勾配は dXdX の係数行列の転置なので、

fX=(X1baTX1)T=XTabTXT\frac{\partial f}{\partial X} = -(X^{-1} \mathbf{b} \mathbf{a}^T X^{-1})^T = -X^{-T} \mathbf{a} \mathbf{b}^T X^{-T}

これは原典の (X1)TabT(X1)T-(X^{-1})^T \mathbf{a} \mathbf{b}^T (X^{-1})^T と一致します((AB)T=BTAT(A B)^T = B^T A^T に注意)。

【Eq. 62 の導出】 det(X1)=1/det(X)\det(X^{-1}) = 1/\det(X) です。商の微分則より、

(1/detX)X=1(detX)2detXX\frac{\partial (1/\det X)}{\partial X} = -\frac{1}{(\det X)^2} \frac{\partial \det X}{\partial X}

ヤコビの公式 detXX=detX(XT)\frac{\partial \det X}{\partial X} = \det X (X^{-T}) を代入すれば、直ちに得られます。

2.3 変数変換の連鎖律 (Eq. 65)#

関数 JJ が行列 AA の関数であり、かつ AA の逆行列 W=A1W = A^{-1} の関数として表現されている場合の連鎖律です。

【公式】

JA=ATJWAT(65)\frac{\partial J}{\partial A} = -A^{-T} \frac{\partial J}{\partial W} A^{-T} \tag{65}

【導出】 成分ごとの連鎖律 JAij=k,lJWklWklAij\frac{\partial J}{\partial A_{ij}} = \sum_{k,l} \frac{\partial J}{\partial W_{kl}} \frac{\partial W_{kl}}{\partial A_{ij}} を考えます。 Eq. 60 より WklAij=WkiWjl\frac{\partial W_{kl}}{\partial A_{ij}} = -W_{ki} W_{jl} です。これを代入すると、

JAij=k,lJWkl(WkiWjl)=k,l(WT)ik[JW]kl(WT)lj\frac{\partial J}{\partial A_{ij}} = \sum_{k,l} \frac{\partial J}{\partial W_{kl}} (-W_{ki} W_{jl}) = - \sum_{k,l} (W^T)_{ik} \left[ \frac{\partial J}{\partial W} \right]_{kl} (W^T)_{lj}

これを行列積の形で書けば、

JA=WTJWWT=ATJWAT\frac{\partial J}{\partial A} = - W^T \frac{\partial J}{\partial W} W^T = - A^{-T} \frac{\partial J}{\partial W} A^{-T}

となります。これは、パラメータを「行列そのもの」から「その逆行列(精度行列など)」に変換した際の勾配の変化則を与えます。


3. 固有値の微分 (Derivatives of Eigenvalues)#

行列 XX が微小変化したとき、その固有値や固有ベクトルはどう変化するか? これに答えるのが Eq. 66–68 です。

3.1 固有値の総和と積 (Eq. 66)#

【公式】

Xeig(X)=Tr(X)X=IXeig(X)=det(X)X=det(X)XT(66)\begin{aligned} \frac{\partial}{\partial X} \sum \text{eig}(X) &= \frac{\partial \text{Tr}(X)}{\partial X} = I \\ \frac{\partial}{\partial X} \prod \text{eig}(X) &= \frac{\partial \det(X)}{\partial X} = \det(X) X^{-T} \end{aligned} \tag{66}

【解説】 これらは固有値の基本性質 λi=Tr(X)\sum \lambda_i = \text{Tr}(X) および λi=det(X)\prod \lambda_i = \det(X) から自明に導かれます。個々の固有値の挙動を知る必要がない場合(全体の統計量のみ必要な場合)は、これらを用います。

3.2 対称行列の固有値・固有ベクトルの微分 (Eq. 67, 68)#

行列 AA が実対称行列であり、固有値 λi\lambda_i が重複を持たない(distinct)場合、個々の固有値・固有ベクトルの微分は以下の美しい形で与えられます。

【公式】

dλi=viT(dA)vi(67)d\lambda_i = \mathbf{v}_i^T (dA) \mathbf{v}_i \tag{67} vi=jivjvjT(A)viλiλj(68)\partial \mathbf{v}_i = \sum_{j \ne i} \frac{\mathbf{v}_j \mathbf{v}_j^{T} (\partial A)\,\mathbf{v}_i} {\lambda_i - \lambda_j} \tag{68}

ここで vi\mathbf{v}_i は正規化された固有ベクトル (viTvi=1\mathbf{v}_i^T \mathbf{v}_i = 1)、()+(\cdot)^+ はムーア・ペンローズ擬似逆行列です。

【Eq. 67(固有値)の証明:ヘルマン-ファインマンの定理】 固有値方程式 Avi=λiviA \mathbf{v}_i = \lambda_i \mathbf{v}_i の全微分をとります。

(dA)vi+A(dvi)=(dλi)vi+λi(dvi)(dA) \mathbf{v}_i + A (d\mathbf{v}_i) = (d\lambda_i) \mathbf{v}_i + \lambda_i (d\mathbf{v}_i)

左から viT\mathbf{v}_i^T を掛けます。

viT(dA)vi+viTA(dvi)=dλiviTvi+λiviT(dvi)\mathbf{v}_i^T (dA) \mathbf{v}_i + \mathbf{v}_i^T A (d\mathbf{v}_i) = d\lambda_i \mathbf{v}_i^T \mathbf{v}_i + \lambda_i \mathbf{v}_i^T (d\mathbf{v}_i)

ここで以下の性質を使います。

  1. 正規化条件 viTvi=1\mathbf{v}_i^T \mathbf{v}_i = 1 より、その微分は 2viTdvi=02 \mathbf{v}_i^T d\mathbf{v}_i = 0、つまり viTdvi=0\mathbf{v}_i^T d\mathbf{v}_i = 0
  2. 対称性より viTA=(Avi)T=(λivi)T=λiviT\mathbf{v}_i^T A = (A \mathbf{v}_i)^T = (\lambda_i \mathbf{v}_i)^T = \lambda_i \mathbf{v}_i^T。 これらを代入すると、第2項と第4項(右辺第2項)が相殺されます(λiviTdvi\lambda_i \mathbf{v}_i^T d\mathbf{v}_i)。 残るのは
viT(dA)vi=dλi\mathbf{v}_i^T (dA) \mathbf{v}_i = d\lambda_i

のみです。

【Eq. 68(固有ベクトル)の直感的理解】 固有ベクトルの変化 dvid\mathbf{v}_i は、他の固有ベクトル vj(ji)\mathbf{v}_j (j \neq i) の線形結合で表されます。微分の式を変形すると

(λiIA)dvi=(dAdλiI)vi(\lambda_i I - A) d\mathbf{v}_i = (dA - d\lambda_i I) \mathbf{v}_i

となります。(λiIA)(\lambda_i I - A) はランク落ちしており逆行列を持ちませんが、vi\mathbf{v}_i と直交する部分空間では可逆です。その一般化逆行列が (λiIA)+(\lambda_i I - A)^+ であり、これを掛けることで Eq. 68 が得られます。

【応用:レイリー商と振動解析】 レイリー商 R(x)=xTAxxTxR(x) = \frac{x^T A x}{x^T x} の停留値は固有値に一致します。Eq. 67 は、構造物が損傷して剛性行列 AA が微小変化したとき、固有振動数(固有値の平方根)がどう変化するかを予測する式そのものであり、構造ヘルスモニタリングの基礎理論となっています。


4. 行列・ベクトル・スカラーの基本一次微分 (Eq. 69–75)#

最後に、行列微分の基本構成要素となる一次形式(First Order Forms)の微分です。これらは定義そのものですが、レイアウト(転置の有無)に注意が必要です。

4.1 基本線形形式 (Eq. 69–72)#

【公式一覧】

xTax=a(69)\frac{\partial \mathbf{x}^T \mathbf{a}}{\partial \mathbf{x}} = \mathbf{a} \tag{69} aTXbX=abT(70)\frac{\partial \mathbf{a}^T X \mathbf{b}}{\partial X} = \mathbf{a} \mathbf{b}^T \tag{70} aTXTbX=baT(71)\frac{\partial \mathbf{a}^T X^T \mathbf{b}}{\partial X} = \mathbf{b} \mathbf{a}^T \tag{71} aTXaX=aaT(72)\frac{\partial \mathbf{a}^T X \mathbf{a}}{\partial X} = \mathbf{a} \mathbf{a}^T \tag{72}

【解説】 これらは「係数が残る」というスカラー微分の直感(ax/x=a\partial ax/\partial x = a)を行列・ベクトルに拡張したものです。

  • Eq. 70: aTXb=ijaiXijbj\mathbf{a}^T X \mathbf{b} = \sum_{ij} a_i X_{ij} b_jXijX_{ij} で微分すると aibja_i b_j が残ります。これを並べた行列は直積 abT\mathbf{a} \mathbf{b}^T です。
  • Eq. 71: XTX^T がある場合、aTXTb=bTXa\mathbf{a}^T X^T \mathbf{b} = \mathbf{b}^T X \mathbf{a} と転置してから Eq. 70 を適用すれば baT\mathbf{b} \mathbf{a}^T が得られます。

4.2 成分微分とシングルエントリ行列 (Eq. 73–75)#

成分ごとの微分を形式的に扱うための記法です。

【公式】

XXij=Jij(73)\frac{\partial X}{\partial X_{ij}} = J^{ij} \tag{73} (XA)ijXmn=δimAnj=(JmnA)ij(74)\frac{\partial (XA)_{ij}}{\partial X_{mn}} = \delta_{im} A_{nj} = (J^{mn} A)_{ij} \tag{74} (XTA)ijXmn=δinAmj=(JnmA)ij(75)\frac{\partial (X^T A)_{ij}}{\partial X_{mn}} = \delta_{in} A_{mj} = (J^{nm} A)_{ij} \tag{75}

【解説:シングルエントリ行列 JijJ^{ij} ここで JijJ^{ij} は、(i,j)(i, j) 成分のみが 1 で他が 0 の行列(標準基底行列 EijE_{ij} とも書かれる)を指します。

  • Eq. 73: 行列 XX 全体をその成分 XijX_{ij} で偏微分すると、その成分の場所だけ 1 が立ちます。
  • Eq. 74: 積 XAXA(i,j)(i, j) 成分 (XA)ij=kXikAkj(XA)_{ij} = \sum_k X_{ik} A_{kj}XmnX_{mn} で微分します。k=nk=n かつ i=mi=m のときのみ値 AnjA_{nj} が残ります。これをクロネッカーのデルタ δim\delta_{im} で表現しています。

これらの微視的な微分則は、ニューラルネットワークのバックプロパゲーションや、テンソル計算ライブラリの自動微分(Autograd)の基礎ロジックを構成しています。


5. 結論#

『The Matrix Cookbook』Page 10 は、一見すると地味な成分計算や基本的な恒等式に見えますが、その応用範囲は広大です。

  1. 逆行列の成分微分 (Eq. 60): 数値計算の安定性解析や条件数の評価。
  2. 固有値摂動 (Eq. 67): 物理系の振動解析、主成分分析のロバスト性評価。
  3. 基本線形形式 (Eq. 69-72): 最小二乗法からディープラーニングまで、あらゆる最適化問題の勾配計算の第一歩。

これらの公式を「手足のように」使えるようになることで、複雑な行列関数の微分も、要素還元的に分解して解くことが可能になります。

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

Page 10 で扱った公式群は、単なる微分の計算練習ではありません。これらは、橋梁の健全性診断からAIの学習アルゴリズムに至るまで、現代技術の根幹を支える数理モデルの一部となっています。ここでは3つの具体的な応用シナリオを紹介します。

応用例1:構造ヘルスモニタリング(固有値摂動論の応用)#

土木工学や機械工学において、橋やビルの「固有振動数」の変化を検知することで、構造物の損傷(クラックや腐食)を発見する技術があります。これには Eq. 67(固有値の微分) が直接的に応用されています。

【問題設定】 構造物の振動は、剛性行列 KK と質量行列 MM を用いた一般化固有値問題 Kv=λMvK \mathbf{v} = \lambda M \mathbf{v} で記述されます(ここでは簡単のため M=IM=I とし、標準固有値問題 Kv=λvK \mathbf{v} = \lambda \mathbf{v} を考えます)。 λ\lambda は固有振動数の二乗に比例します。構造物が損傷を受けると、剛性がわずかに低下します(KK+δKK \to K + \delta K)。このとき、計測可能な固有値 λ\lambda はどう変化するでしょうか?

【解析】 Eq. 67 λi=viT(A)vi\partial \lambda_i = \mathbf{v}_i^T (\partial A) \mathbf{v}_i を適用します。ここで A=KA=K です。

δλiviT(δK)vi\delta \lambda_i \approx \mathbf{v}_i^T (\delta K) \mathbf{v}_i

この式は極めて重要な示唆を含んでいます。

  1. 損傷の検知: δK\delta K(剛性低下)は通常負定値であるため、δλi\delta \lambda_i も負になります。つまり、固有振動数が下がれば損傷の疑いがあります。
  2. 損傷箇所の特定: ベクトル vi\mathbf{v}_i は「モードシェイプ(揺れ方)」を表します。もし損傷箇所(δK\delta K が大きい場所)が、あるモード vi\mathbf{v}_i の節(揺れない点)付近であれば、viT(δK)vi\mathbf{v}_i^T (\delta K) \mathbf{v}_i はほぼゼロになり、その固有値 λi\lambda_i は変化しません。逆に、腹(大きく揺れる点)付近であれば感度は最大になります。 したがって、複数のモードの固有値変化 δλ1,δλ2,\delta \lambda_1, \delta \lambda_2, \dots を観測し、この式を逆解析することで、「どこが壊れているか(δK\delta K の分布)」を推定できるのです。

応用例2:数値計算の精度保証(逆行列成分微分の応用)#

連立一次方程式 Ax=bAx = b をコンピュータで解く際、係数行列 AA に含まれる誤差(測定誤差や丸め誤差)が、解 xx にどれほど影響を与えるかを知る必要があります。これには Eq. 60(逆行列の成分微分) が使われます。

【問題設定】 解は x=A1bx = A^{-1} b で与えられます。AA のある成分 AijA_{ij} が微小に δAij\delta A_{ij} だけずれたとき、解の第 kk 成分 xkx_k の誤差 δxk\delta x_k を評価します。

【解析】 xk=l(A1)klblx_k = \sum_l (A^{-1})_{kl} b_l です。連鎖律と Eq. 60 を用います。

xkAij=l(A1)klAijbl=l((A1)ki(A1)jl)bl=(A1)kil(A1)jlbl\begin{aligned} \frac{\partial x_k}{\partial A_{ij}} &= \sum_l \frac{\partial (A^{-1})_{kl}}{\partial A_{ij}} b_l \\ &= \sum_l \left( -(A^{-1})_{ki} (A^{-1})_{jl} \right) b_l \\ &= -(A^{-1})_{ki} \sum_l (A^{-1})_{jl} b_l \end{aligned}

ここで、l(A1)jlbl\sum_l (A^{-1})_{jl} b_l は、元の解の第 jj 成分 xjx_j そのものです。したがって、

δxk(A1)kixjδAij\delta x_k \approx -(A^{-1})_{ki} x_j \cdot \delta A_{ij}

という極めてシンプルな関係式が得られます。 この式は、「逆行列の要素 (A1)ki(A^{-1})_{ki} が大きい場合」、あるいは「解の成分 xjx_j が大きい場合」に、誤差が増幅されることを示しています。これが「条件数(Condition Number)」による誤差解析の、成分レベルでの詳細な内訳となります。


応用例3:ディープラーニングのバックプロパゲーション(基本線形形式の応用)#

ニューラルネットワークの学習において、勾配計算(誤差逆伝播法)は行列微分の連続です。ここでは、最も基本的な全結合層(Affine層)の勾配導出に、Eq. 70, 71(一次形式の微分) がどう使われているかを確認します。

【問題設定】 ある層の入力ベクトルを h\mathbf{h}、重み行列を WW、バイアスを b\mathbf{b} とし、出力 z=Wh+b\mathbf{z} = W \mathbf{h} + \mathbf{b} を計算します。 最終的な損失関数 LL に対する出力の勾配 δ=Lz\boldsymbol{\delta} = \frac{\partial L}{\partial \mathbf{z}} (誤差信号)が上層から伝わってきたとき、重み WW に対する勾配 LW\frac{\partial L}{\partial W} を求めたいとします。

【解析】 連鎖律により、LW=LzzW\frac{\partial L}{\partial W} = \frac{\partial L}{\partial \mathbf{z}} \frac{\partial \mathbf{z}}{\partial W} となりますが、これはテンソル計算になるため、スカラー形式の微分(変分)で考えます。 損失の変化分 dLdL は、

dL=δTdzdL = \boldsymbol{\delta}^T d\mathbf{z}

ここで z=Wh+b\mathbf{z} = W \mathbf{h} + \mathbf{b} なので、dz=(dW)hd\mathbf{z} = (dW) \mathbf{h} です(h,b\mathbf{h}, \mathbf{b} は固定)。

dL=δT(dW)h=Tr(δT(dW)h)=Tr(hδTdW)dL = \boldsymbol{\delta}^T (dW) \mathbf{h} = \text{Tr}(\boldsymbol{\delta}^T (dW) \mathbf{h}) = \text{Tr}(\mathbf{h} \boldsymbol{\delta}^T dW)

行列微分の定義 df=Tr(GTdX)df = \text{Tr}(G^T dX) と比較すると、勾配 G=LWG = \frac{\partial L}{\partial W}(hδT)T(\mathbf{h} \boldsymbol{\delta}^T)^T すなわち δhT\boldsymbol{\delta} \mathbf{h}^T となります。

これを Page 10 の公式 Eq. 70 aTXbX=abT\frac{\partial \mathbf{a}^T X \mathbf{b}}{\partial X} = \mathbf{a} \mathbf{b}^T を使って直接導いてみましょう。 損失関数 LLWW の関数として局所的に線形近似すると、LδT(Wh)+constL \approx \boldsymbol{\delta}^T (W \mathbf{h}) + \text{const} とみなせます(z\mathbf{z} への依存性を通じて)。 ここで a=δ,X=W,b=h\mathbf{a} = \boldsymbol{\delta}, X = W, \mathbf{b} = \mathbf{h} と置けば、Eq. 70 より直ちに

(δTWh)W=δhT\frac{\partial (\boldsymbol{\delta}^T W \mathbf{h})}{\partial W} = \boldsymbol{\delta} \mathbf{h}^T

が得られます。 教科書でよく見る「誤差 δ\delta と入力 hh の直積」という更新則は、実は Page 10 の最も基本的な一次形式の微分公式そのものなのです。

参考文献#

  1. Petersen, K. B., & Pedersen, M. S. (2012). The Matrix Cookbook. Technical University of Denmark. (Page 10, Eqs 60-75)
  2. Magnus, J. R., & Neudecker, H. (2019). Matrix Differential Calculus with Applications in Statistics and Econometrics. John Wiley & Sons. (Eigenvalue derivatives)
  3. Golub, G. H., & Van Loan, C. F. (2013). Matrix Computations. Johns Hopkins University Press. (Perturbation theory)

補足:行列微分を「スカラーの微分」として直感的に理解する#

Eq. 61–64 に登場する複雑な数式(det\detTr\text{Tr}、逆行列の微分)は、一見すると直感的に捉えにくいものです。しかし、これらはすべて高校数学で学ぶ 1/x1/x の微分」のアナロジー として理解することが可能です。

以下に、行列演算をスカラー演算に「翻訳」して解釈するための視点を提供します。

1. 記号の「翻訳」ルール#

行列の世界の記号を、単純な数値(スカラー)に置き換えて考えます。

行列の世界数字(スカラー)の世界対応する概念
XXxx変数
X1X^{-1}1/x1/x逆数
det(X)\det(X)xx (あるいは xnx^n体積・大きさ
Tr(X)\text{Tr}(X)xx (あるいは x\sum x線形和
A,B,a,bA, B, \mathbf{a}, \mathbf{b}a,ba, b定数

基本となるスカラーの微分公式は以下の通りです。

(1x)=1x2\left( \frac{1}{x} \right)' = -\frac{1}{x^2}

行列微分の公式も、この「マイナスがつきて、逆数が2回掛かる」という構造を共有しています。

2. 各公式の直感的解釈#

Eq. 61: aTX1b\mathbf{a}^T X^{-1} \mathbf{b} の微分

  • スカラー翻訳: abx\frac{ab}{x} の微分 (abx)=abx2=1xab1x\left( \frac{ab}{x} \right)' = -\frac{ab}{x^2} = - \frac{1}{x} \cdot a \cdot b \cdot \frac{1}{x}
  • 行列の式: XTabTXT-X^{-T} \mathbf{a} \mathbf{b}^T X^{-T}
    • 定数ベクトル a,b\mathbf{a}, \mathbf{b} が真ん中に残り、その両側を X1X^{-1}(の転置)が挟み込む形になります。

Eq. 62: det(X1)\det(X^{-1}) の微分

  • スカラー翻訳: 1/x1/x の微分 (1x)=1x2=(1x)1x\left( \frac{1}{x} \right)' = -\frac{1}{x^2} = - \left(\frac{1}{x}\right) \cdot \frac{1}{x}
  • 行列の式: det(X1)(X1)T-\det(X^{-1}) (X^{-1})^T
    • det(X1)\det(X^{-1}) が最初の 1/x1/x に、(X1)T(X^{-1})^T が2つ目の 1/x1/x に相当します。

Eq. 63: Tr(AX1B)\text{Tr}(A X^{-1} B) の微分

  • スカラー翻訳: abx\frac{ab}{x} の微分 (abx)=abx2\left( \frac{ab}{x} \right)' = -\frac{ab}{x^2}
  • 行列の式: (X1BAX1)T-(X^{-1} B A X^{-1})^T
    • 式の中に X1X1X^{-1} \dots X^{-1} という形で、逆行列が2回登場している点に注目してください。これが 1/x21/x^2 の構造です。

Eq. 64: Tr((X+A)1)\text{Tr}((X+A)^{-1}) の微分

  • スカラー翻訳: 1x+a\frac{1}{x+a} の微分 (1x+a)=1(x+a)2\left( \frac{1}{x+a} \right)' = -\frac{1}{(x+a)^2}
  • 行列の式: (X+A)T(X+A)T-(X+A)^{-T}(X+A)^{-T}
    • まさに (X+A)1(X+A)^{-1} の2乗(積)そのものです。

3. まとめ#

逆行列を含む行列微分の公式は、以下の3つのルールに集約されます。

  1. 符号: 必ずマイナス(-)がつく。
  2. 次数: 逆行列 X1X^{-1} が必ず2回作用する(1/x21/x^2 の構造)。
  3. 定数: 定数行列やベクトルはそのまま残る。

この視点を持つことで、数式の誤りを検算したり、新しい公式を推測したりすることが容易になります。

補足:Eq.69〜75 一次形式のスカラー翻訳リスト#

行列微分で最もつまずきやすいのが、「いつ転置 T^T がつくのか?」という点です。 Eq. 69〜75 は、スカラーで言うところの y=axy = ax の微分ですが、行列の世界では 「変数の位置」「結果の形(次元)」 によって転置の有無が変わります。


【ベクトル×ベクトル】内積の微分 (Eq. 69, 70)#

公式:

(xTa)x=a,(aTx)x=a\frac{\partial ( \mathbf{x}^T \mathbf{a} )}{\partial \mathbf{x}} = \mathbf{a}, \quad \frac{\partial ( \mathbf{a}^T \mathbf{x} )}{\partial \mathbf{x}} = \mathbf{a}
  • スカラー翻訳: xaxa(または axax)の微分
    • 思考: y=axy = ax です。
    • 微分: aa
  • 行列の事情:
    • 内積 xTa\mathbf{x}^T \mathbf{a} はスカラーなので、順序を入れ替えても値は同じ(xTa=aTx\mathbf{x}^T \mathbf{a} = \mathbf{a}^T \mathbf{x})です。
    • そのため、どちらを微分しても結果は同じベクトル a\mathbf{a} になります。
    • 注意: 分母レイアウト(The Matrix Cookbookの標準)では、列ベクトル x\mathbf{x} での微分結果は列ベクトル a\mathbf{a} になります。

【行列×ベクトル】線形変換の微分 (Eq. 71, 72)#

公式:

(Ax)x=AT,(xTA)x=A\frac{\partial ( A \mathbf{x} )}{\partial \mathbf{x}} = A^T, \quad \frac{\partial ( \mathbf{x}^T A )}{\partial \mathbf{x}} = A
  • スカラー翻訳: axax の微分
    • 思考: y=axy = ax です。微分したら係数 aa が残ります。
  • 行列の事情:
    • ここが最大の難所です。
    • Eq. 71 (AxA\mathbf{x}): 変数 x\mathbf{x}右側にあります。微分結果は転置されて ATA^T になります。
    • Eq. 72 (xTA\mathbf{x}^T A): 変数 x\mathbf{x}左側にあります。微分結果はそのまま AA になります。
    • 覚え方: 「行列微分の世界では、係数が変数の反対側にあるとき(AxAxAA は左、微分は右から作用するイメージ)、ねじれて転置する」と覚えるか、単に AxAx の微分は ATA^T と丸暗記するのが実用的です。

【ベクトル×行列×ベクトル】双一次形式の行列微分 (Eq. 73, 74)#

今度は変数が行列 XX の場合です。

公式:

(aTXb)X=abT\frac{\partial ( \mathbf{a}^T X \mathbf{b} )}{\partial X} = \mathbf{a} \mathbf{b}^T (aTXTb)X=baT\frac{\partial ( \mathbf{a}^T X^T \mathbf{b} )}{\partial X} = \mathbf{b} \mathbf{a}^T
  • スカラー翻訳: axbaxbxx による微分
    • 思考: y=abxy = ab \cdot x です。
    • 微分: 係数 abab
  • 行列の事情:
    • スカラー係数 abab に相当するものが、ベクトル a\mathbf{a}b\mathbf{b} です。
    • 行列 XX と同じサイズ (n×mn \times m) に復元するため、直積(Outer Product) abT\mathbf{a}\mathbf{b}^T の形になります。
    • Eq. 74: XTX^T が入っている場合、転置の関係で baT\mathbf{b}\mathbf{a}^T (順序逆転)になります。これもスカラーなら ab=baab=ba なので同じことです。

【基本則】まとめ#

  1. スカラーと同じ: 基本的に「係数が残る」という点では axaax \to a と同じです。
  2. AxAx の罠: AxAxxx で微分すると ATA^T になる(係数が転置する)。
  3. XX の復元: aTXb\mathbf{a}^T X \mathbf{b} を微分すると、左右のベクトルが合体して行列 abT\mathbf{a}\mathbf{b}^T になる。

この「一次微分の型」をマスターしておけば、より複雑な二次形式(xTAxx^T A x)の微分も、「積の微分=一次微分の足し算」として理解できるようになります。

補足:固有値・固有ベクトルの微分 (Eq. 67, 68) の実例解説#

『The Matrix Cookbook』Eq. 67, 68 は、対称行列 AA が微小に変化したとき、その固有値 λ\lambda と固有ベクトル v\mathbf{v} がどう変化するかを記述する公式です。

1. 公式の直感的理解#

Eq. 67: 固有値の微分

λiA=viviT(つまり dλi=viTdAvi)\frac{\partial \lambda_i}{\partial A} = \mathbf{v}_i \mathbf{v}_i^T \quad (\text{つまり } d\lambda_i = \mathbf{v}_i^T dA \mathbf{v}_i)
  • 意味: 固有値 λi\lambda_i の変化量は、行列の変化 dAdA を、対応する固有ベクトル vi\mathbf{v}_i で「サンドイッチ」して射影した成分に等しい。
  • 物理的直感: 量子力学における「摂動論(1次)」そのものです。エネルギーの変化は、摂動ハミルトニアンの期待値 ψHψ\langle \psi | H' | \psi \rangle で与えられます。

Eq. 68: 固有ベクトルの微分

dvi=jivjTdAviλiλjvjd\mathbf{v}_i = \sum_{j \neq i} \frac{\mathbf{v}_j^T dA \mathbf{v}_i}{\lambda_i - \lambda_j} \mathbf{v}_j
  • 意味: 固有ベクトル vi\mathbf{v}_i の変化は、**他のすべての固有ベクトル vj\mathbf{v}_j との「混ざり合い」**によって生じます。
  • 係数: 「固有値の差(エネルギーギャップ) λiλj\lambda_i - \lambda_j」が分母にあるため、固有値が近いモード同士ほど激しく混ざり合います。
  • 注意: λi=λj\lambda_i = \lambda_j(縮退)の場合は分母がゼロになり、この式は発散します(縮退摂動論が必要)。

2. 具体的な数値例 (2×22 \times 2 対称行列)#

具体的な数字を使って、この公式が正しいことを確認してみましょう。

【設定】 元の行列 AA と、微小変化した行列 AnewA_{new} を考えます。

A=[1003],dA=[00.10.10](ϵ=0.1 の非対角摂動)A = \begin{bmatrix} 1 & 0 \\ 0 & 3 \end{bmatrix}, \quad dA = \begin{bmatrix} 0 & 0.1 \\ 0.1 & 0 \end{bmatrix} \quad (\epsilon = 0.1 \text{ の非対角摂動})

【Step 1: 元の固有値・固有ベクトル】 行列 AA は対角行列なので、即座に求まります。

  • 固有値: λ1=1,λ2=3\lambda_1 = 1, \quad \lambda_2 = 3
  • 固有ベクトル: v1=[10],v2=[01]\mathbf{v}_1 = \begin{bmatrix} 1 \\ 0 \end{bmatrix}, \quad \mathbf{v}_2 = \begin{bmatrix} 0 \\ 1 \end{bmatrix}

【Step 2: 公式による予測 (微分)】

  1. 固有値の変化 (dλd\lambda)

    • dλ1=v1TdAv1=[10][00.10.10][10]=0d\lambda_1 = \mathbf{v}_1^T dA \mathbf{v}_1 = \begin{bmatrix} 1 & 0 \end{bmatrix} \begin{bmatrix} 0 & 0.1 \\ 0.1 & 0 \end{bmatrix} \begin{bmatrix} 1 \\ 0 \end{bmatrix} = 0
    • dλ2=v2TdAv2=[01][00.10.10][01]=0d\lambda_2 = \mathbf{v}_2^T dA \mathbf{v}_2 = \begin{bmatrix} 0 & 1 \end{bmatrix} \begin{bmatrix} 0 & 0.1 \\ 0.1 & 0 \end{bmatrix} \begin{bmatrix} 0 \\ 1 \end{bmatrix} = 0
    • 予測: 1次の範囲では、固有値は変化しない(1133 のまま)。
  2. 固有ベクトルの変化 (dvd\mathbf{v})

    • v1\mathbf{v}_1 の変化(v2\mathbf{v}_2 が混ざる): dv1=v2TdAv1λ1λ2v2=0.113v2=0.05[01]=[00.05]d\mathbf{v}_1 = \frac{\mathbf{v}_2^T dA \mathbf{v}_1}{\lambda_1 - \lambda_2} \mathbf{v}_2 = \frac{0.1}{1 - 3} \mathbf{v}_2 = -0.05 \begin{bmatrix} 0 \\ 1 \end{bmatrix} = \begin{bmatrix} 0 \\ -0.05 \end{bmatrix} よって、新しいベクトルは v1[10.05]\mathbf{v}_1' \approx \begin{bmatrix} 1 \\ -0.05 \end{bmatrix}
    • v2\mathbf{v}_2 の変化(v1\mathbf{v}_1 が混ざる): dv2=v1TdAv2λ2λ1v1=0.131v1=0.05[10]=[0.050]d\mathbf{v}_2 = \frac{\mathbf{v}_1^T dA \mathbf{v}_2}{\lambda_2 - \lambda_1} \mathbf{v}_1 = \frac{0.1}{3 - 1} \mathbf{v}_1 = 0.05 \begin{bmatrix} 1 \\ 0 \end{bmatrix} = \begin{bmatrix} 0.05 \\ 0 \end{bmatrix} よって、新しいベクトルは v2[0.051]\mathbf{v}_2' \approx \begin{bmatrix} 0.05 \\ 1 \end{bmatrix}

【Step 3: 実際の値との比較】 A+dA=[10.10.13]A + dA = \begin{bmatrix} 1 & 0.1 \\ 0.1 & 3 \end{bmatrix} を実際に解いてみます。 特性方程式 (1λ)(3λ)0.01=0    λ24λ+2.99=0(1-\lambda)(3-\lambda) - 0.01 = 0 \implies \lambda^2 - 4\lambda + 2.99 = 0

  • 真の固有値: λ=4±1611.962=2±1.012±1.005\lambda = \frac{4 \pm \sqrt{16 - 11.96}}{2} = 2 \pm \sqrt{1.01} \approx 2 \pm 1.005

    • λ10.995\lambda_1 \approx 0.995 (変化量 0.005-0.005
    • λ23.005\lambda_2 \approx 3.005 (変化量 +0.005+0.005
    • 公式の予測(変化なし)は1次近似としては正しかった(実際には2次の変化 ϵ2\sim \epsilon^2 が起きている)。
  • 真の固有ベクトルv1\mathbf{v}_1 のみ):

    (A+dAλ1I)x=[0.0050.10.12.005][xy]=0(A+dA - \lambda_1 I) \mathbf{x} = \begin{bmatrix} 0.005 & 0.1 \\ 0.1 & 2.005 \end{bmatrix} \begin{bmatrix} x \\ y \end{bmatrix} = \mathbf{0}

    0.1x+2.005y=0    x20y0.1 x + 2.005 y = 0 \implies x \approx -20 y。正規化を無視すれば [10.05]\begin{bmatrix} 1 \\ -0.05 \end{bmatrix}

    • 公式の予測 [10.05]\begin{bmatrix} 1 \\ -0.05 \end{bmatrix} と完全に一致!

3. 結論:何が嬉しいのか?#

この 2×22 \times 2 の例から分かる通り、行列微分の公式 (Eq. 67, 68) を使うと、「わざわざ固有値問題を解き直さなくても」、微小変化後の結果を瞬時に予測できます。

  • λ\lambda の感度: 対角成分の変化には敏感だが、非対角成分の変化には鈍感(1次では変化しない)。
  • v\mathbf{v} の感度: 非対角成分の変化によって、相手のベクトルが「固有値の差に反比例して」混ざってくる。

これが、分子軌道法(MO)で「エネルギー準位が近い軌道ほど混ざりやすい(軌道相互作用の原理)」と言われる数学的な理由です。

『The Matrix Cookbook』Page 10完全解読:逆行列の成分微分・固有値摂動論・基本形式
https://ss0832.github.io/posts/20260110_the_matrix_cookbook_4/
Author
ss0832
Published at
2026-01-10
License
CC BY-NC-SA 4.0

Related Posts

『The Matrix Cookbook』Page 11完全解読:二次形式・高次形式・最小二乗法の微分
2026-01-10
『The Matrix Cookbook』Page 11に記載された二次形式(ベクトル・行列)、最小二乗法関連の微分、複素LMSアルゴリズム、および行列のn乗(高次形式)の微分公式(Eq. 76-91)を完全網羅。統計的推定や制御理論、機械学習の損失関数設計への応用を含め、数理的背景から実務実装までを体系的に論じる包括的解説書。
『The Matrix Cookbook』Page 12完全解読:勾配・ヘッセ行列・トレース微分の基礎
2026-01-10
『The Matrix Cookbook』Page 12に記載された一般化レイリー商の微分、勾配とヘッセ行列の定義、およびトレース微分の基礎公式(Eq. 92-105)を完全網羅。ニュートン法による最適化、信号処理における固有値解析への応用を含め、数理的背景から実務実装までを体系的に論じる包括的解説書。
『The Matrix Cookbook』:表記法の定義と基礎演算の数理的性質(Pages 1-7)
2026-01-10
『The Matrix Cookbook』の冒頭(Pages 1-7)で定義されている行列・ベクトルの表記法を体系的に整理し、特にエルミート転置(A^H)の定義と物理的意味、およびトレース演算を用いた行列式の一次近似(微分)の構造について、数理的な背景を含めて詳細に解説する。
『The Matrix Cookbook』Page 16完全解読:テープリッツ行列の微分と構造化行列の総括
2026-01-10
『The Matrix Cookbook』の最終ページ(Page 16)に記載されたテープリッツ行列の微分公式(Eq. 143-144)を完全網羅。対角成分が連動する特殊構造における微分の定義 α(A) と、対称テープリッツ行列への拡張、さらにシリーズ全体の総括を含めた包括的解説書。
『The Matrix Cookbook』Page 8完全解読:行列微分の構造・証明・応用
2026-01-10
『The Matrix Cookbook』Page 8を起点に、行列式の微分(ヤコビの公式)の完全証明(固有値分解・行列指数関数)、対数行列式の凸性解析、そして統計学(多変量正規分布の最尤推定)・物理学(連続体力学)・最適制御(D-最適計画)への具体的応用までを体系的に論じる。公式の羅列を超え、数理的背景と実用性を兼ね備えた包括的な解説書。
『The Matrix Cookbook』Page 9完全解読:複合行列式の微分と逆行列の摂動論
2026-01-10
『The Matrix Cookbook』Page 9に記載された複合関数の行列式微分(二次形式、線形形式)および逆行列の汎用微分公式(Eq. 49-59)を完全網羅。ウィシャート分布の解析、ガウス過程回帰、準ニュートン法への応用を含め、数理的背景から実務実装までを体系的に論じる包括的解説書。