証明集 第12章: ノルムの微分(基本公式)
Proofs Chapter 12: Derivatives of Norms
本章ではベクトルノルムと行列ノルム(Frobeniusノルム)の微分を証明する。 ノルムの微分は線形回帰の最小二乗法の勾配導出、L1/L2正則化の劣勾配計算、 行列補完問題(核ノルム最小化)、信号処理のスパースリカバリなど、 最適化と統計学習の実装に直結する基礎公式である。 2-ノルムの微分から正規化ベクトルの微分まで、実用的な公式を網羅する。
前提知識: 第2章(スカラをベクトルで微分)、 第5章(トレースの微分)。 関連する章: 第10章(二次形式の微分)、 第15章(特殊行列の微分)。
12. ノルムの微分
本章の公式は、特に断りのない限り、以下の条件下で成立する:
- すべての公式は分母レイアウト(denominator layout)に基づく
- ノルム $\|\boldsymbol{x}\|$ は $\boldsymbol{x} = \boldsymbol{0}$ で微分不能(劣勾配を用いる場合は個別に注記)
- ノルムの2乗 $\|\boldsymbol{x}\|^2$ はどこでも微分可能
ベクトルノルムおよび行列ノルム(特にFrobeniusノルム)の微分公式を導出する。
12.1 ベクトル2-ノルムの微分
証明
補助変数 $\boldsymbol{u} = \boldsymbol{x} - \boldsymbol{a}$ を導入する。
\begin{equation}\boldsymbol{u} = \boldsymbol{x} - \boldsymbol{a} \label{eq:12-1-1}\end{equation}
$\boldsymbol{a}$ は定数ベクトルであるから、$\boldsymbol{u}$ の $\boldsymbol{x}$ に関する微分は単位行列となる。
\begin{equation}\frac{\partial \boldsymbol{u}}{\partial \boldsymbol{x}} = \boldsymbol{I} \label{eq:12-1-2}\end{equation}
ベクトル2-ノルムの定義より、$\|\boldsymbol{u}\|_2$ は次のように表される。
\begin{equation}\|\boldsymbol{u}\|_2 = \sqrt{\boldsymbol{u}^\top\boldsymbol{u}} = \sqrt{\sum_{i=0}^{n-1} u_i^2} \label{eq:12-1-3}\end{equation}
$f = \|\boldsymbol{u}\|_2 = \sqrt{\boldsymbol{u}^\top\boldsymbol{u}}$ とおく。内部関数 $g = \boldsymbol{u}^\top\boldsymbol{u}$ を定義する。
\begin{equation}g = \boldsymbol{u}^\top\boldsymbol{u} \label{eq:12-1-4}\end{equation}
このとき $f = \sqrt{g}$ である。連鎖律(1.26)を適用するため、まず $f$ の $g$ に関する微分を計算する。
\begin{equation}\frac{\partial f}{\partial g} = \frac{\partial}{\partial g} \sqrt{g} = \frac{1}{2\sqrt{g}} = \frac{1}{2\|\boldsymbol{u}\|_2} \label{eq:12-1-5}\end{equation}
次に $g = \boldsymbol{u}^\top\boldsymbol{u}$ の $\boldsymbol{u}$ に関する微分を計算する。$g$ を成分で展開する。
\begin{equation}g = \sum_{i=0}^{n-1} u_i^2 \label{eq:12-1-6}\end{equation}
$g$ を $u_j$ で偏微分する。
\begin{equation}\frac{\partial g}{\partial u_j} = \frac{\partial}{\partial u_j} \sum_{i=0}^{n-1} u_i^2 = 2u_j \label{eq:12-1-7}\end{equation}
$\eqref{eq:12-1-7}$ をベクトル形式で書くと次のようになる。
\begin{equation}\frac{\partial g}{\partial \boldsymbol{u}} = 2\boldsymbol{u} \label{eq:12-1-8}\end{equation}
連鎖律(1.26)を適用する。$f$ の $\boldsymbol{u}$ に関する微分は次のようになる。
\begin{equation}\frac{\partial f}{\partial \boldsymbol{u}} = \frac{\partial f}{\partial g} \cdot \frac{\partial g}{\partial \boldsymbol{u}} \label{eq:12-1-9}\end{equation}
$\eqref{eq:12-1-5}$ と $\eqref{eq:12-1-8}$ を $\eqref{eq:12-1-9}$ に代入する。
\begin{equation}\frac{\partial f}{\partial \boldsymbol{u}} = \frac{1}{2\|\boldsymbol{u}\|_2} \cdot 2\boldsymbol{u} = \frac{\boldsymbol{u}}{\|\boldsymbol{u}\|_2} \label{eq:12-1-10}\end{equation}
さらに連鎖律(1.26)を適用して、$f$ の $\boldsymbol{x}$ に関する微分を求める。
\begin{equation}\frac{\partial f}{\partial \boldsymbol{x}} = \frac{\partial f}{\partial \boldsymbol{u}} \cdot \frac{\partial \boldsymbol{u}}{\partial \boldsymbol{x}} \label{eq:12-1-11}\end{equation}
$\eqref{eq:12-1-2}$ と $\eqref{eq:12-1-10}$ を $\eqref{eq:12-1-11}$ に代入する。
\begin{equation}\frac{\partial f}{\partial \boldsymbol{x}} = \frac{\boldsymbol{u}}{\|\boldsymbol{u}\|_2} \cdot \boldsymbol{I} = \frac{\boldsymbol{u}}{\|\boldsymbol{u}\|_2} \label{eq:12-1-12}\end{equation}
$\eqref{eq:12-1-1}$ より $\boldsymbol{u} = \boldsymbol{x} - \boldsymbol{a}$ を代入して最終結果を得る。
\begin{equation}\frac{\partial}{\partial \boldsymbol{x}} \|\boldsymbol{x} - \boldsymbol{a}\|_2 = \frac{\boldsymbol{x} - \boldsymbol{a}}{\|\boldsymbol{x} - \boldsymbol{a}\|_2} \label{eq:12-1-13}\end{equation}
12.2 正規化ベクトルの微分
証明
補助変数を導入する。
\begin{equation}\boldsymbol{u} = \boldsymbol{x} - \boldsymbol{a} \label{eq:12-2-1}\end{equation}
\begin{equation}r = \|\boldsymbol{u}\|_2 \label{eq:12-2-2}\end{equation}
正規化ベクトル $\hat{\boldsymbol{u}}$ を定義する。
\begin{equation}\hat{\boldsymbol{u}} = \frac{\boldsymbol{u}}{r} \label{eq:12-2-3}\end{equation}
$\hat{\boldsymbol{u}}$ の $\boldsymbol{x}$ に関する微分を求める。これはベクトルをスカラで割った商の微分であり、商の微分法則(1.28)を適用する。
$\boldsymbol{u}$ の $\boldsymbol{x}$ に関する微分は単位行列である。
\begin{equation}\frac{\partial \boldsymbol{u}}{\partial \boldsymbol{x}} = \boldsymbol{I} \label{eq:12-2-4}\end{equation}
12.1 の $\eqref{eq:12-1-10}$ より、$r = \|\boldsymbol{u}\|_2$ の $\boldsymbol{u}$ に関する微分は次のようになる。
\begin{equation}\frac{\partial r}{\partial \boldsymbol{u}} = \frac{\boldsymbol{u}}{r} = \hat{\boldsymbol{u}} \label{eq:12-2-5}\end{equation}
連鎖律(1.26)より、$r$ の $\boldsymbol{x}$ に関する微分を計算する。
\begin{equation}\frac{\partial r}{\partial \boldsymbol{x}} = \frac{\partial r}{\partial \boldsymbol{u}} \cdot \frac{\partial \boldsymbol{u}}{\partial \boldsymbol{x}} = \hat{\boldsymbol{u}} \cdot \boldsymbol{I} = \frac{\boldsymbol{u}}{r} \label{eq:12-2-6}\end{equation}
商の微分法則(1.28)をベクトル-スカラ商に適用する。$\hat{\boldsymbol{u}} = \boldsymbol{u} / r$ に対して
\begin{equation}\frac{\partial \hat{\boldsymbol{u}}}{\partial \boldsymbol{x}} = \frac{1}{r} \frac{\partial \boldsymbol{u}}{\partial \boldsymbol{x}} - \frac{\boldsymbol{u}}{r^2} \left(\frac{\partial r}{\partial \boldsymbol{x}}\right)^\top \label{eq:12-2-7}\end{equation}
ここで $r$ はスカラーであるため、$\frac{\partial r}{\partial \boldsymbol{x}}$ は行ベクトル($1 \times n$ 行列)である。第2項でベクトル $\boldsymbol{u}$(列ベクトル)との積を取るため、転置 $(\cdot)^\top$ により行ベクトルを列ベクトルに変換する必要があり、その結果は $n \times n$ 行列となる。
$\eqref{eq:12-2-4}$ と $\eqref{eq:12-2-6}$ を $\eqref{eq:12-2-7}$ に代入する。
\begin{equation}\frac{\partial \hat{\boldsymbol{u}}}{\partial \boldsymbol{x}} = \frac{1}{r} \boldsymbol{I} - \frac{\boldsymbol{u}}{r^2} \left(\frac{\boldsymbol{u}}{r}\right)^\top \label{eq:12-2-8}\end{equation}
$\eqref{eq:12-2-8}$ を整理する。
\begin{equation}\frac{\partial \hat{\boldsymbol{u}}}{\partial \boldsymbol{x}} = \frac{\boldsymbol{I}}{r} - \frac{\boldsymbol{u} \boldsymbol{u}^\top}{r^3} \label{eq:12-2-9}\end{equation}
$\eqref{eq:12-2-1}$ と $\eqref{eq:12-2-2}$ を代入して最終結果を得る。
\begin{equation}\frac{\partial}{\partial \boldsymbol{x}} \frac{\boldsymbol{x} - \boldsymbol{a}}{\|\boldsymbol{x} - \boldsymbol{a}\|_2} = \frac{\boldsymbol{I}}{\|\boldsymbol{x} - \boldsymbol{a}\|_2} - \frac{(\boldsymbol{x} - \boldsymbol{a})(\boldsymbol{x} - \boldsymbol{a})^\top}{\|\boldsymbol{x} - \boldsymbol{a}\|_2^3} \label{eq:12-2-10}\end{equation}
12.3 2-ノルムの2乗の微分
証明
2-ノルムの2乗の定義を確認する。
\begin{equation}\|\boldsymbol{x}\|_2^2 = \boldsymbol{x}^\top\boldsymbol{x} \label{eq:12-3-1}\end{equation}
$\eqref{eq:12-3-1}$ を成分で展開する。
\begin{equation}\|\boldsymbol{x}\|_2^2 = \sum_{i=0}^{n-1} x_i^2 \label{eq:12-3-2}\end{equation}
$\|\boldsymbol{x}\|_2^2$ を $x_j$ で偏微分する。$\eqref{eq:12-3-2}$ の和において、$i = j$ の項のみが $x_j$ を含む。
\begin{equation}\frac{\partial}{\partial x_j} \|\boldsymbol{x}\|_2^2 = \frac{\partial}{\partial x_j} \sum_{i=0}^{n-1} x_i^2 = \frac{\partial}{\partial x_j} x_j^2 = 2x_j \label{eq:12-3-3}\end{equation}
$\eqref{eq:12-3-3}$ はすべての $j = 0, \ldots, n-1$ について成り立つ。分母レイアウトでは勾配は列ベクトルとしてまとめられる。
\begin{equation}\frac{\partial}{\partial \boldsymbol{x}} \|\boldsymbol{x}\|_2^2 = \begin{pmatrix} 2x_0 \\ 2x_1 \\ \vdots \\ 2x_{n-1} \end{pmatrix} = 2\boldsymbol{x} \label{eq:12-3-4}\end{equation}
$\eqref{eq:12-3-4}$ より最終結果を得る。
\begin{equation}\frac{\partial}{\partial \boldsymbol{x}} \|\boldsymbol{x}\|_2^2 = 2\boldsymbol{x} \label{eq:12-3-5}\end{equation}
12.4 Frobeniusノルムの2乗
証明
Frobeniusノルムの2乗の定義を確認する。
\begin{equation}\|\boldsymbol{X}\|_F^2 = \text{tr}(\boldsymbol{X}^\top\boldsymbol{X}) \label{eq:12-4-1}\end{equation}
$\eqref{eq:12-4-1}$ を成分で展開する。$\boldsymbol{X} \in \mathbb{R}^{m \times n}$ とすると
\begin{equation}\|\boldsymbol{X}\|_F^2 = \sum_{i=0}^{m-1} \sum_{j=0}^{n-1} X_{ij}^2 \label{eq:12-4-2}\end{equation}
$\|\boldsymbol{X}\|_F^2$ を成分 $X_{pq}$ で偏微分する。$\eqref{eq:12-4-2}$ の二重和において、$(i, j) = (p, q)$ の項のみが $X_{pq}$ を含む。
\begin{equation}\frac{\partial}{\partial X_{pq}} \|\boldsymbol{X}\|_F^2 = \frac{\partial}{\partial X_{pq}} \sum_{i,j} X_{ij}^2 = \frac{\partial}{\partial X_{pq}} X_{pq}^2 = 2X_{pq} \label{eq:12-4-3}\end{equation}
$\eqref{eq:12-4-3}$ はすべての $(p, q)$ について成り立つので、行列形式で書くと次のようになる。
\begin{equation}\left(\frac{\partial}{\partial \boldsymbol{X}} \|\boldsymbol{X}\|_F^2\right)_{pq} = 2X_{pq} \label{eq:12-4-4}\end{equation}
$\eqref{eq:12-4-4}$ より最終結果を得る。
\begin{equation}\frac{\partial}{\partial \boldsymbol{X}} \|\boldsymbol{X}\|_F^2 = 2\boldsymbol{X} \label{eq:12-4-5}\end{equation}
出典:F.G. Frobenius (1881) "Über die Darstellung der endlichen Gruppen durch lineare Substitutionen". FrobeniusノルムはHilbert-Schmidtノルムとも呼ばれる。
12.5 Frobeniusノルム
証明
Frobeniusノルムは2乗の平方根として表される。
\begin{equation}\|\boldsymbol{X}\|_F = \sqrt{\|\boldsymbol{X}\|_F^2} \label{eq:12-5-1}\end{equation}
内部関数を定義する。
\begin{equation}g = \|\boldsymbol{X}\|_F^2 \label{eq:12-5-2}\end{equation}
このとき $f = \|\boldsymbol{X}\|_F = \sqrt{g}$ である。連鎖律(1.26)を適用するため、まず $f$ の $g$ に関する微分を計算する。
\begin{equation}\frac{\partial f}{\partial g} = \frac{\partial}{\partial g} \sqrt{g} = \frac{1}{2\sqrt{g}} = \frac{1}{2\|\boldsymbol{X}\|_F} \label{eq:12-5-3}\end{equation}
12.4 の $\eqref{eq:12-4-5}$ より、$g = \|\boldsymbol{X}\|_F^2$ の微分は次のようになる。
\begin{equation}\frac{\partial g}{\partial \boldsymbol{X}} = 2\boldsymbol{X} \label{eq:12-5-4}\end{equation}
連鎖律(1.26)を適用する。
\begin{equation}\frac{\partial f}{\partial \boldsymbol{X}} = \frac{\partial f}{\partial g} \cdot \frac{\partial g}{\partial \boldsymbol{X}} \label{eq:12-5-5}\end{equation}
$\eqref{eq:12-5-3}$ と $\eqref{eq:12-5-4}$ を $\eqref{eq:12-5-5}$ に代入する。
\begin{equation}\frac{\partial f}{\partial \boldsymbol{X}} = \frac{1}{2\|\boldsymbol{X}\|_F} \cdot 2\boldsymbol{X} = \frac{\boldsymbol{X}}{\|\boldsymbol{X}\|_F} \label{eq:12-5-6}\end{equation}
$\eqref{eq:12-5-6}$ より最終結果を得る。
\begin{equation}\frac{\partial}{\partial \boldsymbol{X}} \|\boldsymbol{X}\|_F = \frac{\boldsymbol{X}}{\|\boldsymbol{X}\|_F} \label{eq:12-5-7}\end{equation}
12.6 差のFrobeniusノルム
証明
補助変数を導入する。
\begin{equation}\boldsymbol{U} = \boldsymbol{X} - \boldsymbol{A} \label{eq:12-6-1}\end{equation}
$\boldsymbol{A}$ は定数行列であるから、$\boldsymbol{U}$ の $\boldsymbol{X}$ に関する微分は単位変換となる。すなわち、各成分について
\begin{equation}\frac{\partial U_{pq}}{\partial X_{rs}} = \delta_{pr}\delta_{qs} \label{eq:12-6-2}\end{equation}
$\|\boldsymbol{U}\|_F^2$ を成分で展開する。
\begin{equation}\|\boldsymbol{U}\|_F^2 = \sum_{i,j} U_{ij}^2 = \sum_{i,j} (X_{ij} - A_{ij})^2 \label{eq:12-6-3}\end{equation}
$\|\boldsymbol{U}\|_F^2$ を成分 $X_{pq}$ で偏微分する。$\eqref{eq:12-6-3}$ の二重和において、$(i, j) = (p, q)$ の項のみが $X_{pq}$ を含む。
\begin{equation}\frac{\partial}{\partial X_{pq}} \|\boldsymbol{U}\|_F^2 = \frac{\partial}{\partial X_{pq}} (X_{pq} - A_{pq})^2 \label{eq:12-6-4}\end{equation}
$\eqref{eq:12-6-4}$ の右辺を計算する。$(X_{pq} - A_{pq})^2$ の微分は連鎖律(1.26)より
\begin{equation}\frac{\partial}{\partial X_{pq}} (X_{pq} - A_{pq})^2 = 2(X_{pq} - A_{pq}) \cdot 1 = 2(X_{pq} - A_{pq}) \label{eq:12-6-5}\end{equation}
$\eqref{eq:12-6-5}$ はすべての $(p, q)$ について成り立つので、行列形式で書くと次のようになる。
\begin{equation}\left(\frac{\partial}{\partial \boldsymbol{X}} \|\boldsymbol{U}\|_F^2\right)_{pq} = 2(X_{pq} - A_{pq}) = 2U_{pq} \label{eq:12-6-6}\end{equation}
$\eqref{eq:12-6-6}$ より最終結果を得る。
\begin{equation}\frac{\partial}{\partial \boldsymbol{X}} \|\boldsymbol{X} - \boldsymbol{A}\|_F^2 = 2(\boldsymbol{X} - \boldsymbol{A}) \label{eq:12-6-7}\end{equation}
12.7 線形回帰の残差(左から乗算)
証明
補助変数を導入する。
\begin{equation}\boldsymbol{U} = \boldsymbol{A}\boldsymbol{X} - \boldsymbol{B} \label{eq:12-7-1}\end{equation}
$\boldsymbol{U} \in \mathbb{R}^{M \times P}$ である。Frobeniusノルムの2乗はトレースを用いて表される。
\begin{equation}\|\boldsymbol{U}\|_F^2 = \text{tr}(\boldsymbol{U}^\top \boldsymbol{U}) \label{eq:12-7-2}\end{equation}
12.6 の $\eqref{eq:12-6-7}$ より、$\|\boldsymbol{U}\|_F^2$ の $\boldsymbol{U}$ に関する微分は次のようになる。
\begin{equation}\frac{\partial}{\partial \boldsymbol{U}} \|\boldsymbol{U}\|_F^2 = 2\boldsymbol{U} \label{eq:12-7-3}\end{equation}
次に $\boldsymbol{U}$ の $\boldsymbol{X}$ に関する微分を計算する。$\eqref{eq:12-7-1}$ より $U_{kl} = \sum_{n=0}^{N-1} A_{kn} X_{nl} - B_{kl}$ である。
\begin{equation}U_{kl} = \sum_{n=0}^{N-1} A_{kn} X_{nl} - B_{kl} \label{eq:12-7-4}\end{equation}
$U_{kl}$ を $X_{ij}$ で偏微分する。$\eqref{eq:12-7-4}$ において、$n = i$ かつ $l = j$ の項のみが $X_{ij}$ を含む。
\begin{equation}\frac{\partial U_{kl}}{\partial X_{ij}} = A_{ki} \delta_{lj} \label{eq:12-7-5}\end{equation}
ここで $\delta_{lj}$ はKroneckerのデルタであり、$l = j$ のとき 1、それ以外は 0 である。
連鎖律を適用する。$f = \|\boldsymbol{U}\|_F^2$ の $X_{ij}$ に関する微分は
\begin{equation}\frac{\partial f}{\partial X_{ij}} = \sum_{k,l} \frac{\partial f}{\partial U_{kl}} \frac{\partial U_{kl}}{\partial X_{ij}} \label{eq:12-7-6}\end{equation}
$\eqref{eq:12-7-3}$ より $\frac{\partial f}{\partial U_{kl}} = 2U_{kl}$ を $\eqref{eq:12-7-6}$ に代入する。
\begin{equation}\frac{\partial f}{\partial X_{ij}} = \sum_{k,l} 2U_{kl} \cdot A_{ki} \delta_{lj} \label{eq:12-7-7}\end{equation}
$\eqref{eq:12-7-7}$ において、$\delta_{lj}$ により $l = j$ の項のみが残る。
\begin{equation}\frac{\partial f}{\partial X_{ij}} = \sum_{k} 2U_{kj} A_{ki} = 2\sum_{k} A_{ki} U_{kj} \label{eq:12-7-8}\end{equation}
$\eqref{eq:12-7-8}$ の $\sum_k A_{ki} U_{kj}$ は行列積 $\boldsymbol{A}^\top \boldsymbol{U}$ の $(i, j)$ 成分である。
\begin{equation}\sum_{k} A_{ki} U_{kj} = (\boldsymbol{A}^\top \boldsymbol{U})_{ij} \label{eq:12-7-9}\end{equation}
$\eqref{eq:12-7-9}$ を $\eqref{eq:12-7-8}$ に代入する。
\begin{equation}\frac{\partial f}{\partial X_{ij}} = 2(\boldsymbol{A}^\top \boldsymbol{U})_{ij} \label{eq:12-7-10}\end{equation}
$\eqref{eq:12-7-10}$ はすべての $(i, j)$ について成り立つので、行列形式で書くと次のようになる。
\begin{equation}\frac{\partial}{\partial \boldsymbol{X}} \|\boldsymbol{U}\|_F^2 = 2\boldsymbol{A}^\top \boldsymbol{U} \label{eq:12-7-11}\end{equation}
$\eqref{eq:12-7-1}$ より $\boldsymbol{U} = \boldsymbol{A}\boldsymbol{X} - \boldsymbol{B}$ を代入して最終結果を得る。
\begin{equation}\frac{\partial}{\partial \boldsymbol{X}} \|\boldsymbol{A}\boldsymbol{X} - \boldsymbol{B}\|_F^2 = 2\boldsymbol{A}^\top(\boldsymbol{A}\boldsymbol{X} - \boldsymbol{B}) \label{eq:12-7-12}\end{equation}
12.8 線形回帰の残差(右から乗算)
証明
補助変数を導入する。
\begin{equation}\boldsymbol{U} = \boldsymbol{X}\boldsymbol{A} - \boldsymbol{B} \label{eq:12-8-1}\end{equation}
$\boldsymbol{U} \in \mathbb{R}^{M \times P}$ である。$\eqref{eq:12-8-1}$ より $U_{kl} = \sum_{n=0}^{N-1} X_{kn} A_{nl} - B_{kl}$ である。
\begin{equation}U_{kl} = \sum_{n=0}^{N-1} X_{kn} A_{nl} - B_{kl} \label{eq:12-8-2}\end{equation}
$U_{kl}$ を $X_{ij}$ で偏微分する。$\eqref{eq:12-8-2}$ において、$k = i$ かつ $n = j$ の項のみが $X_{ij}$ を含む。
\begin{equation}\frac{\partial U_{kl}}{\partial X_{ij}} = \delta_{ki} A_{jl} \label{eq:12-8-3}\end{equation}
連鎖律を適用する。$f = \|\boldsymbol{U}\|_F^2$ の $X_{ij}$ に関する微分は
\begin{equation}\frac{\partial f}{\partial X_{ij}} = \sum_{k,l} \frac{\partial f}{\partial U_{kl}} \frac{\partial U_{kl}}{\partial X_{ij}} \label{eq:12-8-4}\end{equation}
$\frac{\partial f}{\partial U_{kl}} = 2U_{kl}$ と $\eqref{eq:12-8-3}$ を $\eqref{eq:12-8-4}$ に代入する。
\begin{equation}\frac{\partial f}{\partial X_{ij}} = \sum_{k,l} 2U_{kl} \cdot \delta_{ki} A_{jl} \label{eq:12-8-5}\end{equation}
$\eqref{eq:12-8-5}$ において、$\delta_{ki}$ により $k = i$ の項のみが残る。
\begin{equation}\frac{\partial f}{\partial X_{ij}} = \sum_{l} 2U_{il} A_{jl} = 2\sum_{l} U_{il} A_{jl} \label{eq:12-8-6}\end{equation}
$\eqref{eq:12-8-6}$ の $\sum_l U_{il} A_{jl}$ は行列積 $\boldsymbol{U} \boldsymbol{A}^\top$ の $(i, j)$ 成分である。
\begin{equation}\sum_{l} U_{il} A_{jl} = \sum_{l} U_{il} (A^\top)_{lj} = (\boldsymbol{U} \boldsymbol{A}^\top)_{ij} \label{eq:12-8-7}\end{equation}
$\eqref{eq:12-8-7}$ を $\eqref{eq:12-8-6}$ に代入する。
\begin{equation}\frac{\partial f}{\partial X_{ij}} = 2(\boldsymbol{U} \boldsymbol{A}^\top)_{ij} \label{eq:12-8-8}\end{equation}
$\eqref{eq:12-8-8}$ はすべての $(i, j)$ について成り立つので、行列形式で書くと次のようになる。
\begin{equation}\frac{\partial}{\partial \boldsymbol{X}} \|\boldsymbol{U}\|_F^2 = 2\boldsymbol{U} \boldsymbol{A}^\top \label{eq:12-8-9}\end{equation}
$\eqref{eq:12-8-1}$ より $\boldsymbol{U} = \boldsymbol{X}\boldsymbol{A} - \boldsymbol{B}$ を代入して最終結果を得る。
\begin{equation}\frac{\partial}{\partial \boldsymbol{X}} \|\boldsymbol{X}\boldsymbol{A} - \boldsymbol{B}\|_F^2 = 2(\boldsymbol{X}\boldsymbol{A} - \boldsymbol{B})\boldsymbol{A}^\top \label{eq:12-8-10}\end{equation}
12.9 回帰の重み勾配
証明
残差ベクトルを定義する。
\begin{equation}\boldsymbol{r} = \boldsymbol{X}\boldsymbol{w} - \boldsymbol{y} \label{eq:12-9-1}\end{equation}
$\boldsymbol{r} \in \mathbb{R}^N$ である。損失関数は残差の2乗ノルムである。
\begin{equation}L = \|\boldsymbol{r}\|_2^2 = \boldsymbol{r}^\top \boldsymbol{r} \label{eq:12-9-2}\end{equation}
$\eqref{eq:12-9-2}$ を成分で展開する。
\begin{equation}L = \sum_{i=0}^{N-1} r_i^2 \label{eq:12-9-3}\end{equation}
$\eqref{eq:12-9-1}$ より、各残差成分は次のように表される。
\begin{equation}r_i = \sum_{j=0}^{D-1} X_{ij} w_j - y_i \label{eq:12-9-4}\end{equation}
$r_i$ を $w_k$ で偏微分する。$\eqref{eq:12-9-4}$ において、$j = k$ の項のみが $w_k$ を含む。
\begin{equation}\frac{\partial r_i}{\partial w_k} = X_{ik} \label{eq:12-9-5}\end{equation}
連鎖律を適用して、$L$ の $w_k$ に関する微分を計算する。
\begin{equation}\frac{\partial L}{\partial w_k} = \sum_{i=0}^{N-1} \frac{\partial L}{\partial r_i} \frac{\partial r_i}{\partial w_k} \label{eq:12-9-6}\end{equation}
$\eqref{eq:12-9-3}$ より $\frac{\partial L}{\partial r_i} = 2r_i$ である。これを $\eqref{eq:12-9-6}$ に代入する。
\begin{equation}\frac{\partial L}{\partial w_k} = \sum_{i=0}^{N-1} 2r_i \cdot X_{ik} = 2\sum_{i=0}^{N-1} X_{ik} r_i \label{eq:12-9-7}\end{equation}
$\eqref{eq:12-9-7}$ の $\sum_i X_{ik} r_i$ は行列積 $\boldsymbol{X}^\top \boldsymbol{r}$ の第 $k$ 成分である。
\begin{equation}\sum_{i=0}^{N-1} X_{ik} r_i = \sum_{i=0}^{N-1} (X^\top)_{ki} r_i = (\boldsymbol{X}^\top \boldsymbol{r})_k \label{eq:12-9-8}\end{equation}
$\eqref{eq:12-9-8}$ を $\eqref{eq:12-9-7}$ に代入する。
\begin{equation}\frac{\partial L}{\partial w_k} = 2(\boldsymbol{X}^\top \boldsymbol{r})_k \label{eq:12-9-9}\end{equation}
$\eqref{eq:12-9-9}$ はすべての $k = 0, \ldots, D-1$ について成り立つので、ベクトル形式で書くと次のようになる。
\begin{equation}\frac{\partial L}{\partial \boldsymbol{w}} = 2\boldsymbol{X}^\top \boldsymbol{r} \label{eq:12-9-10}\end{equation}
$\eqref{eq:12-9-1}$ より $\boldsymbol{r} = \boldsymbol{X}\boldsymbol{w} - \boldsymbol{y}$ を代入して最終結果を得る。
\begin{equation}\frac{\partial}{\partial \boldsymbol{w}} \|\boldsymbol{X}\boldsymbol{w} - \boldsymbol{y}\|_2^2 = 2\boldsymbol{X}^\top(\boldsymbol{X}\boldsymbol{w} - \boldsymbol{y}) \label{eq:12-9-11}\end{equation}
参考文献
- 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