証明集 第11章: 行列べき乗と合成関数の微分(基本公式)

Proofs Chapter 11: Matrix Powers and Composite Function Derivatives

本章では行列べき乗と合成関数の微分を証明する。 行列指数関数 exp(A) の微分はリー群上の最適化(ロボティクスの姿勢推定、SLAM)、 連続時間マルコフ連鎖の感度解析、常微分方程式の行列解法で中心的な役割を果たす。 Rayleigh商の微分は固有値問題の反復解法(逆反復法、Lanczos法)の収束解析に必要である。

前提知識: 第5章(トレースの微分)第9章(固有値の微分)関連する章: 第14章(行列連鎖律)

11. 行列べき乗と合成関数の微分

本章の前提条件
本章の公式は、特に断りのない限り、以下の条件下で成立する:
  • すべての公式は分母レイアウト(denominator layout)に基づく
  • 行列 $\boldsymbol{X}$ は正方行列とする
  • $\boldsymbol{X}^0 = \boldsymbol{I}$(単位行列)と定義する

行列の $n$ 乗 $\boldsymbol{X}^n$ を含む関数の微分公式を導出する。$\boldsymbol{X}^n = \underbrace{\boldsymbol{X} \cdot \boldsymbol{X} \cdots \boldsymbol{X}}_{n \text{ 個}}$ に積の微分法則を繰り返し適用する。また、合成関数 $\boldsymbol{s}(\boldsymbol{x})^\top \boldsymbol{A} \boldsymbol{r}(\boldsymbol{x})$ やRayleigh商の微分公式も導出する。

11.1 行列べき乗の成分微分

公式:$\displaystyle\frac{\partial (\boldsymbol{X}^n)_{kl}}{\partial X_{ij}} = \sum_{r=0}^{n-1} (\boldsymbol{X}^r \boldsymbol{J}^{ij} \boldsymbol{X}^{n-1-r})_{kl}$
条件:$\boldsymbol{X} \in \mathbb{R}^{m \times m}$(正方行列)、$n \geq 1$、$\boldsymbol{J}^{ij}$ は $(i,j)$ 成分のみ 1 の単一要素行列
証明

$\boldsymbol{X}^n$ を $n$ 個の行列の積として書く。

\begin{equation}\boldsymbol{X}^n = \underbrace{\boldsymbol{X} \cdot \boldsymbol{X} \cdots \boldsymbol{X}}_{n \text{ 個}} \label{eq:11-1-1}\end{equation}

$n$ 個の行列の積を $X_{ij}$ で偏微分する。積の微分法則(1.25:Leibniz則)を繰り返し適用する。

まず $n = 2$ の場合を考える。$\boldsymbol{X}^2 = \boldsymbol{X} \cdot \boldsymbol{X}$ に積の微分法則(1.25)を適用する。

\begin{equation}\frac{\partial \boldsymbol{X}^2}{\partial X_{ij}} = \frac{\partial \boldsymbol{X}}{\partial X_{ij}} \cdot \boldsymbol{X} + \boldsymbol{X} \cdot \frac{\partial \boldsymbol{X}}{\partial X_{ij}} \label{eq:11-1-2}\end{equation}

$n = 3$ の場合は $\boldsymbol{X}^3 = \boldsymbol{X} \cdot \boldsymbol{X} \cdot \boldsymbol{X}$ に対して

\begin{equation}\frac{\partial \boldsymbol{X}^3}{\partial X_{ij}} = \frac{\partial \boldsymbol{X}}{\partial X_{ij}} \cdot \boldsymbol{X}^2 + \boldsymbol{X} \cdot \frac{\partial \boldsymbol{X}}{\partial X_{ij}} \cdot \boldsymbol{X} + \boldsymbol{X}^2 \cdot \frac{\partial \boldsymbol{X}}{\partial X_{ij}} \label{eq:11-1-3}\end{equation}

一般の $n$ に対して、積の微分法則(1.25)を繰り返し適用すると $n$ 個の項が現れる。第 $r$ 項($r = 0, 1, \ldots, n-1$)は、左から $(r+1)$ 番目の $\boldsymbol{X}$ を微分した結果である。

\begin{equation}\frac{\partial \boldsymbol{X}^n}{\partial X_{ij}} = \sum_{r=0}^{n-1} \boldsymbol{X}^r \cdot \frac{\partial \boldsymbol{X}}{\partial X_{ij}} \cdot \boldsymbol{X}^{n-1-r} \label{eq:11-1-4}\end{equation}

ここで $\boldsymbol{X}^0 = \boldsymbol{I}$(単位行列)と定義する。

4.3 より、行列 $\boldsymbol{X}$ を成分 $X_{ij}$ で偏微分すると単一要素行列が得られる。

\begin{equation}\frac{\partial \boldsymbol{X}}{\partial X_{ij}} = \boldsymbol{J}^{ij} \label{eq:11-1-5}\end{equation}

ここで $\boldsymbol{J}^{ij}$ は $(i, j)$ 成分のみ 1、他はすべて 0 の行列である。

$\eqref{eq:11-1-5}$ を $\eqref{eq:11-1-4}$ に代入する。

\begin{equation}\frac{\partial \boldsymbol{X}^n}{\partial X_{ij}} = \sum_{r=0}^{n-1} \boldsymbol{X}^r \boldsymbol{J}^{ij} \boldsymbol{X}^{n-1-r} \label{eq:11-1-6}\end{equation}

$\eqref{eq:11-1-6}$ の $(k, l)$ 成分を取ると、最終結果を得る。

\begin{equation}\frac{\partial (\boldsymbol{X}^n)_{kl}}{\partial X_{ij}} = \sum_{r=0}^{n-1} (\boldsymbol{X}^r \boldsymbol{J}^{ij} \boldsymbol{X}^{n-1-r})_{kl} \label{eq:11-1-7}\end{equation}

補足:$n = 2$ の場合は $\eqref{eq:11-1-7}$ で $r = 0, 1$ の 2 項となり、$\displaystyle\frac{\partial (\boldsymbol{X}^2)_{kl}}{\partial X_{ij}} = (\boldsymbol{J}^{ij} \boldsymbol{X})_{kl} + (\boldsymbol{X} \boldsymbol{J}^{ij})_{kl}$ が得られる。

11.2 べき乗の双線形形式

公式:$\displaystyle\frac{\partial}{\partial \boldsymbol{X}} \boldsymbol{a}^\top \boldsymbol{X}^n \boldsymbol{b} = \sum_{r=0}^{n-1} (\boldsymbol{X}^r)^\top \boldsymbol{a} \boldsymbol{b}^\top (\boldsymbol{X}^{n-1-r})^\top$
条件:$\boldsymbol{X} \in \mathbb{R}^{m \times m}$、$\boldsymbol{a}, \boldsymbol{b} \in \mathbb{R}^m$、$n \geq 1$
証明

スカラ関数 $f = \boldsymbol{a}^\top \boldsymbol{X}^n \boldsymbol{b}$ を考える。$\boldsymbol{a}$、$\boldsymbol{b}$ は定数ベクトルである。

$f$ を $X_{ij}$ で偏微分する。$\boldsymbol{a}$、$\boldsymbol{b}$ は定数なので、微分は $\boldsymbol{X}^n$ にのみ作用する。

\begin{equation}\frac{\partial f}{\partial X_{ij}} = \boldsymbol{a}^\top \frac{\partial \boldsymbol{X}^n}{\partial X_{ij}} \boldsymbol{b} \label{eq:11-2-1}\end{equation}

11.1 の $\eqref{eq:11-1-6}$ より、$\boldsymbol{X}^n$ の成分微分は

\begin{equation}\frac{\partial \boldsymbol{X}^n}{\partial X_{ij}} = \sum_{r=0}^{n-1} \boldsymbol{X}^r \boldsymbol{J}^{ij} \boldsymbol{X}^{n-1-r} \label{eq:11-2-2}\end{equation}

$\eqref{eq:11-2-2}$ を $\eqref{eq:11-2-1}$ に代入する。

\begin{equation}\frac{\partial f}{\partial X_{ij}} = \sum_{r=0}^{n-1} \boldsymbol{a}^\top \boldsymbol{X}^r \boldsymbol{J}^{ij} \boldsymbol{X}^{n-1-r} \boldsymbol{b} \label{eq:11-2-3}\end{equation}

$\eqref{eq:11-2-3}$ の各項を詳しく調べる。補助ベクトルを定義する。

\begin{equation}\boldsymbol{u} = (\boldsymbol{X}^r)^\top \boldsymbol{a} \in \mathbb{R}^m \label{eq:11-2-4}\end{equation}

\begin{equation}\boldsymbol{v} = \boldsymbol{X}^{n-1-r} \boldsymbol{b} \in \mathbb{R}^m \label{eq:11-2-5}\end{equation}

$\boldsymbol{a}^\top \boldsymbol{X}^r = ((\boldsymbol{X}^r)^\top \boldsymbol{a})^\top = \boldsymbol{u}^\top$ であることに注意する。

\begin{equation}\boldsymbol{a}^\top \boldsymbol{X}^r \boldsymbol{J}^{ij} \boldsymbol{X}^{n-1-r} \boldsymbol{b} = \boldsymbol{u}^\top \boldsymbol{J}^{ij} \boldsymbol{v} \label{eq:11-2-6}\end{equation}

$\boldsymbol{u}^\top \boldsymbol{J}^{ij} \boldsymbol{v}$ を成分で計算する。$\boldsymbol{J}^{ij}$ は $(i, j)$ 成分のみ 1 なので

\begin{equation}\boldsymbol{u}^\top \boldsymbol{J}^{ij} \boldsymbol{v} = \sum_{k,l} u_k (\boldsymbol{J}^{ij})_{kl} v_l = \sum_{k,l} u_k \delta_{ki} \delta_{lj} v_l = u_i v_j \label{eq:11-2-7}\end{equation}

$\eqref{eq:11-2-7}$ を $\eqref{eq:11-2-3}$ に代入する。

\begin{equation}\frac{\partial f}{\partial X_{ij}} = \sum_{r=0}^{n-1} u_i v_j = \sum_{r=0}^{n-1} ((\boldsymbol{X}^r)^\top \boldsymbol{a})_i (\boldsymbol{X}^{n-1-r} \boldsymbol{b})_j \label{eq:11-2-8}\end{equation}

$\eqref{eq:11-2-8}$ を行列形式で書く。分母レイアウトでは $\left(\displaystyle\frac{\partial f}{\partial \boldsymbol{X}}\right)_{ij} = \displaystyle\frac{\partial f}{\partial X_{ij}}$ である。

外積 $\boldsymbol{p} \boldsymbol{q}^\top$ の $(i, j)$ 成分は $p_i q_j$ である。$\eqref{eq:11-2-8}$ より

\begin{equation}((\boldsymbol{X}^r)^\top \boldsymbol{a})_i (\boldsymbol{X}^{n-1-r} \boldsymbol{b})_j = ((\boldsymbol{X}^r)^\top \boldsymbol{a} (\boldsymbol{X}^{n-1-r} \boldsymbol{b})^\top)_{ij} \label{eq:11-2-9}\end{equation}

$(\boldsymbol{X}^{n-1-r} \boldsymbol{b})^\top = \boldsymbol{b}^\top (\boldsymbol{X}^{n-1-r})^\top$ を代入する。

\begin{equation}(\boldsymbol{X}^r)^\top \boldsymbol{a} (\boldsymbol{X}^{n-1-r} \boldsymbol{b})^\top = (\boldsymbol{X}^r)^\top \boldsymbol{a} \boldsymbol{b}^\top (\boldsymbol{X}^{n-1-r})^\top \label{eq:11-2-10}\end{equation}

行列形式で最終結果を得る。

\begin{equation}\frac{\partial}{\partial \boldsymbol{X}} \boldsymbol{a}^\top \boldsymbol{X}^n \boldsymbol{b} = \sum_{r=0}^{n-1} (\boldsymbol{X}^r)^\top \boldsymbol{a} \boldsymbol{b}^\top (\boldsymbol{X}^{n-1-r})^\top \label{eq:11-2-11}\end{equation}

補足:$n = 1$ の場合は $r = 0$ の 1 項のみとなり、$\displaystyle\frac{\partial}{\partial \boldsymbol{X}} \boldsymbol{a}^\top \boldsymbol{X} \boldsymbol{b} = \boldsymbol{a} \boldsymbol{b}^\top$ が得られる。これは双線形形式の基本公式である。

11.3 べき乗のGram形式

公式:$\displaystyle\frac{\partial}{\partial \boldsymbol{X}} \boldsymbol{a}^\top (\boldsymbol{X}^n)^\top \boldsymbol{X}^n \boldsymbol{b} = \sum_{r=0}^{n-1} \left[ (\boldsymbol{X}^r)^\top \boldsymbol{X}^n \boldsymbol{b} \boldsymbol{a}^\top (\boldsymbol{X}^{n-1-r})^\top + (\boldsymbol{X}^r)^\top \boldsymbol{X}^n \boldsymbol{a} \boldsymbol{b}^\top (\boldsymbol{X}^{n-1-r})^\top \right]$
条件:$\boldsymbol{X} \in \mathbb{R}^{m \times m}$、$\boldsymbol{a}, \boldsymbol{b} \in \mathbb{R}^m$、$n \geq 1$
証明

スカラ関数 $f = \boldsymbol{a}^\top (\boldsymbol{X}^n)^\top \boldsymbol{X}^n \boldsymbol{b}$ を考える。補助ベクトルを定義する。

\begin{equation}\boldsymbol{u} = \boldsymbol{X}^n \boldsymbol{a} \in \mathbb{R}^m \label{eq:11-3-1}\end{equation}

\begin{equation}\boldsymbol{v} = \boldsymbol{X}^n \boldsymbol{b} \in \mathbb{R}^m \label{eq:11-3-2}\end{equation}

このとき $f$ は内積として書ける。$\boldsymbol{a}^\top (\boldsymbol{X}^n)^\top = (\boldsymbol{X}^n \boldsymbol{a})^\top = \boldsymbol{u}^\top$ であるから

\begin{equation}f = \boldsymbol{u}^\top \boldsymbol{v} \label{eq:11-3-3}\end{equation}

$f$ を $X_{ij}$ で偏微分する。$\boldsymbol{u}$ と $\boldsymbol{v}$ は両方とも $\boldsymbol{X}$ に依存するので、積の微分法則(1.25)を適用する。

\begin{equation}\frac{\partial f}{\partial X_{ij}} = \frac{\partial \boldsymbol{u}^\top}{\partial X_{ij}} \boldsymbol{v} + \boldsymbol{u}^\top \frac{\partial \boldsymbol{v}}{\partial X_{ij}} \label{eq:11-3-4}\end{equation}

$\displaystyle\frac{\partial \boldsymbol{u}^\top}{\partial X_{ij}} = \left(\displaystyle\frac{\partial \boldsymbol{u}}{\partial X_{ij}}\right)^\top$ であるから、$\eqref{eq:11-3-4}$ は

\begin{equation}\frac{\partial f}{\partial X_{ij}} = \left(\frac{\partial \boldsymbol{u}}{\partial X_{ij}}\right)^\top \boldsymbol{v} + \boldsymbol{u}^\top \frac{\partial \boldsymbol{v}}{\partial X_{ij}} \label{eq:11-3-5}\end{equation}

$\boldsymbol{u} = \boldsymbol{X}^n \boldsymbol{a}$ の微分を計算する。11.1 の $\eqref{eq:11-1-6}$ より

\begin{equation}\frac{\partial \boldsymbol{u}}{\partial X_{ij}} = \frac{\partial (\boldsymbol{X}^n \boldsymbol{a})}{\partial X_{ij}} = \frac{\partial \boldsymbol{X}^n}{\partial X_{ij}} \boldsymbol{a} = \sum_{r=0}^{n-1} \boldsymbol{X}^r \boldsymbol{J}^{ij} \boldsymbol{X}^{n-1-r} \boldsymbol{a} \label{eq:11-3-6}\end{equation}

同様に $\boldsymbol{v} = \boldsymbol{X}^n \boldsymbol{b}$ の微分は

\begin{equation}\frac{\partial \boldsymbol{v}}{\partial X_{ij}} = \sum_{r=0}^{n-1} \boldsymbol{X}^r \boldsymbol{J}^{ij} \boldsymbol{X}^{n-1-r} \boldsymbol{b} \label{eq:11-3-7}\end{equation}

$\eqref{eq:11-3-5}$ の第1項を計算する。$\eqref{eq:11-3-6}$ の転置は

\begin{equation}\left(\frac{\partial \boldsymbol{u}}{\partial X_{ij}}\right)^\top = \sum_{r=0}^{n-1} \boldsymbol{a}^\top (\boldsymbol{X}^{n-1-r})^\top (\boldsymbol{J}^{ij})^\top (\boldsymbol{X}^r)^\top \label{eq:11-3-8}\end{equation}

$(\boldsymbol{J}^{ij})^\top = \boldsymbol{J}^{ji}$($(i, j)$ 成分と $(j, i)$ 成分の入れ替え)に注意する。

第1項 $\left(\displaystyle\frac{\partial \boldsymbol{u}}{\partial X_{ij}}\right)^\top \boldsymbol{v}$ を計算する。

\begin{equation}\left(\frac{\partial \boldsymbol{u}}{\partial X_{ij}}\right)^\top \boldsymbol{v} = \sum_{r=0}^{n-1} \boldsymbol{a}^\top (\boldsymbol{X}^{n-1-r})^\top \boldsymbol{J}^{ji} (\boldsymbol{X}^r)^\top \boldsymbol{v} \label{eq:11-3-9}\end{equation}

$\boldsymbol{v} = \boldsymbol{X}^n \boldsymbol{b}$ を代入し、$\boldsymbol{J}^{ji}$ の作用を計算する。$\boldsymbol{p}^\top \boldsymbol{J}^{ji} \boldsymbol{q} = p_j q_i$ である。

\begin{equation}\boldsymbol{a}^\top (\boldsymbol{X}^{n-1-r})^\top \boldsymbol{J}^{ji} (\boldsymbol{X}^r)^\top \boldsymbol{X}^n \boldsymbol{b} = ((\boldsymbol{X}^{n-1-r}) \boldsymbol{a})_j ((\boldsymbol{X}^r)^\top \boldsymbol{X}^n \boldsymbol{b})_i \label{eq:11-3-10}\end{equation}

第2項 $\boldsymbol{u}^\top \displaystyle\frac{\partial \boldsymbol{v}}{\partial X_{ij}}$ を同様に計算する。

\begin{equation}\boldsymbol{u}^\top \frac{\partial \boldsymbol{v}}{\partial X_{ij}} = \sum_{r=0}^{n-1} \boldsymbol{a}^\top (\boldsymbol{X}^n)^\top \boldsymbol{X}^r \boldsymbol{J}^{ij} \boldsymbol{X}^{n-1-r} \boldsymbol{b} \label{eq:11-3-11}\end{equation}

$\boldsymbol{J}^{ij}$ の作用を計算する。$\boldsymbol{p}^\top \boldsymbol{J}^{ij} \boldsymbol{q} = p_i q_j$ である。

\begin{equation}\boldsymbol{a}^\top (\boldsymbol{X}^n)^\top \boldsymbol{X}^r \boldsymbol{J}^{ij} \boldsymbol{X}^{n-1-r} \boldsymbol{b} = ((\boldsymbol{X}^r)^\top \boldsymbol{X}^n \boldsymbol{a})_i ((\boldsymbol{X}^{n-1-r}) \boldsymbol{b})_j \label{eq:11-3-12}\end{equation}

$\eqref{eq:11-3-10}$ と $\eqref{eq:11-3-12}$ を行列形式で書く。外積 $\boldsymbol{p} \boldsymbol{q}^\top$ の $(i, j)$ 成分は $p_i q_j$ である。

$\eqref{eq:11-3-10}$ より第1項の寄与は

\begin{equation}((\boldsymbol{X}^r)^\top \boldsymbol{X}^n \boldsymbol{b})_i ((\boldsymbol{X}^{n-1-r}) \boldsymbol{a})_j = ((\boldsymbol{X}^r)^\top \boldsymbol{X}^n \boldsymbol{b} \boldsymbol{a}^\top (\boldsymbol{X}^{n-1-r})^\top)_{ij} \label{eq:11-3-13}\end{equation}

$\eqref{eq:11-3-12}$ より第2項の寄与は

\begin{equation}((\boldsymbol{X}^r)^\top \boldsymbol{X}^n \boldsymbol{a})_i ((\boldsymbol{X}^{n-1-r}) \boldsymbol{b})_j = ((\boldsymbol{X}^r)^\top \boldsymbol{X}^n \boldsymbol{a} \boldsymbol{b}^\top (\boldsymbol{X}^{n-1-r})^\top)_{ij} \label{eq:11-3-14}\end{equation}

行列形式で最終結果を得る。

\begin{equation}\frac{\partial}{\partial \boldsymbol{X}} \boldsymbol{a}^\top (\boldsymbol{X}^n)^\top \boldsymbol{X}^n \boldsymbol{b} = \sum_{r=0}^{n-1} \left[ (\boldsymbol{X}^r)^\top \boldsymbol{X}^n \boldsymbol{b} \boldsymbol{a}^\top (\boldsymbol{X}^{n-1-r})^\top + (\boldsymbol{X}^r)^\top \boldsymbol{X}^n \boldsymbol{a} \boldsymbol{b}^\top (\boldsymbol{X}^{n-1-r})^\top \right] \label{eq:11-3-15}\end{equation}

補足:$\boldsymbol{a} = \boldsymbol{b}$ のとき、$\|\boldsymbol{X}^n \boldsymbol{a}\|^2 = \boldsymbol{a}^\top (\boldsymbol{X}^n)^\top \boldsymbol{X}^n \boldsymbol{a}$ の微分を与える。

11.4 合成双線形形式の微分

公式:$\displaystyle\frac{\partial}{\partial \boldsymbol{x}} \boldsymbol{s}^\top \boldsymbol{A} \boldsymbol{r} = \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}$
条件:$\boldsymbol{s}(\boldsymbol{x}), \boldsymbol{r}(\boldsymbol{x}) \in \mathbb{R}^m$ がベクトル関数、$\boldsymbol{A} \in \mathbb{R}^{m \times m}$ が定数行列、$\boldsymbol{x} \in \mathbb{R}^n$
証明

スカラ関数 $f = \boldsymbol{s}^\top \boldsymbol{A} \boldsymbol{r}$ を考える。$\boldsymbol{s}(\boldsymbol{x})$ と $\boldsymbol{r}(\boldsymbol{x})$ は $\boldsymbol{x}$ に依存するベクトル関数である。

$f$ を成分で展開する。

\begin{equation}f = \boldsymbol{s}^\top \boldsymbol{A} \boldsymbol{r} = \sum_{i=0}^{m-1} \sum_{j=0}^{m-1} s_i A_{ij} r_j \label{eq:11-4-1}\end{equation}

$f$ を $x_k$ で偏微分する。$A_{ij}$ は定数なので、積の微分法則(1.25)により $s_i$ と $r_j$ の微分を考える。

\begin{equation}\frac{\partial f}{\partial x_k} = \sum_{i,j} \frac{\partial s_i}{\partial x_k} A_{ij} r_j + \sum_{i,j} s_i A_{ij} \frac{\partial r_j}{\partial x_k} \label{eq:11-4-2}\end{equation}

第1項を計算する。まず $j$ についての和を実行する。

\begin{equation}\sum_{i,j} \frac{\partial s_i}{\partial x_k} A_{ij} r_j = \sum_{i} \frac{\partial s_i}{\partial x_k} \sum_{j} A_{ij} r_j = \sum_{i} \frac{\partial s_i}{\partial x_k} (\boldsymbol{A} \boldsymbol{r})_i \label{eq:11-4-3}\end{equation}

$\eqref{eq:11-4-3}$ を行列積として書く。$\displaystyle\frac{\partial s_i}{\partial x_k}$ はJacobi行列 $\displaystyle\frac{\partial \boldsymbol{s}}{\partial \boldsymbol{x}} \in \mathbb{R}^{m \times n}$ の $(i, k)$ 成分である。

\begin{equation}\sum_{i} \frac{\partial s_i}{\partial x_k} (\boldsymbol{A} \boldsymbol{r})_i = \sum_{i} \left(\frac{\partial \boldsymbol{s}}{\partial \boldsymbol{x}}\right)_{ik} (\boldsymbol{A} \boldsymbol{r})_i \label{eq:11-4-4}\end{equation}

$\left(\displaystyle\frac{\partial \boldsymbol{s}}{\partial \boldsymbol{x}}\right)_{ik} = \left(\left[\displaystyle\frac{\partial \boldsymbol{s}}{\partial \boldsymbol{x}}\right]^\top\right)_{ki}$ であるから

\begin{equation}\sum_{i} \left(\frac{\partial \boldsymbol{s}}{\partial \boldsymbol{x}}\right)_{ik} (\boldsymbol{A} \boldsymbol{r})_i = \sum_{i} \left(\left[\frac{\partial \boldsymbol{s}}{\partial \boldsymbol{x}}\right]^\top\right)_{ki} (\boldsymbol{A} \boldsymbol{r})_i = \left(\left[\frac{\partial \boldsymbol{s}}{\partial \boldsymbol{x}}\right]^\top \boldsymbol{A} \boldsymbol{r}\right)_k \label{eq:11-4-5}\end{equation}

第2項を計算する。まず $i$ についての和を実行する。

\begin{equation}\sum_{i,j} s_i A_{ij} \frac{\partial r_j}{\partial x_k} = \sum_{j} \frac{\partial r_j}{\partial x_k} \sum_{i} s_i A_{ij} \label{eq:11-4-6}\end{equation}

$\sum_i s_i A_{ij} = (\boldsymbol{s}^\top \boldsymbol{A})_j = (\boldsymbol{A}^\top \boldsymbol{s})_j$ を代入する。

\begin{equation}\sum_{j} \frac{\partial r_j}{\partial x_k} (\boldsymbol{A}^\top \boldsymbol{s})_j \label{eq:11-4-7}\end{equation}

第1項と同様の手順で、$\eqref{eq:11-4-7}$ を行列積として書く。

\begin{equation}\sum_{j} \frac{\partial r_j}{\partial x_k} (\boldsymbol{A}^\top \boldsymbol{s})_j = \sum_{j} \left(\left[\frac{\partial \boldsymbol{r}}{\partial \boldsymbol{x}}\right]^\top\right)_{kj} (\boldsymbol{A}^\top \boldsymbol{s})_j = \left(\left[\frac{\partial \boldsymbol{r}}{\partial \boldsymbol{x}}\right]^\top \boldsymbol{A}^\top \boldsymbol{s}\right)_k \label{eq:11-4-8}\end{equation}

$\eqref{eq:11-4-5}$ と $\eqref{eq:11-4-8}$ を $\eqref{eq:11-4-2}$ に代入する。

\begin{equation}\frac{\partial f}{\partial x_k} = \left(\left[\frac{\partial \boldsymbol{s}}{\partial \boldsymbol{x}}\right]^\top \boldsymbol{A} \boldsymbol{r}\right)_k + \left(\left[\frac{\partial \boldsymbol{r}}{\partial \boldsymbol{x}}\right]^\top \boldsymbol{A}^\top \boldsymbol{s}\right)_k \label{eq:11-4-9}\end{equation}

$\eqref{eq:11-4-9}$ はすべての $k = 0, \ldots, n-1$ について成り立つので、ベクトル形式で最終結果を得る。

\begin{equation}\frac{\partial}{\partial \boldsymbol{x}} \boldsymbol{s}^\top \boldsymbol{A} \boldsymbol{r} = \left[\frac{\partial \boldsymbol{s}}{\partial \boldsymbol{x}}\right]^\top \boldsymbol{A} \boldsymbol{r} + \left[\frac{\partial \boldsymbol{r}}{\partial \boldsymbol{x}}\right]^\top \boldsymbol{A}^\top \boldsymbol{s} \label{eq:11-4-10}\end{equation}

補足:$\boldsymbol{A} = \boldsymbol{I}$ のとき、$\boldsymbol{A}^\top = \boldsymbol{I}$ であるから、内積の微分公式 $\displaystyle\frac{\partial}{\partial \boldsymbol{x}} \boldsymbol{s}^\top \boldsymbol{r} = \left[\displaystyle\frac{\partial \boldsymbol{s}}{\partial \boldsymbol{x}}\right]^\top \boldsymbol{r} + \left[\displaystyle\frac{\partial \boldsymbol{r}}{\partial \boldsymbol{x}}\right]^\top \boldsymbol{s}$ が得られる。

11.5 Rayleigh商の微分

公式:$\displaystyle\frac{\partial}{\partial \boldsymbol{x}} \displaystyle\frac{\boldsymbol{x}^\top \boldsymbol{A}^\top \boldsymbol{A} \boldsymbol{x}}{\boldsymbol{x}^\top \boldsymbol{B}^\top \boldsymbol{B} \boldsymbol{x}} = 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}$
条件:$\boldsymbol{A}, \boldsymbol{B} \in \mathbb{R}^{m \times n}$(定数行列)、$\boldsymbol{x} \in \mathbb{R}^n$
証明

Rayleigh商 $f = \displaystyle\frac{\boldsymbol{x}^\top \boldsymbol{A}^\top \boldsymbol{A} \boldsymbol{x}}{\boldsymbol{x}^\top \boldsymbol{B}^\top \boldsymbol{B} \boldsymbol{x}}$ を考える。分子と分母をそれぞれ定義する。

\begin{equation}u = \boldsymbol{x}^\top \boldsymbol{A}^\top \boldsymbol{A} \boldsymbol{x} \label{eq:11-5-1}\end{equation}

\begin{equation}v = \boldsymbol{x}^\top \boldsymbol{B}^\top \boldsymbol{B} \boldsymbol{x} \label{eq:11-5-2}\end{equation}

このとき $f = u / v$ である。$u$ と $v$ はともに $\boldsymbol{x}$ の関数なので、商の微分法則(1.28)を適用する。

\begin{equation}\frac{\partial f}{\partial \boldsymbol{x}} = \frac{\partial}{\partial \boldsymbol{x}} \left( \frac{u}{v} \right) = \frac{1}{v} \frac{\partial u}{\partial \boldsymbol{x}} - \frac{u}{v^2} \frac{\partial v}{\partial \boldsymbol{x}} \label{eq:11-5-3}\end{equation}

$u = \boldsymbol{x}^\top \boldsymbol{A}^\top \boldsymbol{A} \boldsymbol{x}$ の微分を計算する。$\boldsymbol{C} = \boldsymbol{A}^\top \boldsymbol{A}$ とおくと、$\boldsymbol{C}$ は対称行列である($\boldsymbol{C}^\top = (\boldsymbol{A}^\top \boldsymbol{A})^\top = \boldsymbol{A}^\top \boldsymbol{A} = \boldsymbol{C}$)。

10.6 より、$\displaystyle\frac{\partial}{\partial \boldsymbol{x}} (\boldsymbol{x}^\top \boldsymbol{C} \boldsymbol{x}) = (\boldsymbol{C} + \boldsymbol{C}^\top) \boldsymbol{x}$ である。$\boldsymbol{C}$ が対称なので

\begin{equation}\frac{\partial u}{\partial \boldsymbol{x}} = (\boldsymbol{A}^\top \boldsymbol{A} + \boldsymbol{A}^\top \boldsymbol{A}) \boldsymbol{x} = 2 \boldsymbol{A}^\top \boldsymbol{A} \boldsymbol{x} \label{eq:11-5-4}\end{equation}

同様に $v = \boldsymbol{x}^\top \boldsymbol{B}^\top \boldsymbol{B} \boldsymbol{x}$ の微分を計算する。$\boldsymbol{D} = \boldsymbol{B}^\top \boldsymbol{B}$ も対称行列である。

\begin{equation}\frac{\partial v}{\partial \boldsymbol{x}} = 2 \boldsymbol{B}^\top \boldsymbol{B} \boldsymbol{x} \label{eq:11-5-5}\end{equation}

$\eqref{eq:11-5-4}$ と $\eqref{eq:11-5-5}$ を $\eqref{eq:11-5-3}$ に代入する。

\begin{equation}\frac{\partial f}{\partial \boldsymbol{x}} = \frac{1}{v} \cdot 2 \boldsymbol{A}^\top \boldsymbol{A} \boldsymbol{x} - \frac{u}{v^2} \cdot 2 \boldsymbol{B}^\top \boldsymbol{B} \boldsymbol{x} \label{eq:11-5-6}\end{equation}

$\eqref{eq:11-5-6}$ を整理する。

\begin{equation}\frac{\partial f}{\partial \boldsymbol{x}} = \frac{2 \boldsymbol{A}^\top \boldsymbol{A} \boldsymbol{x}}{v} - \frac{2u \cdot \boldsymbol{B}^\top \boldsymbol{B} \boldsymbol{x}}{v^2} \label{eq:11-5-7}\end{equation}

$u$ と $v$ の定義を代入して最終結果を得る。

\begin{equation}\frac{\partial}{\partial \boldsymbol{x}} \frac{\boldsymbol{x}^\top \boldsymbol{A}^\top \boldsymbol{A} \boldsymbol{x}}{\boldsymbol{x}^\top \boldsymbol{B}^\top \boldsymbol{B} \boldsymbol{x}} = \frac{2 \boldsymbol{A}^\top \boldsymbol{A} \boldsymbol{x}}{\boldsymbol{x}^\top \boldsymbol{B}^\top \boldsymbol{B} \boldsymbol{x}} - \frac{2 (\boldsymbol{x}^\top \boldsymbol{A}^\top \boldsymbol{A} \boldsymbol{x}) \boldsymbol{B}^\top \boldsymbol{B} \boldsymbol{x}}{(\boldsymbol{x}^\top \boldsymbol{B}^\top \boldsymbol{B} \boldsymbol{x})^2} \label{eq:11-5-8}\end{equation}

補足:Rayleigh商は固有値問題や主成分分析で重要である。$\boldsymbol{B} = \boldsymbol{I}$ のとき、$v = \|\boldsymbol{x}\|^2$ となり、$\displaystyle\frac{\partial}{\partial \boldsymbol{x}} \displaystyle\frac{\boldsymbol{x}^\top \boldsymbol{A}^\top \boldsymbol{A} \boldsymbol{x}}{\|\boldsymbol{x}\|^2} = \displaystyle\frac{2}{\|\boldsymbol{x}\|^2}\left(\boldsymbol{A}^\top \boldsymbol{A} \boldsymbol{x} - \displaystyle\frac{\boldsymbol{x}^\top \boldsymbol{A}^\top \boldsymbol{A} \boldsymbol{x}}{\|\boldsymbol{x}\|^2} \boldsymbol{x}\right)$ が得られる。
出典:J.W. Strutt (Lord Rayleigh) (1877) "The Theory of Sound", Vol.1. 固有値の変分特性はRayleigh-Ritz法として知られる。

11.6a/b 二次形式の勾配とHessian

公式:$f(\boldsymbol{x}) = \boldsymbol{x}^\top \boldsymbol{A} \boldsymbol{x} + \boldsymbol{b}^\top \boldsymbol{x}$ に対して
勾配:$\nabla_{\boldsymbol{x}} f = (\boldsymbol{A} + \boldsymbol{A}^\top)\boldsymbol{x} + \boldsymbol{b}$
Hessian:$\boldsymbol{H} = \boldsymbol{A} + \boldsymbol{A}^\top$
条件:$\boldsymbol{A} \in \mathbb{R}^{n \times n}$、$\boldsymbol{x}, \boldsymbol{b} \in \mathbb{R}^n$
証明

スカラ関数 $f(\boldsymbol{x}) = \boldsymbol{x}^\top \boldsymbol{A} \boldsymbol{x} + \boldsymbol{b}^\top \boldsymbol{x}$ を考える。

【勾配の導出】

$f$ を2つの項に分解する。

\begin{equation}f = f_1 + f_2, \quad f_1 = \boldsymbol{x}^\top \boldsymbol{A} \boldsymbol{x}, \quad f_2 = \boldsymbol{b}^\top \boldsymbol{x} \label{eq:11-6-1}\end{equation}

$f_1 = \boldsymbol{x}^\top \boldsymbol{A} \boldsymbol{x}$ の勾配を計算する。10.6 より

\begin{equation}\nabla_{\boldsymbol{x}} f_1 = (\boldsymbol{A} + \boldsymbol{A}^\top) \boldsymbol{x} \label{eq:11-6-2}\end{equation}

$f_2 = \boldsymbol{b}^\top \boldsymbol{x}$ の勾配を計算する。$f_2$ を成分で書くと

\begin{equation}f_2 = \sum_{i=0}^{n-1} b_i x_i \label{eq:11-6-3}\end{equation}

$f_2$ を $x_k$ で偏微分する。$b_i$ は定数である。

\begin{equation}\frac{\partial f_2}{\partial x_k} = \sum_{i=0}^{n-1} b_i \frac{\partial x_i}{\partial x_k} = \sum_{i=0}^{n-1} b_i \delta_{ik} = b_k \label{eq:11-6-4}\end{equation}

$\eqref{eq:11-6-4}$ はすべての $k$ について成り立つので、ベクトル形式で

\begin{equation}\nabla_{\boldsymbol{x}} f_2 = \boldsymbol{b} \label{eq:11-6-5}\end{equation}

$\eqref{eq:11-6-2}$ と $\eqref{eq:11-6-5}$ を合わせて、$f$ の勾配を得る。

\begin{equation}\nabla_{\boldsymbol{x}} f = \nabla_{\boldsymbol{x}} f_1 + \nabla_{\boldsymbol{x}} f_2 = (\boldsymbol{A} + \boldsymbol{A}^\top) \boldsymbol{x} + \boldsymbol{b} \label{eq:11-6-6}\end{equation}

【Hessianの導出】

Hessian 行列 $\boldsymbol{H}$ は勾配をさらに $\boldsymbol{x}$ で微分した行列である。

\begin{equation}H_{kl} = \frac{\partial^2 f}{\partial x_l \partial x_k} = \frac{\partial}{\partial x_l} \left( \frac{\partial f}{\partial x_k} \right) \label{eq:11-6-7}\end{equation}

$\eqref{eq:11-6-6}$ より、勾配の第 $k$ 成分は

\begin{equation}\left( \nabla_{\boldsymbol{x}} f \right)_k = \sum_{j=0}^{n-1} (A_{kj} + A_{jk}) x_j + b_k \label{eq:11-6-8}\end{equation}

$\eqref{eq:11-6-8}$ を $x_l$ で偏微分する。$A_{kj}$、$A_{jk}$、$b_k$ はすべて定数である。

\begin{equation}\frac{\partial}{\partial x_l} \left( \nabla_{\boldsymbol{x}} f \right)_k = \sum_{j=0}^{n-1} (A_{kj} + A_{jk}) \frac{\partial x_j}{\partial x_l} = \sum_{j=0}^{n-1} (A_{kj} + A_{jk}) \delta_{jl} \label{eq:11-6-9}\end{equation}

$\delta_{jl}$ により $j = l$ の項のみ残る。

\begin{equation}H_{kl} = A_{kl} + A_{lk} \label{eq:11-6-10}\end{equation}

$\eqref{eq:11-6-10}$ を行列形式で書く。

\begin{equation}\boldsymbol{H} = \boldsymbol{A} + \boldsymbol{A}^\top \label{eq:11-6-11}\end{equation}

補足:$\eqref{eq:11-6-11}$ より Hessian は常に対称行列である($\boldsymbol{H}^\top = \boldsymbol{A}^\top + \boldsymbol{A} = \boldsymbol{H}$)。$\boldsymbol{A}$ が対称行列の場合、$\nabla_{\boldsymbol{x}} f = 2\boldsymbol{A}\boldsymbol{x} + \boldsymbol{b}$、$\boldsymbol{H} = 2\boldsymbol{A}$ となる。$\boldsymbol{H}$ が正定値なら $f$ は狭義凸関数であり、$\nabla_{\boldsymbol{x}} f = \boldsymbol{0}$ の点が大域的最小点となる。

11.1 行列指数関数の微分

行列指数関数 $e^{\boldsymbol{A}}$ のFréchet微分を導出する。

11.7 行列指数関数の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{A}, \boldsymbol{E} \in \mathbb{R}^{n \times n}$
証明

Fréchet微分 $D_{\boldsymbol{A}} e^{\boldsymbol{A}}[\boldsymbol{E}]$ は、方向 $\boldsymbol{E}$ への方向微分を表す。定義より

\begin{equation}D_{\boldsymbol{A}} e^{\boldsymbol{A}}[\boldsymbol{E}] = \lim_{t \to 0} \frac{e^{\boldsymbol{A} + t\boldsymbol{E}} - e^{\boldsymbol{A}}}{t} \label{eq:11-7-1}\end{equation}

補助行列関数 $\boldsymbol{F}(t)$ を定義する。

\begin{equation}\boldsymbol{F}(t) = e^{-t\boldsymbol{A}} e^{t(\boldsymbol{A} + \boldsymbol{E})} \label{eq:11-7-2}\end{equation}

$t = 0$ での $\boldsymbol{F}$ の値を確認する。

\begin{equation}\boldsymbol{F}(0) = e^{\boldsymbol{O}} e^{\boldsymbol{O}} = \boldsymbol{I} \cdot \boldsymbol{I} = \boldsymbol{I} \label{eq:11-7-3}\end{equation}

$\boldsymbol{F}(t)$ を $t$ で微分する。積の微分法則(1.25)を適用する。

\begin{equation}\frac{d\boldsymbol{F}}{dt} = \frac{d}{dt}\left(e^{-t\boldsymbol{A}}\right) e^{t(\boldsymbol{A} + \boldsymbol{E})} + e^{-t\boldsymbol{A}} \frac{d}{dt}\left(e^{t(\boldsymbol{A} + \boldsymbol{E})}\right) \label{eq:11-7-4}\end{equation}

行列指数関数のスカラ微分(11.8 で証明する)より、$\displaystyle\frac{d}{dt} e^{t\boldsymbol{M}} = \boldsymbol{M} e^{t\boldsymbol{M}}$ である。

\begin{equation}\frac{d}{dt}\left(e^{-t\boldsymbol{A}}\right) = -\boldsymbol{A} e^{-t\boldsymbol{A}} \label{eq:11-7-5}\end{equation}

\begin{equation}\frac{d}{dt}\left(e^{t(\boldsymbol{A} + \boldsymbol{E})}\right) = (\boldsymbol{A} + \boldsymbol{E}) e^{t(\boldsymbol{A} + \boldsymbol{E})} \label{eq:11-7-6}\end{equation}

$\eqref{eq:11-7-5}$ と $\eqref{eq:11-7-6}$ を $\eqref{eq:11-7-4}$ に代入する。

\begin{equation}\frac{d\boldsymbol{F}}{dt} = -\boldsymbol{A} e^{-t\boldsymbol{A}} e^{t(\boldsymbol{A} + \boldsymbol{E})} + e^{-t\boldsymbol{A}} (\boldsymbol{A} + \boldsymbol{E}) e^{t(\boldsymbol{A} + \boldsymbol{E})} \label{eq:11-7-7}\end{equation}

$\eqref{eq:11-7-7}$ の第1項と第2項を整理する。$\boldsymbol{F}(t) = e^{-t\boldsymbol{A}} e^{t(\boldsymbol{A} + \boldsymbol{E})}$ を用いると

\begin{equation}\frac{d\boldsymbol{F}}{dt} = -\boldsymbol{A} \boldsymbol{F}(t) + e^{-t\boldsymbol{A}} (\boldsymbol{A} + \boldsymbol{E}) e^{t(\boldsymbol{A} + \boldsymbol{E})} \label{eq:11-7-8}\end{equation}

第2項を展開する。$e^{-t\boldsymbol{A}} \boldsymbol{A} e^{t(\boldsymbol{A} + \boldsymbol{E})}$ と $e^{-t\boldsymbol{A}} \boldsymbol{E} e^{t(\boldsymbol{A} + \boldsymbol{E})}$ に分ける。

\begin{equation}\frac{d\boldsymbol{F}}{dt} = -\boldsymbol{A} \boldsymbol{F}(t) + e^{-t\boldsymbol{A}} \boldsymbol{A} e^{t(\boldsymbol{A} + \boldsymbol{E})} + e^{-t\boldsymbol{A}} \boldsymbol{E} e^{t(\boldsymbol{A} + \boldsymbol{E})} \label{eq:11-7-9}\end{equation}

$\eqref{eq:11-7-9}$ の第1項と第2項の和を整理する。$-\boldsymbol{A} \boldsymbol{F}(t) + e^{-t\boldsymbol{A}} \boldsymbol{A} e^{t(\boldsymbol{A} + \boldsymbol{E})}$ において $\boldsymbol{F}(t) = e^{-t\boldsymbol{A}} e^{t(\boldsymbol{A} + \boldsymbol{E})}$ を代入すると $-\boldsymbol{A} e^{-t\boldsymbol{A}} e^{t(\boldsymbol{A}+\boldsymbol{E})} + e^{-t\boldsymbol{A}} \boldsymbol{A} e^{t(\boldsymbol{A}+\boldsymbol{E})}$ となる。ここで $\boldsymbol{A}$ と $e^{-t\boldsymbol{A}}$ は可換(11.8 の $\eqref{eq:11-8-15}$ で証明)なので $\boldsymbol{A} e^{-t\boldsymbol{A}} = e^{-t\boldsymbol{A}} \boldsymbol{A}$ が成り立ち、この2項は完全に打ち消し合う。したがって

\begin{equation}\frac{d\boldsymbol{F}}{dt} = e^{-t\boldsymbol{A}} \boldsymbol{E} e^{t(\boldsymbol{A} + \boldsymbol{E})} \label{eq:11-7-10}\end{equation}

$\boldsymbol{F}(1) - \boldsymbol{F}(0)$ を微積分学の基本定理で計算する。

\begin{equation}\boldsymbol{F}(1) - \boldsymbol{I} = \int_0^1 \frac{d\boldsymbol{F}}{dt} dt \label{eq:11-7-11}\end{equation}

$\eqref{eq:11-7-2}$ より $\boldsymbol{F}(1) = e^{-\boldsymbol{A}} e^{\boldsymbol{A} + \boldsymbol{E}}$ なので、両辺に左から $e^{\boldsymbol{A}}$ を掛けると

\begin{equation}e^{\boldsymbol{A} + \boldsymbol{E}} - e^{\boldsymbol{A}} = e^{\boldsymbol{A}} \int_0^1 \frac{d\boldsymbol{F}}{dt} dt \label{eq:11-7-12}\end{equation}

$\boldsymbol{E}$ についての1次項を取り出す。$\eqref{eq:11-7-10}$ で $t$ を $s$ に置き換え、$e^{s(\boldsymbol{A} + \boldsymbol{E})} \approx e^{s\boldsymbol{A}}$(1次近似)とすると

\begin{equation}D_{\boldsymbol{A}} e^{\boldsymbol{A}}[\boldsymbol{E}] = \int_0^1 e^{s\boldsymbol{A}} \boldsymbol{E}\, e^{(1-s)\boldsymbol{A}} ds \label{eq:11-7-13}\end{equation}

補足:$\boldsymbol{A}$ と $\boldsymbol{E}$ が可換($\boldsymbol{AE} = \boldsymbol{EA}$)のとき、$e^{s\boldsymbol{A}} \boldsymbol{E} = \boldsymbol{E} e^{s\boldsymbol{A}}$ であるから、$D_{\boldsymbol{A}} e^{\boldsymbol{A}}[\boldsymbol{E}] = \boldsymbol{E} \int_0^1 e^{s\boldsymbol{A}} e^{(1-s)\boldsymbol{A}} ds = \boldsymbol{E} \int_0^1 e^{\boldsymbol{A}} ds = \boldsymbol{E} e^{\boldsymbol{A}}$ に簡約化される。

11.8 行列指数のスカラパラメータ微分

公式:$\displaystyle\frac{\partial}{\partial t} e^{t\boldsymbol{A}} = \boldsymbol{A} e^{t\boldsymbol{A}} = e^{t\boldsymbol{A}} \boldsymbol{A}$
条件:$\boldsymbol{A} \in \mathbb{R}^{n \times n}$ は定数行列、$t \in \mathbb{R}$ はスカラパラメータ
証明

行列指数関数 $e^{t\boldsymbol{A}}$ の定義を確認する。行列指数関数はべき級数で定義される。

\begin{equation}e^{t\boldsymbol{A}} = \sum_{k=0}^{\infty} \frac{(t\boldsymbol{A})^k}{k!} \label{eq:11-8-1}\end{equation}

$\eqref{eq:11-8-1}$ の $(t\boldsymbol{A})^k$ を展開する。$t$ はスカラなので、行列のべき乗の外に出せる。

\begin{equation}(t\boldsymbol{A})^k = t^k \boldsymbol{A}^k \label{eq:11-8-2}\end{equation}

$\eqref{eq:11-8-2}$ を $\eqref{eq:11-8-1}$ に代入する。

\begin{equation}e^{t\boldsymbol{A}} = \sum_{k=0}^{\infty} \frac{t^k \boldsymbol{A}^k}{k!} \label{eq:11-8-3}\end{equation}

$\eqref{eq:11-8-3}$ を $t$ で微分する。べき級数の項別微分が許される(行列指数関数の収束性による)。

\begin{equation}\frac{\partial}{\partial t} e^{t\boldsymbol{A}} = \frac{\partial}{\partial t} \sum_{k=0}^{\infty} \frac{t^k \boldsymbol{A}^k}{k!} = \sum_{k=0}^{\infty} \frac{\boldsymbol{A}^k}{k!} \frac{\partial}{\partial t} t^k \label{eq:11-8-4}\end{equation}

$t^k$ を $t$ で微分する。$k = 0$ のとき $t^0 = 1$ なので微分は 0 である。

\begin{equation}\frac{\partial}{\partial t} t^k = \begin{cases} 0 & (k = 0) \\ k t^{k-1} & (k \geq 1) \end{cases} \label{eq:11-8-5}\end{equation}

$\eqref{eq:11-8-5}$ を $\eqref{eq:11-8-4}$ に代入する。$k = 0$ の項は消えるので、和は $k = 1$ から始まる。

\begin{equation}\frac{\partial}{\partial t} e^{t\boldsymbol{A}} = \sum_{k=1}^{\infty} \frac{\boldsymbol{A}^k}{k!} \cdot k t^{k-1} \label{eq:11-8-6}\end{equation}

$\eqref{eq:11-8-6}$ の $\displaystyle\frac{k}{k!}$ を簡約する。$k! = k \cdot (k-1)!$ であるから

\begin{equation}\frac{k}{k!} = \frac{k}{k \cdot (k-1)!} = \frac{1}{(k-1)!} \label{eq:11-8-7}\end{equation}

$\eqref{eq:11-8-7}$ を $\eqref{eq:11-8-6}$ に代入する。

\begin{equation}\frac{\partial}{\partial t} e^{t\boldsymbol{A}} = \sum_{k=1}^{\infty} \frac{t^{k-1} \boldsymbol{A}^k}{(k-1)!} \label{eq:11-8-8}\end{equation}

$\boldsymbol{A}^k = \boldsymbol{A} \cdot \boldsymbol{A}^{k-1}$ と分解する。

\begin{equation}\frac{\partial}{\partial t} e^{t\boldsymbol{A}} = \sum_{k=1}^{\infty} \frac{t^{k-1} \boldsymbol{A} \boldsymbol{A}^{k-1}}{(k-1)!} \label{eq:11-8-9}\end{equation}

$\boldsymbol{A}$ は $k$ に依存しないので、和の外に出す。

\begin{equation}\frac{\partial}{\partial t} e^{t\boldsymbol{A}} = \boldsymbol{A} \sum_{k=1}^{\infty} \frac{t^{k-1} \boldsymbol{A}^{k-1}}{(k-1)!} \label{eq:11-8-10}\end{equation}

添字を $j = k - 1$ に置き換える。$k = 1$ のとき $j = 0$、$k \to \infty$ のとき $j \to \infty$ である。

\begin{equation}\frac{\partial}{\partial t} e^{t\boldsymbol{A}} = \boldsymbol{A} \sum_{j=0}^{\infty} \frac{t^{j} \boldsymbol{A}^{j}}{j!} \label{eq:11-8-11}\end{equation}

$\eqref{eq:11-8-3}$ より、$\sum_{j=0}^{\infty} \displaystyle\frac{t^{j} \boldsymbol{A}^{j}}{j!} = e^{t\boldsymbol{A}}$ である。

\begin{equation}\frac{\partial}{\partial t} e^{t\boldsymbol{A}} = \boldsymbol{A} e^{t\boldsymbol{A}} \label{eq:11-8-12}\end{equation}

【$\boldsymbol{A}$ と $e^{t\boldsymbol{A}}$ の可換性の証明】

$\boldsymbol{A}$ と $e^{t\boldsymbol{A}}$ が可換であることを示す。$e^{t\boldsymbol{A}}$ のべき級数展開を用いる。

\begin{equation}\boldsymbol{A} e^{t\boldsymbol{A}} = \boldsymbol{A} \sum_{k=0}^{\infty} \frac{t^k \boldsymbol{A}^k}{k!} = \sum_{k=0}^{\infty} \frac{t^k \boldsymbol{A} \boldsymbol{A}^k}{k!} = \sum_{k=0}^{\infty} \frac{t^k \boldsymbol{A}^{k+1}}{k!} \label{eq:11-8-13}\end{equation}

同様に、$e^{t\boldsymbol{A}} \boldsymbol{A}$ を計算する。

\begin{equation}e^{t\boldsymbol{A}} \boldsymbol{A} = \sum_{k=0}^{\infty} \frac{t^k \boldsymbol{A}^k}{k!} \boldsymbol{A} = \sum_{k=0}^{\infty} \frac{t^k \boldsymbol{A}^k \boldsymbol{A}}{k!} = \sum_{k=0}^{\infty} \frac{t^k \boldsymbol{A}^{k+1}}{k!} \label{eq:11-8-14}\end{equation}

$\eqref{eq:11-8-13}$ と $\eqref{eq:11-8-14}$ は等しいので、$\boldsymbol{A}$ と $e^{t\boldsymbol{A}}$ は可換である。

\begin{equation}\boldsymbol{A} e^{t\boldsymbol{A}} = e^{t\boldsymbol{A}} \boldsymbol{A} \label{eq:11-8-15}\end{equation}

$\eqref{eq:11-8-12}$ と $\eqref{eq:11-8-15}$ を合わせて、最終結果を得る。

\begin{equation}\frac{\partial}{\partial t} e^{t\boldsymbol{A}} = \boldsymbol{A} e^{t\boldsymbol{A}} = e^{t\boldsymbol{A}} \boldsymbol{A} \label{eq:11-8-16}\end{equation}

補足:この公式は常微分方程式 $\displaystyle\frac{d\boldsymbol{x}}{dt} = \boldsymbol{A}\boldsymbol{x}$ の解が $\boldsymbol{x}(t) = e^{t\boldsymbol{A}}\boldsymbol{x}(0)$ であることの基礎となる。スカラの場合 $\displaystyle\frac{d}{dt} e^{at} = a e^{at}$ の行列版である。$t = 0$ のとき $e^{\boldsymbol{O}} = \boldsymbol{I}$ となり、$\displaystyle\frac{\partial}{\partial t} e^{t\boldsymbol{A}}\big|_{t=0} = \boldsymbol{A}$ が得られる。

11.9 行列指数のトレース微分

公式:$\displaystyle\frac{\partial}{\partial \boldsymbol{A}} \text{tr}(e^{\boldsymbol{A}}) = (e^{\boldsymbol{A}})^\top$
条件:$\boldsymbol{A} \in \mathbb{R}^{n \times n}$
証明

スカラ関数 $f = \text{tr}(e^{\boldsymbol{A}})$ を考える。$f$ を行列 $\boldsymbol{A}$ で微分する。

11.7 より、行列指数関数のFréchet微分は次のように与えられる。

\begin{equation}D_{\boldsymbol{A}} e^{\boldsymbol{A}}[\boldsymbol{E}] = \int_0^1 e^{s\boldsymbol{A}} \boldsymbol{E}\, e^{(1-s)\boldsymbol{A}} ds \label{eq:11-9-1}\end{equation}

ここで $\boldsymbol{E}$ は摂動の方向を表す行列である。

$f = \text{tr}(e^{\boldsymbol{A}})$ の方向微分を計算する。トレースは線形演算なので、Fréchet微分と交換できる。

\begin{equation}D_{\boldsymbol{A}} f[\boldsymbol{E}] = D_{\boldsymbol{A}} \text{tr}(e^{\boldsymbol{A}})[\boldsymbol{E}] = \text{tr}(D_{\boldsymbol{A}} e^{\boldsymbol{A}}[\boldsymbol{E}]) \label{eq:11-9-2}\end{equation}

$\eqref{eq:11-9-1}$ を $\eqref{eq:11-9-2}$ に代入する。

\begin{equation}D_{\boldsymbol{A}} f[\boldsymbol{E}] = \text{tr}\left(\int_0^1 e^{s\boldsymbol{A}} \boldsymbol{E}\, e^{(1-s)\boldsymbol{A}} ds\right) \label{eq:11-9-3}\end{equation}

トレースと積分は交換できる(線形性による)。

\begin{equation}D_{\boldsymbol{A}} f[\boldsymbol{E}] = \int_0^1 \text{tr}\left(e^{s\boldsymbol{A}} \boldsymbol{E}\, e^{(1-s)\boldsymbol{A}}\right) ds \label{eq:11-9-4}\end{equation}

トレースの巡回性(1.12)を適用する。

\begin{equation}\text{tr}\left(e^{s\boldsymbol{A}} \boldsymbol{E}\, e^{(1-s)\boldsymbol{A}}\right) = \text{tr}\left(e^{(1-s)\boldsymbol{A}} e^{s\boldsymbol{A}} \boldsymbol{E}\right) \label{eq:11-9-5}\end{equation}

$e^{(1-s)\boldsymbol{A}} e^{s\boldsymbol{A}}$ を計算する。行列指数関数の加法性($\boldsymbol{A}$ 同士は可換なので成立)より

\begin{equation}e^{(1-s)\boldsymbol{A}} e^{s\boldsymbol{A}} = e^{(1-s)\boldsymbol{A} + s\boldsymbol{A}} = e^{\boldsymbol{A}} \label{eq:11-9-6}\end{equation}

$\eqref{eq:11-9-6}$ を $\eqref{eq:11-9-5}$ に代入する。

\begin{equation}\text{tr}\left(e^{s\boldsymbol{A}} \boldsymbol{E}\, e^{(1-s)\boldsymbol{A}}\right) = \text{tr}\left(e^{\boldsymbol{A}} \boldsymbol{E}\right) \label{eq:11-9-7}\end{equation}

$\eqref{eq:11-9-7}$ の右辺は $s$ に依存しないことに注意する。$\eqref{eq:11-9-4}$ に代入する。

\begin{equation}D_{\boldsymbol{A}} f[\boldsymbol{E}] = \int_0^1 \text{tr}\left(e^{\boldsymbol{A}} \boldsymbol{E}\right) ds \label{eq:11-9-8}\end{equation}

被積分関数が $s$ に依存しないので、積分を計算する。

\begin{equation}D_{\boldsymbol{A}} f[\boldsymbol{E}] = \text{tr}\left(e^{\boldsymbol{A}} \boldsymbol{E}\right) \cdot \int_0^1 ds = \text{tr}\left(e^{\boldsymbol{A}} \boldsymbol{E}\right) \cdot 1 \label{eq:11-9-9}\end{equation}

したがって

\begin{equation}D_{\boldsymbol{A}} f[\boldsymbol{E}] = \text{tr}\left(e^{\boldsymbol{A}} \boldsymbol{E}\right) \label{eq:11-9-10}\end{equation}

方向微分と勾配の関係を用いて、勾配行列 $\boldsymbol{G} = \displaystyle\frac{\partial f}{\partial \boldsymbol{A}}$ を求める。一般に、スカラ関数 $f$ の方向微分は勾配との内積で表される。

\begin{equation}D_{\boldsymbol{A}} f[\boldsymbol{E}] = \text{tr}\left(\boldsymbol{G}^\top \boldsymbol{E}\right) \label{eq:11-9-11}\end{equation}

$\eqref{eq:11-9-10}$ と $\eqref{eq:11-9-11}$ を比較する。

\begin{equation}\text{tr}\left(e^{\boldsymbol{A}} \boldsymbol{E}\right) = \text{tr}\left(\boldsymbol{G}^\top \boldsymbol{E}\right) \label{eq:11-9-12}\end{equation}

$\eqref{eq:11-9-12}$ が任意の $\boldsymbol{E}$ に対して成り立つためには、次の等式が必要である。

\begin{equation}\boldsymbol{G}^\top = e^{\boldsymbol{A}} \label{eq:11-9-13}\end{equation}

$\eqref{eq:11-9-13}$ の両辺を転置する。

\begin{equation}\boldsymbol{G} = (e^{\boldsymbol{A}})^\top \label{eq:11-9-14}\end{equation}

$\boldsymbol{G} = \displaystyle\frac{\partial f}{\partial \boldsymbol{A}}$ であるから、最終結果を得る。

\begin{equation}\frac{\partial}{\partial \boldsymbol{A}} \text{tr}(e^{\boldsymbol{A}}) = (e^{\boldsymbol{A}})^\top \label{eq:11-9-15}\end{equation}

補足:$\boldsymbol{A}$ が対称行列のとき、$e^{\boldsymbol{A}}$ も対称になるので $(e^{\boldsymbol{A}})^\top = e^{\boldsymbol{A}}$ となり、$\displaystyle\frac{\partial}{\partial \boldsymbol{A}} \text{tr}(e^{\boldsymbol{A}}) = e^{\boldsymbol{A}}$ に簡約化される。この公式は最大エントロピー法やボルツマン分布の学習で用いられる。

行列指数の条件数

公式:$\kappa(e^{\boldsymbol{A}}) = \displaystyle\frac{\|\boldsymbol{A}\|}{\|e^{\boldsymbol{A}}\|} \|L(\boldsymbol{A}, \cdot)\|$($L$ はFréchet微分作用素)
条件:$\boldsymbol{A} \in \mathbb{R}^{n \times n}$、$\|\cdot\|$ は任意の行列ノルム(通常はFrobeniusノルムまたは作用素ノルム)
証明

行列指数関数 $e^{\boldsymbol{A}}$ の条件数を定義し、その意味を明確にする。

【条件数の定義】

数値解析において、関数 $f$ の条件数は入力の相対誤差が出力の相対誤差にどれだけ増幅されるかを測る指標である。

\begin{equation}\kappa(f) = \lim_{\epsilon \to 0} \sup_{\|\delta \boldsymbol{x}\| \leq \epsilon \|\boldsymbol{x}\|} \frac{\|f(\boldsymbol{x} + \delta \boldsymbol{x}) - f(\boldsymbol{x})\| / \|f(\boldsymbol{x})\|}{\|\delta \boldsymbol{x}\| / \|\boldsymbol{x}\|} \label{eq:11-10-1}\end{equation}

$f(\boldsymbol{A}) = e^{\boldsymbol{A}}$ の場合、入力の摂動を $\boldsymbol{E}$ とする。

\begin{equation}\boldsymbol{A} \to \boldsymbol{A} + \boldsymbol{E} \label{eq:11-10-2}\end{equation}

【1次近似による変動の評価】

$e^{\boldsymbol{A} + \boldsymbol{E}}$ を $\boldsymbol{E}$ の1次まで展開する。11.7 のFréchet微分を用いる。

\begin{equation}e^{\boldsymbol{A} + \boldsymbol{E}} = e^{\boldsymbol{A}} + D_{\boldsymbol{A}} e^{\boldsymbol{A}}[\boldsymbol{E}] + O(\|\boldsymbol{E}\|^2) \label{eq:11-10-3}\end{equation}

$\eqref{eq:11-10-3}$ を変形して、出力の変動を表す。

\begin{equation}e^{\boldsymbol{A} + \boldsymbol{E}} - e^{\boldsymbol{A}} = D_{\boldsymbol{A}} e^{\boldsymbol{A}}[\boldsymbol{E}] + O(\|\boldsymbol{E}\|^2) \label{eq:11-10-4}\end{equation}

$\|\boldsymbol{E}\|$ が十分小さいとき、高次項を無視できる。

\begin{equation}e^{\boldsymbol{A} + \boldsymbol{E}} - e^{\boldsymbol{A}} \approx D_{\boldsymbol{A}} e^{\boldsymbol{A}}[\boldsymbol{E}] \label{eq:11-10-5}\end{equation}

Fréchet微分を線形作用素 $L(\boldsymbol{A}, \cdot)$ として書く。

\begin{equation}L(\boldsymbol{A}, \boldsymbol{E}) = D_{\boldsymbol{A}} e^{\boldsymbol{A}}[\boldsymbol{E}] = \int_0^1 e^{s\boldsymbol{A}} \boldsymbol{E}\, e^{(1-s)\boldsymbol{A}} ds \label{eq:11-10-6}\end{equation}

【出力の変動のノルム評価】

$\eqref{eq:11-10-5}$ の両辺のノルムをとる。

\begin{equation}\|e^{\boldsymbol{A} + \boldsymbol{E}} - e^{\boldsymbol{A}}\| \approx \|L(\boldsymbol{A}, \boldsymbol{E})\| \label{eq:11-10-7}\end{equation}

線形作用素 $L(\boldsymbol{A}, \cdot)$ の作用素ノルムを定義する。

\begin{equation}\|L(\boldsymbol{A}, \cdot)\| = \sup_{\boldsymbol{E} \neq \boldsymbol{O}} \frac{\|L(\boldsymbol{A}, \boldsymbol{E})\|}{\|\boldsymbol{E}\|} = \sup_{\|\boldsymbol{E}\| = 1} \|L(\boldsymbol{A}, \boldsymbol{E})\| \label{eq:11-10-8}\end{equation}

$\eqref{eq:11-10-8}$ を用いると、任意の $\boldsymbol{E}$ に対して次の不等式が成り立つ。

\begin{equation}\|L(\boldsymbol{A}, \boldsymbol{E})\| \leq \|L(\boldsymbol{A}, \cdot)\| \cdot \|\boldsymbol{E}\| \label{eq:11-10-9}\end{equation}

【相対誤差の評価】

$\eqref{eq:11-10-7}$ と $\eqref{eq:11-10-9}$ を組み合わせる。

\begin{equation}\|e^{\boldsymbol{A} + \boldsymbol{E}} - e^{\boldsymbol{A}}\| \lesssim \|L(\boldsymbol{A}, \cdot)\| \cdot \|\boldsymbol{E}\| \label{eq:11-10-10}\end{equation}

両辺を $\|e^{\boldsymbol{A}}\|$ で割り、出力の相対誤差を求める。

\begin{equation}\frac{\|e^{\boldsymbol{A} + \boldsymbol{E}} - e^{\boldsymbol{A}}\|}{\|e^{\boldsymbol{A}}\|} \lesssim \frac{\|L(\boldsymbol{A}, \cdot)\|}{\|e^{\boldsymbol{A}}\|} \cdot \|\boldsymbol{E}\| \label{eq:11-10-11}\end{equation}

入力の相対誤差 $\displaystyle\frac{\|\boldsymbol{E}\|}{\|\boldsymbol{A}\|}$ を導入する。$\|\boldsymbol{E}\| = \|\boldsymbol{A}\| \cdot \displaystyle\frac{\|\boldsymbol{E}\|}{\|\boldsymbol{A}\|}$ を代入する。

\begin{equation}\frac{\|e^{\boldsymbol{A} + \boldsymbol{E}} - e^{\boldsymbol{A}}\|}{\|e^{\boldsymbol{A}}\|} \lesssim \frac{\|\boldsymbol{A}\| \cdot \|L(\boldsymbol{A}, \cdot)\|}{\|e^{\boldsymbol{A}}\|} \cdot \frac{\|\boldsymbol{E}\|}{\|\boldsymbol{A}\|} \label{eq:11-10-12}\end{equation}

【条件数の定義式】

$\eqref{eq:11-10-12}$ より、相対条件数 $\kappa(e^{\boldsymbol{A}})$ を次のように定義する。

\begin{equation}\kappa(e^{\boldsymbol{A}}) = \frac{\|\boldsymbol{A}\| \cdot \|L(\boldsymbol{A}, \cdot)\|}{\|e^{\boldsymbol{A}}\|} \label{eq:11-10-13}\end{equation}

$\eqref{eq:11-10-13}$ を用いると、$\eqref{eq:11-10-12}$ は次のように書ける。

\begin{equation}\frac{\|e^{\boldsymbol{A} + \boldsymbol{E}} - e^{\boldsymbol{A}}\|}{\|e^{\boldsymbol{A}}\|} \lesssim \kappa(e^{\boldsymbol{A}}) \cdot \frac{\|\boldsymbol{E}\|}{\|\boldsymbol{A}\|} \label{eq:11-10-14}\end{equation}

$\eqref{eq:11-10-14}$ は、入力の相対誤差が出力の相対誤差に最大 $\kappa(e^{\boldsymbol{A}})$ 倍に増幅されることを示している。

【作用素ノルムの上界】

$\|L(\boldsymbol{A}, \cdot)\|$ の上界を評価する。$\eqref{eq:11-10-6}$ より

\begin{equation}\|L(\boldsymbol{A}, \boldsymbol{E})\| = \left\|\int_0^1 e^{s\boldsymbol{A}} \boldsymbol{E}\, e^{(1-s)\boldsymbol{A}} ds\right\| \leq \int_0^1 \|e^{s\boldsymbol{A}}\| \|\boldsymbol{E}\| \|e^{(1-s)\boldsymbol{A}}\| ds \label{eq:11-10-15}\end{equation}

行列指数関数のノルムには $\|e^{t\boldsymbol{A}}\| \leq e^{t\|\boldsymbol{A}\|}$ という上界がある。これを適用する。

\begin{equation}\|L(\boldsymbol{A}, \boldsymbol{E})\| \leq \|\boldsymbol{E}\| \int_0^1 e^{s\|\boldsymbol{A}\|} e^{(1-s)\|\boldsymbol{A}\|} ds = \|\boldsymbol{E}\| \int_0^1 e^{\|\boldsymbol{A}\|} ds = e^{\|\boldsymbol{A}\|} \|\boldsymbol{E}\| \label{eq:11-10-16}\end{equation}

$\eqref{eq:11-10-16}$ より $\|L(\boldsymbol{A}, \cdot)\| \leq e^{\|\boldsymbol{A}\|}$ が得られる。

補足:条件数 $\kappa(e^{\boldsymbol{A}})$ が大きいと、$\boldsymbol{A}$ の小さな摂動が $e^{\boldsymbol{A}}$ の大きな変動を引き起こし、数値計算が不安定になる。実用的には Al-Mohy & Higham (2009) のアルゴリズムで条件数を推定できる。正規行列($\boldsymbol{A}^* \boldsymbol{A} = \boldsymbol{A} \boldsymbol{A}^*$)の場合、条件数は固有値から直接計算できる。

11.10 行列平方根の勾配

公式:$\boldsymbol{S} = \boldsymbol{A}^{1/2}$ に対して、上流勾配 $\bar{\boldsymbol{S}} = \displaystyle\frac{\partial L}{\partial \boldsymbol{S}}$ から $\displaystyle\frac{\partial L}{\partial \boldsymbol{A}}$ を求める:
Sylvester方程式 $\boldsymbol{S}\boldsymbol{X} + \boldsymbol{X}\boldsymbol{S} = \bar{\boldsymbol{S}}$ の解 $\boldsymbol{X}$ が $\displaystyle\frac{\partial L}{\partial \boldsymbol{A}}$
条件:$\boldsymbol{A} \in \mathbb{R}^{n \times n}$ は正定値対称行列、$\boldsymbol{S} = \boldsymbol{A}^{1/2}$ は主平方根(正定値対称)、$L$ はスカラ損失関数
証明

【行列平方根の定義】

$\boldsymbol{A}$ が正定値対称行列のとき、$\boldsymbol{S}^2 = \boldsymbol{A}$ を満たす正定値対称行列 $\boldsymbol{S}$ が一意に存在する。これを主平方根と呼ぶ。

\begin{equation}\boldsymbol{S} = \boldsymbol{A}^{1/2}, \quad \boldsymbol{S}^2 = \boldsymbol{A} \label{eq:11-11-1}\end{equation}

【順伝播の微分関係】

$\eqref{eq:11-11-1}$ の $\boldsymbol{S}^2 = \boldsymbol{A}$ を全微分する。$\boldsymbol{S}$ も $\boldsymbol{A}$ に依存して変化する。

\begin{equation}d(\boldsymbol{S}^2) = d\boldsymbol{A} \label{eq:11-11-2}\end{equation}

$\boldsymbol{S}^2 = \boldsymbol{S} \cdot \boldsymbol{S}$ に積の微分法則(1.25)を適用する。

\begin{equation}d(\boldsymbol{S}^2) = d\boldsymbol{S} \cdot \boldsymbol{S} + \boldsymbol{S} \cdot d\boldsymbol{S} \label{eq:11-11-3}\end{equation}

$\eqref{eq:11-11-2}$ と $\eqref{eq:11-11-3}$ を組み合わせる。

\begin{equation}d\boldsymbol{S} \cdot \boldsymbol{S} + \boldsymbol{S} \cdot d\boldsymbol{S} = d\boldsymbol{A} \label{eq:11-11-4}\end{equation}

【逆伝播の設定】

ニューラルネットワークの逆伝播において、損失関数 $L$ の $\boldsymbol{S}$ による勾配(上流勾配)が既知であるとする。

\begin{equation}\bar{\boldsymbol{S}} = \frac{\partial L}{\partial \boldsymbol{S}} \label{eq:11-11-5}\end{equation}

求めたいのは $L$ の $\boldsymbol{A}$ による勾配である。

\begin{equation}\boldsymbol{X} = \frac{\partial L}{\partial \boldsymbol{A}} \label{eq:11-11-6}\end{equation}

【連鎖律の適用】

連鎖律を微分形式で書く。$L$ の全微分は次のように表せる。

\begin{equation}dL = \text{tr}\left(\bar{\boldsymbol{S}}^\top d\boldsymbol{S}\right) = \text{tr}\left(\boldsymbol{X}^\top d\boldsymbol{A}\right) \label{eq:11-11-7}\end{equation}

ここで、行列の内積として $\text{tr}(\boldsymbol{G}^\top d\boldsymbol{M})$ という形を用いている。

【$d\boldsymbol{S}$ の消去】

$\eqref{eq:11-11-4}$ より $d\boldsymbol{A}$ と $d\boldsymbol{S}$ の関係が得られている。$\eqref{eq:11-11-7}$ の右辺に $\eqref{eq:11-11-4}$ を代入する。

\begin{equation}\text{tr}\left(\boldsymbol{X}^\top d\boldsymbol{A}\right) = \text{tr}\left(\boldsymbol{X}^\top (d\boldsymbol{S} \cdot \boldsymbol{S} + \boldsymbol{S} \cdot d\boldsymbol{S})\right) \label{eq:11-11-8}\end{equation}

トレースの線形性を用いて展開する。

\begin{equation}\text{tr}\left(\boldsymbol{X}^\top d\boldsymbol{A}\right) = \text{tr}\left(\boldsymbol{X}^\top d\boldsymbol{S} \cdot \boldsymbol{S}\right) + \text{tr}\left(\boldsymbol{X}^\top \boldsymbol{S} \cdot d\boldsymbol{S}\right) \label{eq:11-11-9}\end{equation}

トレースの巡回性(1.12)を適用する。第1項について

\begin{equation}\text{tr}\left(\boldsymbol{X}^\top d\boldsymbol{S} \cdot \boldsymbol{S}\right) = \text{tr}\left(\boldsymbol{S} \boldsymbol{X}^\top d\boldsymbol{S}\right) = \text{tr}\left((\boldsymbol{X} \boldsymbol{S}^\top)^\top d\boldsymbol{S}\right) \label{eq:11-11-10}\end{equation}

$\boldsymbol{S}$ は対称行列($\boldsymbol{S}^\top = \boldsymbol{S}$)なので

\begin{equation}\text{tr}\left((\boldsymbol{X} \boldsymbol{S}^\top)^\top d\boldsymbol{S}\right) = \text{tr}\left((\boldsymbol{X} \boldsymbol{S})^\top d\boldsymbol{S}\right) = \text{tr}\left(\boldsymbol{S}^\top \boldsymbol{X}^\top d\boldsymbol{S}\right) = \text{tr}\left(\boldsymbol{S} \boldsymbol{X}^\top d\boldsymbol{S}\right) \label{eq:11-11-11}\end{equation}

第2項について、同様に

\begin{equation}\text{tr}\left(\boldsymbol{X}^\top \boldsymbol{S} \cdot d\boldsymbol{S}\right) = \text{tr}\left((\boldsymbol{S}^\top \boldsymbol{X})^\top d\boldsymbol{S}\right) = \text{tr}\left((\boldsymbol{S} \boldsymbol{X})^\top d\boldsymbol{S}\right) \label{eq:11-11-12}\end{equation}

$\eqref{eq:11-11-11}$ と $\eqref{eq:11-11-12}$ を $\eqref{eq:11-11-9}$ に代入する。

\begin{equation}\text{tr}\left(\boldsymbol{X}^\top d\boldsymbol{A}\right) = \text{tr}\left(\boldsymbol{S} \boldsymbol{X}^\top d\boldsymbol{S}\right) + \text{tr}\left((\boldsymbol{S} \boldsymbol{X})^\top d\boldsymbol{S}\right) \label{eq:11-11-13}\end{equation}

$\boldsymbol{X}$ も対称行列である($\boldsymbol{A}$ が対称なので、その勾配も対称)と仮定すると $\boldsymbol{X}^\top = \boldsymbol{X}$ である。

\begin{equation}\text{tr}\left(\boldsymbol{X}^\top d\boldsymbol{A}\right) = \text{tr}\left((\boldsymbol{S} \boldsymbol{X})^\top d\boldsymbol{S}\right) + \text{tr}\left((\boldsymbol{X} \boldsymbol{S})^\top d\boldsymbol{S}\right) \label{eq:11-11-14}\end{equation}

トレースの線形性でまとめる。

\begin{equation}\text{tr}\left(\boldsymbol{X}^\top d\boldsymbol{A}\right) = \text{tr}\left((\boldsymbol{S} \boldsymbol{X} + \boldsymbol{X} \boldsymbol{S})^\top d\boldsymbol{S}\right) \label{eq:11-11-15}\end{equation}

【勾配の同定】

$\eqref{eq:11-11-7}$ の左辺 $\text{tr}(\bar{\boldsymbol{S}}^\top d\boldsymbol{S})$ と $\eqref{eq:11-11-15}$ を比較する。

\begin{equation}\text{tr}\left(\bar{\boldsymbol{S}}^\top d\boldsymbol{S}\right) = \text{tr}\left((\boldsymbol{S} \boldsymbol{X} + \boldsymbol{X} \boldsymbol{S})^\top d\boldsymbol{S}\right) \label{eq:11-11-16}\end{equation}

$\eqref{eq:11-11-16}$ が任意の $d\boldsymbol{S}$ に対して成り立つためには、次の等式が必要である。

\begin{equation}\boldsymbol{S} \boldsymbol{X} + \boldsymbol{X} \boldsymbol{S} = \bar{\boldsymbol{S}} \label{eq:11-11-17}\end{equation}

【Sylvester方程式】

$\eqref{eq:11-11-17}$ は $\boldsymbol{X}$ についてのSylvester方程式(連続型Lyapunov方程式の特殊形)である。

\begin{equation}\boldsymbol{S} \boldsymbol{X} + \boldsymbol{X} \boldsymbol{S} = \bar{\boldsymbol{S}} \label{eq:11-11-18}\end{equation}

$\boldsymbol{S}$ が正定値であるとき、$\boldsymbol{S}$ のすべての固有値は正であるから、$\boldsymbol{S}$ と $\boldsymbol{S}$ の固有値の和はすべて正となる。したがって、この方程式は一意解を持つ。

【固有値分解による解法】

$\boldsymbol{S}$ の固有値分解を $\boldsymbol{S} = \boldsymbol{Q} \boldsymbol{\Lambda} \boldsymbol{Q}^\top$ とする。ここで $\boldsymbol{Q}$ は直交行列、$\boldsymbol{\Lambda} = \text{diag}(\lambda_0, \ldots, \lambda_{n-1})$ は固有値の対角行列である。

\begin{equation}\boldsymbol{S} = \boldsymbol{Q} \boldsymbol{\Lambda} \boldsymbol{Q}^\top \label{eq:11-11-19}\end{equation}

$\eqref{eq:11-11-18}$ に $\eqref{eq:11-11-19}$ を代入し、$\tilde{\boldsymbol{X}} = \boldsymbol{Q}^\top \boldsymbol{X} \boldsymbol{Q}$、$\tilde{\bar{\boldsymbol{S}}} = \boldsymbol{Q}^\top \bar{\boldsymbol{S}} \boldsymbol{Q}$ と変換すると

\begin{equation}\boldsymbol{\Lambda} \tilde{\boldsymbol{X}} + \tilde{\boldsymbol{X}} \boldsymbol{\Lambda} = \tilde{\bar{\boldsymbol{S}}} \label{eq:11-11-20}\end{equation}

$\eqref{eq:11-11-20}$ を成分で書くと

\begin{equation}\lambda_i \tilde{X}_{ij} + \tilde{X}_{ij} \lambda_j = \tilde{\bar{S}}_{ij} \label{eq:11-11-21}\end{equation}

$\eqref{eq:11-11-21}$ を $\tilde{X}_{ij}$ について解く。

\begin{equation}\tilde{X}_{ij} = \frac{\tilde{\bar{S}}_{ij}}{\lambda_i + \lambda_j} \label{eq:11-11-22}\end{equation}

最後に逆変換して $\boldsymbol{X}$ を得る。

\begin{equation}\boldsymbol{X} = \boldsymbol{Q} \tilde{\boldsymbol{X}} \boldsymbol{Q}^\top = \frac{\partial L}{\partial \boldsymbol{A}} \label{eq:11-11-23}\end{equation}

補足:Sylvester方程式 $\eqref{eq:11-11-18}$ はBartels-Stewart法や Schur分解を用いて $O(n^3)$ の計算量で効率的に解ける。固有値分解 $\eqref{eq:11-11-19}$ が既知の場合は、$\eqref{eq:11-11-22}$ の要素ごとの除算で直接計算できる。この勾配計算は共分散行列の平方根を含むニューラルネットワーク(例:Whitening層、Second-Order Pooling)の学習で重要である。
出典:Sylvester方程式は J.J. Sylvester (1884) "Sur l'équation en matrices $px = xq$", Comptes Rendus de l'Académie des Sciences 99, 67-71, 115-116 に由来。

参考文献

  • 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