証明集 第9章: 固有値の微分(基本公式)

Proofs Chapter 9: Eigenvalue and Eigenvector Derivatives

English version

本章では固有値と固有ベクトルの微分を証明する。 固有値の感度解析は振動工学における構造の固有振動数の設計最適化、 主成分分析(PCA)における分散説明率の変動、量子力学のHellmann-Feynman定理など、 物理学・工学・統計学の交差する重要なテーマである。 固有値の和・積の微分から個別の固有値・固有ベクトルの摂動公式まで、 対称行列と一般行列の両方のケースを扱う。

前提知識: 第7章(行列式の微分)第8章(逆行列の微分)本章の結果を用いる章: 第10章(二次形式の微分)第15章(特殊行列の微分)

9. 固有値・固有ベクトルの微分

本章の前提条件
本章の公式は、特に断りのない限り、以下の条件下で成立する:
  • すべての公式は分母レイアウト(denominator layout)に基づく
  • 固有値は単純(重複度1)であると仮定する。重複固有値の場合は特別な扱いが必要
  • 固有ベクトルは適切に正規化されているものとする

9.1 固有値の和の微分

公式:$\displaystyle\frac{\partial}{\partial \boldsymbol{X}} \sum_{i=0}^{n-1} \lambda_i(\boldsymbol{X}) = \boldsymbol{I}$
条件:$\boldsymbol{X} \in \mathbb{R}^{n \times n}$、$\lambda_0, \ldots, \lambda_{n-1}$ は $\boldsymbol{X}$ の固有値(重複を含む)
証明

固有値とトレースの関係を確認する。$n \times n$ 行列 $\boldsymbol{X}$ の固有多項式は次のように書ける。

\begin{equation}\det(\boldsymbol{X} - \lambda \boldsymbol{I}) = (-1)^n (\lambda - \lambda_0)(\lambda - \lambda_1) \cdots (\lambda - \lambda_{n-1}) \label{eq:9-1-1}\end{equation}

ここで $\lambda_0, \ldots, \lambda_{n-1}$ は固有値(重複度を含む)である。

$\eqref{eq:9-1-1}$ の右辺を展開したときの $\lambda^{n-1}$ の係数を考える。

\begin{equation}(-1)^n (\lambda - \lambda_0) \cdots (\lambda - \lambda_{n-1}) = (-1)^n \left[ \lambda^n - (\lambda_0 + \cdots + \lambda_{n-1})\lambda^{n-1} + \cdots \right] \label{eq:9-1-2}\end{equation}

したがって $\lambda^{n-1}$ の係数は $(-1)^{n+1}(\lambda_0 + \cdots + \lambda_{n-1})$ である。

一方、$\eqref{eq:9-1-1}$ の左辺 $\det(\boldsymbol{X} - \lambda \boldsymbol{I})$ を余因子展開で計算すると、$\lambda^{n-1}$ の係数は $(-1)^{n+1}\text{tr}(\boldsymbol{X})$ となることが知られている(Cayley-Hamiltonの定理の証明過程で示される)。

$\eqref{eq:9-1-2}$ と上記の係数を比較すると

\begin{equation}(-1)^{n+1}(\lambda_0 + \cdots + \lambda_{n-1}) = (-1)^{n+1}\text{tr}(\boldsymbol{X}) \label{eq:9-1-3}\end{equation}

となる。両辺を $(-1)^{n+1}$ で割ると、固有値の和とトレースが等しいことが示される。

\begin{equation}\sum_{i=0}^{n-1} \lambda_i = \text{tr}(\boldsymbol{X}) \label{eq:9-1-4}\end{equation}

トレースを成分で表すと

\begin{equation}\text{tr}(\boldsymbol{X}) = \sum_{i=0}^{n-1} X_{ii} \label{eq:9-1-5}\end{equation}

となる。これは $\boldsymbol{X}$ の対角成分の総和である。

$\eqref{eq:9-1-5}$ を $X_{jk}$ で微分する。$X_{ii}$ は $i = j$ かつ $i = k$ のときのみ $X_{jk}$ に依存するので

\begin{equation}\frac{\partial \text{tr}(\boldsymbol{X})}{\partial X_{jk}} = \frac{\partial}{\partial X_{jk}} \sum_{i=0}^{n-1} X_{ii} = \delta_{jk} \label{eq:9-1-6}\end{equation}

となる。ここで $\delta_{jk}$ はKroneckerのデルタである。

$\eqref{eq:9-1-6}$ の結果を行列形式で表す。$(j, k)$ 成分が $\delta_{jk}$ である行列は単位行列 $\boldsymbol{I}$ であるから

\begin{equation}\frac{\partial}{\partial \boldsymbol{X}} \text{tr}(\boldsymbol{X}) = \boldsymbol{I} \label{eq:9-1-7}\end{equation}

となる。

$\eqref{eq:9-1-4}$ と $\eqref{eq:9-1-7}$ を組み合わせると、$\sum_{i=0}^{n-1} \lambda_i = \text{tr}(\boldsymbol{X})$ より

\begin{equation}\frac{\partial}{\partial \boldsymbol{X}} \sum_{i=0}^{n-1} \lambda_i(\boldsymbol{X}) = \frac{\partial}{\partial \boldsymbol{X}} \text{tr}(\boldsymbol{X}) = \boldsymbol{I} \label{eq:9-1-8}\end{equation}

が得られる。

補足:この公式は $\boldsymbol{X}$ が対角化可能かどうかに関わらず成り立つ。固有値が複素数の場合でも、その和は必ず実数(トレース)となる。

9.2 固有値の積の微分

公式:$\displaystyle\frac{\partial}{\partial \boldsymbol{X}} \prod_{i=0}^{n-1} \lambda_i(\boldsymbol{X}) = \det(\boldsymbol{X}) \boldsymbol{X}^{-\top}$
条件:$\boldsymbol{X} \in \mathbb{R}^{n \times n}$、$\boldsymbol{X}$ は正則行列、$\lambda_0, \ldots, \lambda_{n-1}$ は $\boldsymbol{X}$ の固有値(重複を含む)
証明

固有値と行列式の関係を確認する。$n \times n$ 行列 $\boldsymbol{X}$ の固有多項式において $\lambda = 0$ を代入すると

\begin{equation}\det(\boldsymbol{X} - 0 \cdot \boldsymbol{I}) = \det(\boldsymbol{X}) \label{eq:9-2-1}\end{equation}

となる。

一方、固有多項式は固有値を用いて次のように因数分解できる。

\begin{equation}\det(\boldsymbol{X} - \lambda \boldsymbol{I}) = (-1)^n (\lambda - \lambda_0)(\lambda - \lambda_1) \cdots (\lambda - \lambda_{n-1}) \label{eq:9-2-2}\end{equation}

$\eqref{eq:9-2-2}$ に $\lambda = 0$ を代入すると

\begin{equation}\det(\boldsymbol{X} - 0 \cdot \boldsymbol{I}) = (-1)^n (0 - \lambda_0)(0 - \lambda_1) \cdots (0 - \lambda_{n-1}) \label{eq:9-2-3}\end{equation}

となる。

$\eqref{eq:9-2-3}$ の右辺を整理すると

\begin{equation}(-1)^n (-\lambda_0)(-\lambda_1) \cdots (-\lambda_{n-1}) = (-1)^n \cdot (-1)^n \lambda_0 \lambda_1 \cdots \lambda_{n-1} = \lambda_0 \lambda_1 \cdots \lambda_{n-1} \label{eq:9-2-4}\end{equation}

となる。

$\eqref{eq:9-2-1}$、$\eqref{eq:9-2-3}$、$\eqref{eq:9-2-4}$ より、行列式と固有値の積が等しいことが示される。

\begin{equation}\det(\boldsymbol{X}) = \prod_{i=0}^{n-1} \lambda_i \label{eq:9-2-5}\end{equation}

$\eqref{eq:9-2-5}$ の両辺を $\boldsymbol{X}$ で微分する。右辺は $\det(\boldsymbol{X})$ に等しいので

\begin{equation}\frac{\partial}{\partial \boldsymbol{X}} \prod_{i=0}^{n-1} \lambda_i = \frac{\partial}{\partial \boldsymbol{X}} \det(\boldsymbol{X}) \label{eq:9-2-6}\end{equation}

となる。

7.1 の行列式の微分公式を適用すると

\begin{equation}\frac{\partial \det(\boldsymbol{X})}{\partial \boldsymbol{X}} = \det(\boldsymbol{X}) (\boldsymbol{X}^{-1})^\top = \det(\boldsymbol{X}) \boldsymbol{X}^{-\top} \label{eq:9-2-7}\end{equation}

となる。

$\eqref{eq:9-2-6}$ と $\eqref{eq:9-2-7}$ を組み合わせて最終結果を得る。

\begin{equation}\frac{\partial}{\partial \boldsymbol{X}} \prod_{i=0}^{n-1} \lambda_i(\boldsymbol{X}) = \det(\boldsymbol{X}) \boldsymbol{X}^{-\top} \label{eq:9-2-8}\end{equation}

補足:$\boldsymbol{X}^{-\top} = (\boldsymbol{X}^{-1})^\top = (\boldsymbol{X}^\top)^{-1}$ である。$\boldsymbol{X}$ が特異行列($\det(\boldsymbol{X}) = 0$)の場合は逆行列が存在しないため、この公式は適用できない。

9.3 固有値の微分

公式:$\partial \lambda_i = \boldsymbol{v}_i^\top (\partial \boldsymbol{A}) \boldsymbol{v}_i$
条件:$\boldsymbol{A} \in \mathbb{R}^{n \times n}$ は実対称行列、$\lambda_i$ は単純固有値(重複度1)、$\boldsymbol{v}_i \in \mathbb{R}^n$ は対応する正規化固有ベクトル($\boldsymbol{v}_i^\top \boldsymbol{v}_i = 1$)
証明

固有値方程式を書き下す。$\boldsymbol{A}$ の固有値 $\lambda_i$ と固有ベクトル $\boldsymbol{v}_i$ は次の関係を満たす。

\begin{equation}\boldsymbol{A} \boldsymbol{v}_i = \lambda_i \boldsymbol{v}_i \label{eq:9-3-1}\end{equation}

$\eqref{eq:9-3-1}$ の両辺の微分を取る。ここで $\partial$ は行列 $\boldsymbol{A}$ の成分に関する微分演算子を表す。積の微分法則(1.25)を適用すると

\begin{equation}(\partial \boldsymbol{A}) \boldsymbol{v}_i + \boldsymbol{A} (\partial \boldsymbol{v}_i) = (\partial \lambda_i) \boldsymbol{v}_i + \lambda_i (\partial \boldsymbol{v}_i) \label{eq:9-3-2}\end{equation}

となる。

$\eqref{eq:9-3-2}$ の両辺に左から $\boldsymbol{v}_i^\top$ を掛けると

\begin{equation}\boldsymbol{v}_i^\top (\partial \boldsymbol{A}) \boldsymbol{v}_i + \boldsymbol{v}_i^\top \boldsymbol{A} (\partial \boldsymbol{v}_i) = (\partial \lambda_i) \boldsymbol{v}_i^\top \boldsymbol{v}_i + \lambda_i \boldsymbol{v}_i^\top (\partial \boldsymbol{v}_i) \label{eq:9-3-3}\end{equation}

となる。

正規化条件 $\boldsymbol{v}_i^\top \boldsymbol{v}_i = 1$ を $\eqref{eq:9-3-3}$ に適用すると

\begin{equation}\boldsymbol{v}_i^\top (\partial \boldsymbol{A}) \boldsymbol{v}_i + \boldsymbol{v}_i^\top \boldsymbol{A} (\partial \boldsymbol{v}_i) = \partial \lambda_i + \lambda_i \boldsymbol{v}_i^\top (\partial \boldsymbol{v}_i) \label{eq:9-3-4}\end{equation}

となる。

$\boldsymbol{A}$ が対称行列であることを利用する。対称行列に対しては $\boldsymbol{A} = \boldsymbol{A}^\top$ が成り立つので

\begin{equation}\boldsymbol{v}_i^\top \boldsymbol{A} = (\boldsymbol{A}^\top \boldsymbol{v}_i)^\top = (\boldsymbol{A} \boldsymbol{v}_i)^\top \label{eq:9-3-5}\end{equation}

となる。

$\eqref{eq:9-3-5}$ に固有値方程式 $\eqref{eq:9-3-1}$ を代入すると

\begin{equation}\boldsymbol{v}_i^\top \boldsymbol{A} = (\lambda_i \boldsymbol{v}_i)^\top = \lambda_i \boldsymbol{v}_i^\top \label{eq:9-3-6}\end{equation}

となる。

$\eqref{eq:9-3-6}$ の結果を $\eqref{eq:9-3-4}$ の第2項に適用すると

\begin{equation}\boldsymbol{v}_i^\top \boldsymbol{A} (\partial \boldsymbol{v}_i) = \lambda_i \boldsymbol{v}_i^\top (\partial \boldsymbol{v}_i) \label{eq:9-3-7}\end{equation}

となる。

$\eqref{eq:9-3-7}$ の結果を $\eqref{eq:9-3-4}$ に代入すると

\begin{equation}\boldsymbol{v}_i^\top (\partial \boldsymbol{A}) \boldsymbol{v}_i + \lambda_i \boldsymbol{v}_i^\top (\partial \boldsymbol{v}_i) = \partial \lambda_i + \lambda_i \boldsymbol{v}_i^\top (\partial \boldsymbol{v}_i) \label{eq:9-3-8}\end{equation}

となる。

$\eqref{eq:9-3-8}$ の両辺から $\lambda_i \boldsymbol{v}_i^\top (\partial \boldsymbol{v}_i)$ を引くと、$\partial \boldsymbol{v}_i$ を含む項が相殺されて

\begin{equation}\boldsymbol{v}_i^\top (\partial \boldsymbol{A}) \boldsymbol{v}_i = \partial \lambda_i \label{eq:9-3-9}\end{equation}

となる。

$\eqref{eq:9-3-9}$ を書き換えて最終結果を得る。

\begin{equation}\partial \lambda_i = \boldsymbol{v}_i^\top (\partial \boldsymbol{A}) \boldsymbol{v}_i \label{eq:9-3-10}\end{equation}

補足:この公式は「固有値の摂動公式」とも呼ばれる。固有ベクトルの微分 $\partial \boldsymbol{v}_i$ を計算する必要がないことが重要である。また、$\partial \boldsymbol{A} = \boldsymbol{E}_{jk}$($(j, k)$ 成分のみが1で他は0の行列)とすると $\displaystyle\frac{\partial \lambda_i}{\partial A_{jk}} = v_{i,j} v_{i,k}$ が得られる。

9.4 固有ベクトルの微分

公式:$\partial \boldsymbol{v}_i = (\lambda_i \boldsymbol{I} - \boldsymbol{A})^+ (\partial \boldsymbol{A}) \boldsymbol{v}_i$
条件:$\boldsymbol{A} \in \mathbb{R}^{n \times n}$ は実対称行列、$\lambda_i$ は単純固有値、$\boldsymbol{v}_i \in \mathbb{R}^n$ は対応する正規化固有ベクトル($\boldsymbol{v}_i^\top \boldsymbol{v}_i = 1$)、$(\cdot)^+$ はムーア・ペンローズ擬似逆行列
証明

固有値方程式 $\boldsymbol{A} \boldsymbol{v}_i = \lambda_i \boldsymbol{v}_i$ の両辺を微分すると

\begin{equation}(\partial \boldsymbol{A}) \boldsymbol{v}_i + \boldsymbol{A} (\partial \boldsymbol{v}_i) = (\partial \lambda_i) \boldsymbol{v}_i + \lambda_i (\partial \boldsymbol{v}_i) \label{eq:9-4-1}\end{equation}

となる。

$\eqref{eq:9-4-1}$ を $\partial \boldsymbol{v}_i$ について整理する。$\boldsymbol{A} (\partial \boldsymbol{v}_i)$ と $\lambda_i (\partial \boldsymbol{v}_i)$ をまとめると

\begin{equation}\boldsymbol{A} (\partial \boldsymbol{v}_i) - \lambda_i (\partial \boldsymbol{v}_i) = (\partial \lambda_i) \boldsymbol{v}_i - (\partial \boldsymbol{A}) \boldsymbol{v}_i \label{eq:9-4-2}\end{equation}

となる。

$\eqref{eq:9-4-2}$ の左辺を因数分解すると

\begin{equation}(\boldsymbol{A} - \lambda_i \boldsymbol{I}) (\partial \boldsymbol{v}_i) = (\partial \lambda_i) \boldsymbol{v}_i - (\partial \boldsymbol{A}) \boldsymbol{v}_i \label{eq:9-4-3}\end{equation}

となる。

$\eqref{eq:9-4-3}$ の両辺に $-1$ を掛けて符号を反転すると

\begin{equation}(\lambda_i \boldsymbol{I} - \boldsymbol{A}) (\partial \boldsymbol{v}_i) = (\partial \boldsymbol{A}) \boldsymbol{v}_i - (\partial \lambda_i) \boldsymbol{v}_i \label{eq:9-4-4}\end{equation}

となる。

正規化条件 $\boldsymbol{v}_i^\top \boldsymbol{v}_i = 1$ を微分すると

\begin{equation}(\partial \boldsymbol{v}_i)^\top \boldsymbol{v}_i + \boldsymbol{v}_i^\top (\partial \boldsymbol{v}_i) = 0 \label{eq:9-4-5}\end{equation}

となる。

$\eqref{eq:9-4-5}$ を整理する。$(\partial \boldsymbol{v}_i)^\top \boldsymbol{v}_i$ はスカラなので転置しても値は変わらず、$(\partial \boldsymbol{v}_i)^\top \boldsymbol{v}_i = \boldsymbol{v}_i^\top (\partial \boldsymbol{v}_i)$ である。したがって

\begin{equation}2 \boldsymbol{v}_i^\top (\partial \boldsymbol{v}_i) = 0 \label{eq:9-4-6}\end{equation}

となる。よって $\boldsymbol{v}_i^\top (\partial \boldsymbol{v}_i) = 0$ であり、$\partial \boldsymbol{v}_i$ は $\boldsymbol{v}_i$ に直交する。

行列 $(\lambda_i \boldsymbol{I} - \boldsymbol{A})$ の性質を調べる。$\boldsymbol{A}$ は対称行列なので直交行列で対角化でき、固有値は $\lambda_0, \ldots, \lambda_{n-1}$ である。$(\lambda_i \boldsymbol{I} - \boldsymbol{A})$ の固有値は $\lambda_i - \lambda_0, \ldots, \lambda_i - \lambda_{n-1}$ となり、特に $\lambda_i - \lambda_i = 0$ という固有値を持つ。

したがって $(\lambda_i \boldsymbol{I} - \boldsymbol{A})$ は特異行列であり、その零空間は $\boldsymbol{v}_i$ が張る1次元空間 $\text{span}\{\boldsymbol{v}_i\}$ である。

\begin{equation}(\lambda_i \boldsymbol{I} - \boldsymbol{A}) \boldsymbol{v}_i = \boldsymbol{0} \label{eq:9-4-7}\end{equation}

$\eqref{eq:9-4-4}$ の右辺を $\boldsymbol{v}_i$ 方向の成分と $\boldsymbol{v}_i$ に直交する成分に分解する。9.3 より $\partial \lambda_i = \boldsymbol{v}_i^\top (\partial \boldsymbol{A}) \boldsymbol{v}_i$ である。右辺の $\boldsymbol{v}_i$ 方向成分は

\begin{equation}\boldsymbol{v}_i \boldsymbol{v}_i^\top (\partial \boldsymbol{A}) \boldsymbol{v}_i - (\partial \lambda_i) \boldsymbol{v}_i = (\partial \lambda_i) \boldsymbol{v}_i - (\partial \lambda_i) \boldsymbol{v}_i = \boldsymbol{0} \label{eq:9-4-8}\end{equation}

となる。よって右辺は $\boldsymbol{v}_i$ に直交する成分のみを持つ。

ムーア・ペンローズ擬似逆行列 $(\lambda_i \boldsymbol{I} - \boldsymbol{A})^+$ の性質を利用する。$(\lambda_i \boldsymbol{I} - \boldsymbol{A})$ は対称なので、その擬似逆行列も対称であり、零空間 $\text{span}\{\boldsymbol{v}_i\}$ に直交する空間上で逆行列として作用する。

$\eqref{eq:9-4-8}$ より右辺は $\boldsymbol{v}_i$ に直交するので、$\eqref{eq:9-4-4}$ の両辺に $(\lambda_i \boldsymbol{I} - \boldsymbol{A})^+$ を左から掛けることができる。

\begin{equation}(\lambda_i \boldsymbol{I} - \boldsymbol{A})^+ (\lambda_i \boldsymbol{I} - \boldsymbol{A}) (\partial \boldsymbol{v}_i) = (\lambda_i \boldsymbol{I} - \boldsymbol{A})^+ [(\partial \boldsymbol{A}) \boldsymbol{v}_i - (\partial \lambda_i) \boldsymbol{v}_i] \label{eq:9-4-9}\end{equation}

$\eqref{eq:9-4-6}$ より $\partial \boldsymbol{v}_i \perp \boldsymbol{v}_i$ なので、$\partial \boldsymbol{v}_i$ は $(\lambda_i \boldsymbol{I} - \boldsymbol{A})$ の零空間に直交する。したがって $\eqref{eq:9-4-9}$ の左辺は

\begin{equation}(\lambda_i \boldsymbol{I} - \boldsymbol{A})^+ (\lambda_i \boldsymbol{I} - \boldsymbol{A}) (\partial \boldsymbol{v}_i) = \partial \boldsymbol{v}_i \label{eq:9-4-10}\end{equation}

となる。

$\eqref{eq:9-4-9}$ の右辺において、$(\partial \lambda_i) \boldsymbol{v}_i$ は $\boldsymbol{v}_i$ 方向であり零空間に属するので、$(\lambda_i \boldsymbol{I} - \boldsymbol{A})^+ (\partial \lambda_i) \boldsymbol{v}_i = \boldsymbol{0}$ である。

$\eqref{eq:9-4-10}$ と上記の結果を組み合わせて最終結果を得る。

\begin{equation}\partial \boldsymbol{v}_i = (\lambda_i \boldsymbol{I} - \boldsymbol{A})^+ (\partial \boldsymbol{A}) \boldsymbol{v}_i \label{eq:9-4-11}\end{equation}

補足:$\boldsymbol{A}$ が対称で固有ベクトル $\{\boldsymbol{v}_j\}$ が正規直交系をなす場合、擬似逆行列 $(\lambda_i \boldsymbol{I} - \boldsymbol{A})^+$ は $(\lambda_i \boldsymbol{I} - \boldsymbol{A})^+ = \sum_{j \neq i} \displaystyle\frac{1}{\lambda_i - \lambda_j} \boldsymbol{v}_j \boldsymbol{v}_j^\top$ と表せる。これは 9.14 のNelson法の結果と一致する。

参考文献

  • Petersen, K. B., & Pedersen, M. S. (2012). The Matrix Cookbook. Technical University of Denmark.
  • Magnus, J. R., & Neudecker, H. (1999). Matrix Differential Calculus with Applications in Statistics and Econometrics (Revised ed.). Wiley.
  • Matrix calculus - Wikipedia