この記事では統計学・機械学習の教科書である、C. M. Bishop 著「パターン認識と機械学習」(略称:PRML)の演習問題を私が解いた結果を載せています。この本は私が所属する研究室の輪読会で現在扱われていて、勉強の一環として演習問題を解いています。
問題
データ集合のサイズが増えるにつれて、モデルパラメータの事後分布に関する不正確さが減少することについて説明した。次の行列の公式(付録 C 参照)
\left( \mathbf{M} + \mathbf{vv}^\rm{T} \right) ^ {-1}
= \mathbf{M}^{-1} -
\frac {\left( \mathbf{M}^{-1} \mathbf{v} \right) \left( \mathbf{v}^\rm{T} \mathbf{M}^{-1} \right) }
{1 + \mathbf{v}^\rm{T} \mathbf{M}^{-1} \mathbf{v}}
\tag{3.110}
> を用いて、$(3.59)$ の線形回帰モデルに関する不確かさ $\sigma_N^2(\mathbf{x})$ が
> ```math
\sigma_{N+1}^2(\mathbf{x}) \leq \sigma_N^2(\mathbf{x})
\tag{3.111}
を満たすことを示せ。
解釈
この問題では、予測分布の分散を考えます。予測分布とは、訓練データ $\mathbf {X, t}$ を用いて新規の独立変数 $\mathbf{x}$ に対応する従属変数 $t$ を予想するもので、
p(t|\mathbf{t}, \alpha, \beta)
= \int
p(t|\mathbf{w}, \beta)
p(\mathbf{w}|\mathbf{t}, \alpha, \beta)
\rm{d} \mathbf{w}
\tag{3.57}
で表されました。この時、予測分布は正規分布となることがすでに示されており、
> ```math
\begin{align}
p(t | \mathbf{x}, \mathbf{t}, \alpha, \beta)
& = \mathcal{N} (t | \mathbf{m}_N^{\rm{T}} \boldsymbol{\phi}(x),
\sigma_N^2(\mathbf{x}))
\tag{3.58} \\
\sigma_N^2(\mathbf{x})
& = \frac{1}{\beta} +
\boldsymbol{\phi}(\mathbf{x}) ^ {\rm{T}}
\mathbf{S}_N
\boldsymbol{\phi}(\mathbf{x})
\tag{3.59} \\
\mathbf{S}_N
& = \left(
\alpha \mathbf{I} - \beta \mathbf{\Phi} ^ \rm{T} \mathbf{\Phi}
\right) ^ {-1}
\tag{3.54}
\end{align}
となるのでした。ちなみに式 $(3.110)$ は、Woodburyの行列反転公式
\mathbf{
(A + B C D)^{-1}
= A^{-1} - A^{-1} B (C^{-1} + D A^{-1} B)^{-1} D A^{-1}
} \tag{2.289}
に $\mathbf{A} = \mathbf{M}, \mathbf{B} = \mathbf{v}, \mathbf{C} = \mathbf{I}, \mathbf{D} = \mathbf{v}^\rm{T}$ を代入することで求まります。
この問題を解くには、練習問題 3.8 の結果である
```math
\mathbf{S}_{N+1}^{-1}
= \mathbf{S}_N^{-1} +
\beta
\boldsymbol{\phi}(\mathbf{x}_{N+1})
\boldsymbol{\phi}(\mathbf{x}_{N+1}) ^ {\rm T}
\tag{ex0.1}
を使う必要があります。
解答
証明 式 $(3.59)$ より
\sigma_{N+1}^2(\mathbf{x})
= \frac{1}{\beta} +
\boldsymbol{\phi}(\mathbf{x}) ^ {\rm{T}}
\mathbf{S}_{N+1}
\boldsymbol{\phi}(\mathbf{x})
\tag{ex1.1}
式 $(\rm ex0.1)$ より
\begin{align}
\mathbf{S}_{N+1}
& = \left(
\mathbf{S}_N^{-1} +
\beta
\boldsymbol{\phi}(\mathbf{x}_{N+1})
\boldsymbol{\phi}(\mathbf{x}_{N+1}) ^ {\rm T}
\right) ^ {-1} \\
& = \left(
\mathbf{S}_N^{-1} +
\boldsymbol{\varphi}(\mathbf{x}_{N+1})
\boldsymbol{\varphi}(\mathbf{x}_{N+1}) ^ {\rm T}
\right) ^ {-1}
& (\boldsymbol \varphi = \sqrt{\beta} \boldsymbol \phi)
\tag {ex1.2}
\end{align}
式 $(3.110)$ に
\mathbf{M} = \mathbf{S}_N, \mathbf{v} = \boldsymbol{\varphi} (\mathbf{x}_{N+1})
を代入すると、式 $(\rm ex1.2)$ より
\begin{align}
\mathbf{S}_{N+1}
& = \mathbf{S}_N -
\frac {\mathbf{S}_N
\boldsymbol{\varphi}(\mathbf{x}_{N+1})
\boldsymbol{\varphi}(\mathbf{x}_{N+1}) ^ {\rm T}
\mathbf{S}_N}
{1 +
\boldsymbol{\varphi}(\mathbf{x}_{N+1}) ^ {\rm T}
\mathbf{S}_N
\boldsymbol{\varphi}(\mathbf{x}_{N+1})} \\
& = \mathbf{S}_N -
\frac {\beta \
\mathbf{S}_N
\boldsymbol{\phi}(\mathbf{x}_{N+1})
\boldsymbol{\phi}(\mathbf{x}_{N+1}) ^ {\rm T}
\mathbf{S}_N}
{1 +
\beta \
\boldsymbol{\phi}(\mathbf{x}_{N+1}) ^ {\rm T}
\mathbf{S}_N
\boldsymbol{\phi}(\mathbf{x}_{N+1})}
\tag {ex1.2} \\
\end{align}
これを式 $(\rm ex1.1)$ に代入すると、
\begin{align}
\sigma_{N+1}^2(\mathbf{x})
& = \frac{1}{\beta} +
\boldsymbol{\phi}(\mathbf{x}) ^ {\rm{T}}
\mathbf{S}_{N+1}
\boldsymbol{\phi}(\mathbf{x}) \\
& = \frac{1}{\beta} +
\boldsymbol{\phi}(\mathbf{x}) ^ {\rm{T}}
\left(
\mathbf{S}_N -
\frac {\beta \
\mathbf{S}_N
\boldsymbol{\phi}(\mathbf{x}_{N+1})
\boldsymbol{\phi}(\mathbf{x}_{N+1}) ^ {\rm T}
\mathbf{S}_N}
{1 +
\beta \
\boldsymbol{\phi}(\mathbf{x}_{N+1}) ^ {\rm T}
\mathbf{S}_N
\boldsymbol{\phi}(\mathbf{x}_{N+1})}
\right)
\boldsymbol{\phi}(\mathbf{x}) \\
& = \frac{1}{\beta} +
\boldsymbol{\phi}(\mathbf{x}) ^ {\rm{T}}
\mathbf{S}_N
\boldsymbol{\phi}(\mathbf{x}) -
\frac {\beta \
\boldsymbol{\phi}(\mathbf{x}_{N+1}) ^ {\rm T}
\mathbf{S}_N
\boldsymbol{\phi}(\mathbf{x}_{N+1})
\boldsymbol{\phi}(\mathbf{x}_{N+1}) ^ {\rm T}
\mathbf{S}_N
\boldsymbol{\phi}(\mathbf{x}_{N+1})}
{1 +
\beta \
\boldsymbol{\phi}(\mathbf{x}_{N+1}) ^ {\rm T}
\mathbf{S}_N
\boldsymbol{\phi}(\mathbf{x}_{N+1})} \\
& = \sigma_N^2(\mathbf{x}) -
\frac {\beta \
\boldsymbol{\phi}(\mathbf{x}_{N+1}) ^ {\rm T}
\mathbf{S}_N
\boldsymbol{\phi}(\mathbf{x}_{N+1})
\boldsymbol{\phi}(\mathbf{x}_{N+1}) ^ {\rm T}
\mathbf{S}_N
\boldsymbol{\phi}(\mathbf{x}_{N+1})}
{1 +
\beta \
\boldsymbol{\phi}(\mathbf{x}_{N+1}) ^ {\rm T}
\mathbf{S}_N
\boldsymbol{\phi}(\mathbf{x}_{N+1})}
\tag{ex1.3}
\end{align}
$\mathbf{S}_N$ が半正定値行列である(※)ことから、
\boldsymbol{\phi}(\mathbf{x}_{N+1}) ^ {\rm T}
\mathbf{S}_N
\boldsymbol{\phi}(\mathbf{x}_{N+1})
\geq 0
である。よって式 $(\rm ex1.3)$ の右辺第二項は0以上となり、式 $(3.111)$ は示された。(証明終)
※ について補足
$\mathbf{S}_N = \left( \alpha \mathbf{I} - \beta \mathbf{\Phi} ^ \rm{T} \mathbf{\Phi} \right) ^ {-1}$ が半正定値行列であることの説明をします。
まず、任意のベクトル $\mathbf x$ において $\mathbf{x}^{\rm T} \mathbf{Ax} \geq 0$ が成り立つとき、行列 $\mathbf A$ は半正定値であると言います。
共分散行列 $\mathbf{\Phi} ^ \rm{T} \mathbf{\Phi}$ が半正定値であることは、練習問題 $2.18$ で証明されています。単位行列 $\mathbf I$ は当然半正定値で、それらの線形和 $\left( \alpha \mathbf{I} - \beta \mathbf{\Phi} ^ \rm{T} \mathbf{\Phi} \right)$ も半正定値です。
さらに、半正定値行列の逆行列は半正定値行列です。なぜなら $\mathbf A$ の固有値において $\lambda_{\mathbf A} \geq 0$ が成り立つなら、逆行列 $\mathbf{A} ^ {-1}$ の固有値においても $\lambda_{\mathbf A^{-1}} = \lambda_{\mathbf A}^{-1} \geq 0$ が成り立つからです。以上より、$\mathbf{S}_N$ は半正定値行列です。