見出し画像

ベイズ学習 学習過程と特異点

ベイズ学習の学習過程における特異点の役割について考えます([1] 7.3).パラメータ$${ w }$$をもつ統計モデル$${ p(x|w) }$$に対してパラメータ$${w}$$ があるパラメータ$${w_\alpha}$$の近傍$${W_\alpha}$$に含まれる確率$${p_\alpha}$$は

$$
p_\alpha = \int_{W_\alpha} p(w|X^n) dw
$$

と書けます.ここで$${ p(w|X^n ) }$$はデータ$${ X^n =\{ X_1,\cdots,X_n\} }$$に対する事後分布です.事後分布は

$$
p(w|X^n) = \frac{1}{Z^{(0)}} e^{-K_n(w)}\varphi(w)
$$

のように書き換えられるので($${Z^{(0)}}$$は(正規化された)分配関数)

$$
p_\alpha = \frac{1}{Z^{(0)}}\int_{W_\alpha} e^{-K_n(w)}\varphi(w) dw 
$$

となります.ここで$${ w_\alpha^*= \argmin_{w \in W_\alpha}K(w)  }$$と置き、$${ p_\alpha }$$ を次のように分解します.

$$
p_\alpha = \frac{1}{Z^{(0)}}\int_{W_\alpha} e^{-n{K_n(w)-K_n(w_\alpha^*)}} e^{-K_n(w_\alpha^*)}\varphi(w) dw  \\ \,\,\,\,\,\,\,\,= p(w_\alpha^*|X^n) \int_{W_\alpha} e^{-n{K_n(w)-K_n(w_\alpha^*)}} \varphi(w) dw
$$

ここで$${ K_\alpha^*=K(w_\alpha^*)}$$として次のゼータ関数

$$
 \zeta_\alpha(z)=  \int_{W_\alpha} (K(w)-K_\alpha^*)^z\varphi(w)dw
$$

を考えると$${K(w_\alpha^*)-K_\alpha^*=0}$$なので(通常の学習係数を求める方法と同じ議論により)、対応する自由エネルギーは

$$
F^{(0)}_{\alpha,n} = K_\alpha^* n+\lambda_\alpha \log n + o(\log n )
$$

と書けます.このとき自由エネルギーを用いて

$$
p_\alpha \propto p(w_\alpha^*|X^n) e^{ -F^{(0)}_{\alpha,n} }
$$

となり$${ p_\alpha }$$が$${ p(w_\alpha^*|X^n) }$$ のみでなく $${ e^{ -F^{(0)}_{\alpha,n} } }$$にも依存することが分かります.このとき同じ$${ K_\alpha^*}$$をもつ$${ W_\alpha}$$でも$${ \lambda_\alpha }$$の値は異なる場合があります.$${ \lambda_\alpha }$$はその特異点の複雑さによって決まる値です.特異点解消定理から$${ w_\alpha^*}$$の周りで$${ K(w) }$$は$${ K(w) = w^k=w_1^{k_1}w_2^{k_2}\cdots w_d^{k_d}}$$と表すことができます.ここで$${k_1,\cdots,k_d}$$が大きいほど複雑な特異点(高次の正規交差座標系)になります.図1に特異点の周りの$${K(w)}$$例を載せました.高次の項をもつ特異点ほど平坦になっていることからも周辺が実現される確率が高くなることが見て取れると思います.

図1 特異点の例

具体例として3層のパーセプトロン(図2)を考えます.入力層、中間層、出力層のノードはそれぞれ$${M,H,1 }$$とします.また中間層のノード数が$${k}$$の3層パーセプトロンと等価になる結合重み(パラメータ)を$${ w_k }$$としたとき、この重みから計算される$${K^*_\alpha,\lambda^*_\alpha }$$は$${ C_1,C_2,C_3}$$を定数として

図23層パーセプトロン 

$$
K^*_\alpha \approx \frac{C_1}{k},\,\,\,\lambda^*_\alpha \approx \frac{1}{2(C_2k+C_3)}
$$

のような形式で与えられることが分かっています([2]p.238参照.正式には上界などが与えられています.).この場合、汎化誤差は

$$
E [G_{\alpha,n}] = \min _{k \leq H} \left\{\frac{C_1}{k} + \frac{C_2k+C_3}{n} \right\}
$$

となります.例えば$${ H=10,C_1=1000.0,C_2=100000.0,C_3=10.0}$$としてグラフを書くと以下の図3の様になります.

図3 サンプル数と汎化誤差 

少し見にくいですが横軸(サンプル数)が 600 と 1200 付近で滑らかではない部分が見られます.実質的な中間層$${ k}$$ がそれぞれ 2 から 3、 3 から 4 に変化する点です.

またサンプル数$${n}$$を固定したとき$k$は自由エネルギーを最小にするように選ばれるので$${\frac{d}{dk}F^{(0)}_{\alpha,n}=0}$$から

$$
k=\sqrt{\frac{C_1n}{C_2\log n}} = \sqrt{\frac{Cn}{\log n}}
$$

となり学習が進む(自由エネルギーが最小化される)と実質的な中間層が$${ \sqrt{\frac{Cn}{\log n}}}$$で与えられることが分かります.これはサンプル数が多いほど実質的に使われるユニット数が$${\sqrt{\frac{Cn}{\log n}}}$$で大きくなることを意味しています(図4).これらの考察からベイズ学習を用いたニューラルネットワークではサンプル数が大きくなるにしたがって実質的に使われるユニットが増え、より単純な特異点、したがって複雑な関数を選んでいることが分かります.

図4 サンプル数と実質的な中間ノード

自身の勉強用に作成した資料はこちら:

[1] 渡辺澄夫、代数幾何と学習理論、森北出版株式会社、2006年

[2] Sumio Watanabe、Algebraic geometry and Statistical learning Theory、 Cambridge University Press、2011年


この記事が気に入ったらサポートをしてみませんか?