証明集 第14章: 行列連鎖律(基本公式)

Proofs Chapter 14: Matrix Chain Rule

本章では行列連鎖律(matrix chain rule)を証明する。 連鎖律は深層学習の逆伝播アルゴリズムの数学的基盤であり、 多層ニューラルネットワークの各層を通じた勾配の伝播を支配する。 成分形式の連鎖律からトレース形式への変換、 および自動微分(前進モードと後退モード)との対応を明確にする。 本章の結果は、計算グラフに基づく効率的な勾配計算の理論的根拠を提供する。

前提知識: 第3章(ベクトルをベクトルで微分)第4章(行列微分の基本公式)関連する章: 第6章(Hadamard積と活性化関数)第11章(行列べき乗と合成関数)

14. 行列連鎖律

本章の前提条件
本章の公式は、特に断りのない限り、以下の条件下で成立する:
  • すべての公式は分母レイアウト(denominator layout)に基づく
  • 中間変数行列 $\boldsymbol{U}$ の各成分は $\boldsymbol{X}$ の成分に関して微分可能
  • トレース形式の連鎖律はスカラ関数の合成に対して適用される

行列 $\boldsymbol{U} = f(\boldsymbol{X})$ が行列 $\boldsymbol{X}$ の関数であり、さらにスカラ関数 $g(\boldsymbol{U})$ があるとき、合成関数 $g(f(\boldsymbol{X}))$ を $\boldsymbol{X}$ で微分する公式を導出する。

14.1 行列連鎖律(成分形式)

公式:$\displaystyle\dfrac{\partial g(\boldsymbol{U})}{\partial X_{ij}} = \displaystyle\sum_{k=0}^{M-1} \displaystyle\sum_{l=0}^{N-1} \displaystyle\dfrac{\partial g(\boldsymbol{U})}{\partial U_{kl}} \displaystyle\dfrac{\partial U_{kl}}{\partial X_{ij}}$
条件:$\boldsymbol{U} \in \mathbb{R}^{M \times N}$ が $\boldsymbol{X}$ の関数、$g(\boldsymbol{U})$ はスカラ関数
証明

スカラ関数 $g(\boldsymbol{U})$ を考える。$\boldsymbol{U} = f(\boldsymbol{X})$ は行列 $\boldsymbol{X}$ の関数である。

$g$ は中間変数行列 $\boldsymbol{U}$ の全成分 $U_{kl}$($k = 0, \ldots, M-1$、$l = 0, \ldots, N-1$)を通じてスカラ値を出力する。$g$ を $\boldsymbol{U}$ の成分の関数として明示的に書くと

\begin{equation}g = g(U_{00}, U_{01}, \ldots, U_{M-1,N-1}) \label{eq:14-1-1}\end{equation}

$\boldsymbol{X}$ の成分 $X_{ij}$ を微小量 $\Delta X_{ij}$ だけ変化させることを考える。この変化により、中間変数 $\boldsymbol{U}$ の各成分 $U_{kl}$ も変化する。

\begin{equation}\Delta U_{kl} = \dfrac{\partial U_{kl}}{\partial X_{ij}} \Delta X_{ij} + O((\Delta X_{ij})^2) \label{eq:14-1-2}\end{equation}

$g$ の変化量 $\Delta g$ を計算する。$g$ は $\boldsymbol{U}$ の全成分に依存するため、多変数関数の全微分を適用する。

\begin{equation}\Delta g = \displaystyle\sum_{k=0}^{M-1} \displaystyle\sum_{l=0}^{N-1} \dfrac{\partial g}{\partial U_{kl}} \Delta U_{kl} + O((\Delta U_{kl})^2) \label{eq:14-1-3}\end{equation}

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

\begin{equation}\Delta g = \displaystyle\sum_{k=0}^{M-1} \displaystyle\sum_{l=0}^{N-1} \dfrac{\partial g}{\partial U_{kl}} \dfrac{\partial U_{kl}}{\partial X_{ij}} \Delta X_{ij} + O((\Delta X_{ij})^2) \label{eq:14-1-4}\end{equation}

$\eqref{eq:14-1-4}$ を $\Delta X_{ij}$ で割り、$\Delta X_{ij} \to 0$ の極限を取る。

\begin{equation}\dfrac{\partial g}{\partial X_{ij}} = \lim_{\Delta X_{ij} \to 0} \dfrac{\Delta g}{\Delta X_{ij}} = \displaystyle\sum_{k=0}^{M-1} \displaystyle\sum_{l=0}^{N-1} \dfrac{\partial g}{\partial U_{kl}} \dfrac{\partial U_{kl}}{\partial X_{ij}} \label{eq:14-1-5}\end{equation}

$\eqref{eq:14-1-5}$ が行列連鎖律の成分形式である。

補足:$\eqref{eq:14-1-5}$ の二重和は、すべての $(k, l)$ の組み合わせについての和を表す。これは多変数関数の連鎖律を行列の全成分に拡張したものである。

14.2 行列連鎖律(トレース形式)

公式:$\displaystyle\dfrac{\partial g(\boldsymbol{U})}{\partial X_{ij}} = \text{tr}\left[\left(\displaystyle\dfrac{\partial g}{\partial \boldsymbol{U}}\right)^\top \displaystyle\dfrac{\partial \boldsymbol{U}}{\partial X_{ij}}\right]$
条件14.1 と同じ
証明

14.1 の $\eqref{eq:14-1-5}$ より、連鎖律の成分形式は

\begin{equation}\dfrac{\partial g}{\partial X_{ij}} = \displaystyle\sum_{k=0}^{M-1} \displaystyle\sum_{l=0}^{N-1} \dfrac{\partial g}{\partial U_{kl}} \dfrac{\partial U_{kl}}{\partial X_{ij}} \label{eq:14-2-1}\end{equation}

2つの行列を定義する。勾配行列を $\boldsymbol{G}$、微分行列を $\boldsymbol{H}^{ij}$ とする。

\begin{equation}\boldsymbol{G} = \dfrac{\partial g}{\partial \boldsymbol{U}} \in \mathbb{R}^{M \times N}, \quad G_{kl} = \dfrac{\partial g}{\partial U_{kl}} \label{eq:14-2-2}\end{equation}

\begin{equation}\boldsymbol{H}^{ij} = \dfrac{\partial \boldsymbol{U}}{\partial X_{ij}} \in \mathbb{R}^{M \times N}, \quad H^{ij}_{kl} = \dfrac{\partial U_{kl}}{\partial X_{ij}} \label{eq:14-2-3}\end{equation}

$\eqref{eq:14-2-1}$ を $\eqref{eq:14-2-2}$ と $\eqref{eq:14-2-3}$ を用いて書き換える。

\begin{equation}\dfrac{\partial g}{\partial X_{ij}} = \displaystyle\sum_{k=0}^{M-1} \displaystyle\sum_{l=0}^{N-1} G_{kl} H^{ij}_{kl} \label{eq:14-2-4}\end{equation}

$\eqref{eq:14-2-4}$ の右辺は2つの行列 $\boldsymbol{G}$ と $\boldsymbol{H}^{ij}$ の要素ごとの積の総和(Frobenius内積)である。

Frobenius内積 $\langle \boldsymbol{G}, \boldsymbol{H}^{ij} \rangle_F$ はトレースを用いて表現できることを示す。まず、行列積 $\boldsymbol{G}^\top \boldsymbol{H}^{ij}$ の $(p, q)$ 成分を計算する。転置行列の定義 $(\boldsymbol{G}^\top)_{pk} = G_{kp}$ と行列積の定義より

\begin{equation}(\boldsymbol{G}^\top \boldsymbol{H}^{ij})_{pq} = \displaystyle\sum_{k=0}^{M-1} (\boldsymbol{G}^\top)_{pk} H^{ij}_{kq} = \displaystyle\sum_{k=0}^{M-1} G_{kp} H^{ij}_{kq} \label{eq:14-2-5}\end{equation}

行列 $\boldsymbol{G}^\top \boldsymbol{H}^{ij}$ のトレースを計算する。$\boldsymbol{G} \in \mathbb{R}^{M \times N}$、$\boldsymbol{H}^{ij} \in \mathbb{R}^{M \times N}$ であるから、$\boldsymbol{G}^\top \in \mathbb{R}^{N \times M}$ となり、行列積 $\boldsymbol{G}^\top \boldsymbol{H}^{ij} \in \mathbb{R}^{N \times N}$ である。トレースの定義(対角成分の和)より

\begin{equation}\text{tr}(\boldsymbol{G}^\top \boldsymbol{H}^{ij}) = \displaystyle\sum_{l=0}^{N-1} (\boldsymbol{G}^\top \boldsymbol{H}^{ij})_{ll} \label{eq:14-2-6a}\end{equation}

$\eqref{eq:14-2-5}$ で $p = q = l$ とおくと

\begin{equation}(\boldsymbol{G}^\top \boldsymbol{H}^{ij})_{ll} = \displaystyle\sum_{k=0}^{M-1} G_{kl} H^{ij}_{kl} \label{eq:14-2-6b}\end{equation}

$\eqref{eq:14-2-6b}$ を $\eqref{eq:14-2-6a}$ に代入すると

\begin{equation}\text{tr}(\boldsymbol{G}^\top \boldsymbol{H}^{ij}) = \displaystyle\sum_{l=0}^{N-1} \displaystyle\sum_{k=0}^{M-1} G_{kl} H^{ij}_{kl} \label{eq:14-2-6}\end{equation}

$\eqref{eq:14-2-6}$ と $\eqref{eq:14-2-4}$ を比較すると、両者は等しいことがわかる。

\begin{equation}\dfrac{\partial g}{\partial X_{ij}} = \text{tr}(\boldsymbol{G}^\top \boldsymbol{H}^{ij}) = \text{tr}\left[\left(\dfrac{\partial g}{\partial \boldsymbol{U}}\right)^\top \dfrac{\partial \boldsymbol{U}}{\partial X_{ij}}\right] \label{eq:14-2-7}\end{equation}

$\eqref{eq:14-2-7}$ が行列連鎖律のトレース形式である。

補足:$\eqref{eq:14-2-7}$ の公式は 13.1 の構造行列の微分公式と同じ形式である。Frobenius内積とトレースの関係 $\langle \boldsymbol{A}, \boldsymbol{B} \rangle_F = \text{tr}(\boldsymbol{A}^\top \boldsymbol{B})$ が本質的な役割を果たす。

参考文献

  • 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