🧠

PRML 第5章(5.1から5.20まで) 解答例

2022/06/09に公開
7

はじめに

PRML解答例まとめを参照

演習 5.1

y_{k}(\mathbf{x}, \mathbf{w})=\sigma\left(\sum_{j=1}^{M} w_{k j}^{(2)} h\left(\sum_{i=1}^{D} w_{j i}^{(1)} x_{i}+w_{j 0}^{(1)}\right)+w_{k 0}^{(2)}\right) \tag{5.7}

の形の2層ネットワーク関数で隠れユニットの非線形活性化関数がロジスティックシグモイド関数

\sigma(a) = \{1+ \exp(-a)\}^{-1} \tag{5.191}

で与えられるものを考える.これと等価なネットワーク,すなわち全く同じ関数を計算するが,隠れユニットの活性化関数が\tanh(a)で与えられるものが存在することを示せ.ただし,\tanh関数は

\tanh (a)=\frac{e^{a}-e^{-a}}{e^{a}+e^{-a}} \tag{5.59}

で定義される.

ヒント:まず始めに\sigma(a)\tanh(a)の関係を求め,次に2つのネットワークのパラメータの違いは線形変換であることを示す.


演習問題3.1と同様。まず\tanh(a)関数の定義から、シグモイド関数\sigma(a)との関係式は

\begin{aligned} \tanh (a) &=\frac{e^{a}-e^{-a}}{e^{a}+e^{-a}} \\ &=-1+\frac{2 e^{a}}{e^{a}+e^{-a}} \\ &=-1+2 \frac{1}{1+e^{-2 a}} \\ &=2 \sigma(2 a)-1 \end{aligned}

で表される((3.100)式)。

ここで、w_{ji}^{(1s)}w_{j0}^{(1s)}, w_{kj}^{(2s)}w_{k0}^{(2s)}をネットワークのシグモイド活性化関数の重みパラメータ、w_{ji}^{(1t)}w_{j0}^{(1t)}, w_{kj}^{(2t)}w_{k0}^{(2t)}\tanh(a)活性化関数を使う場合の重みパラメータとする。テキストの(5.4)\displaystyle a_{k}=\sum_{j=1}^{M} w_{k j}^{(2)} z_{j}+w_{k 0}^{(2)}を使うと以下のように書き下せる。

\begin{aligned} a_{k}^{(2t)} &=\sum_{j=1}^{M} w_{k j}^{(2 t)} \tanh \left(a_{j}^{(2t)}\right)+w_{k 0}^{(2 t)} \\ &=\sum_{j=1}^{M} w_{k j}^{(2 t)}\left[2 \sigma\left(2 a_{j}^{(2t)}\right)-1\right]+w_{k 0}^{(2 t)} \\ &=\sum_{j=1}^{M} 2 w_{k j}^{(2 t)} \sigma\left(2 a_{j}^{(2t)}\right)+\left[-\sum_{j=1}^{M} w_{k j}^{(2 t)}+w_{k 0}^{(2 t)}\right] \end{aligned}

一方、シグモイド活性化関数を使う場合だと

a_{k}^{(2s)}=\sum_{j=1}^{M} w_{k j}^{(2 s)} \sigma\left(a_{j}^{(2s)}\right)+w_{k 0}^{(2 s)}

のように書ける。

これらのネットワークが等価になるとき、すなわちa_{k}^{(t)} = a_{k}^{(s)}であるならば、これら2つの式を比較して

\left\{\begin{array}{l} a_{j}^{(2s)}=2 a_{j}^{(2t)} \\ w_{k j}^{(2 s)}=2 w_{k j}^{(2 t)} \\ w_{k 0}^{(2 s)}=-\sum_{j=1}^{M} w_{k j}^{(2 t)}+w_{k 0}^{(2 t)} \end{array}\right.

と変換すれば等価になることがわかる。ここで、1つ目の条件は以下のように設定することで達成される。

w_{j i}^{(1 s)}=2 w_{j i}^{(1 t)}, \quad \text { and } \quad w_{j 0}^{(1 s)}=2 w_{j 0}^{(1 t)}

以上から、シグモイド活性化関数と\tanh活性化関数の2つのネットワークは、線形変換において等価であることが示された。

演習 5.2

複数の出力を持つニューラルネットワークについて,条件付き分布

p(\mathbf{t} \mid \mathbf{x}, \mathbf{w})=\mathcal{N}\left(\mathbf{t} \mid \mathbf{y}(\mathbf{x}, \mathbf{w}), \beta^{-1} \mathbf{I}\right) \tag{5.16}

の尤度関数最大化は,二乗和誤差関数

E(\mathbf{w})=\frac{1}{2} \sum_{n=1}^{N}\left\|\mathbf{y}\left(\mathbf{x}_{n}, \mathbf{w}\right)-\mathbf{t}_{n}\right\|^{2} \tag{5.11}

最小化(※最大化は誤植) と等価であることを示せ.


尤度関数は

\prod_{n=1}^N \mathcal{N}\left(\mathbf{t} \mid \mathbf{y}(\mathbf{x}, \mathbf{w}), \beta^{-1} \mathbf{I}\right)

と書けるから、負の対数尤度は、Kを目標変数\mathbf{t}の数として

\begin{aligned} &-\sum_{n=1}^{N} \ln \mathcal{N}\left(\mathbf{t} \mid \mathbf{y}(\mathbf{x}, \mathbf{w}), \beta^{-1} \mathbf{I}\right) \\ =&-\sum_{n=1}^{N} \ln \left\{\frac{1}{(2 \pi)^{K / 2}} \frac{1}{\left(\beta^{-1}\right)^{K / 2}} \exp \left(-\frac{\beta}{2}(\mathbf{t}_n-\mathbf{y}(\mathbf{x}_n, \mathbf{w}))^{\mathrm T} \mathbf{I} (\mathbf{t}_n-\mathbf{y}(\mathbf{x}_n, \mathbf{w}))\right)\right\} \\ =&-\sum_{n=1}^{N}\left\{\frac{K}{2} \ln \frac{\beta}{2 \pi}-\frac{\beta}{2}\|\mathbf{t}_n-\mathbf{y}(\mathbf{x}_n, \mathbf{w})\|^{2}\right\} \\ =& -\frac{N K}{2} \ln \frac{\beta}{2 \pi}+\frac{\beta}{2} \sum_{n=1}^{N}\|\mathbf{y}(\mathbf{x}_n, \mathbf{w})-\mathbf{t}_n\|^{2} \end{aligned}

となる。(5.11)は上式の第2項の定数\beta倍であることがわかる。また、第1項は定数である。
尤度関数の最大化は負の対数尤度の最小化と等価であるから、二乗和誤差関数(5.11)式の最小化に等しいことが示された。

演習 5.3

複数の目標変数を持ち,入力ベクトル\mathbf{x}を固定したときの目標変数の分布が

p(\mathbf{t} \mid \mathbf{x}, \mathbf{w})=\mathcal{N}(\mathbf{t} \mid \mathbf{y}(\mathbf{x}, \mathbf{w}), \mathbf{\Sigma}) \tag{5.192}

という形のガウス関数であるような回帰問題を考える.ここで,\mathbf{y}(\mathbf{x}, \mathbf{w})は入力べクトル\mathbf{x},重みベクトル\mathbf{w}を持つニューラルネットワークの出力であり,\mathbf{\Sigma}は目標値の想定されたガウスノイズの共分散である.\mathbf{x}\mathbf{t}の独立な観測値の集合が与えられたとき,\mathbf{\Sigma}は固定で既知と仮定して,\mathbf{w}に関する最尤推定解を見つけるための最小化すべき誤差関数を書き下せ.さらに,\mathbf{\Sigma}もまたデータから決定すべきと仮定し,\mathbf{\Sigma}の最尤推定解の式を書き下せ.ここでは5.2節で議論した独立な目標変数の場合と異なり,\mathbf{w}\mathbf{\Sigma}の最適化が連結されている点に注意せよ.


※後半の\mathbf{\Sigma}の最尤推定解を求める部分は演習問題2.34とほぼ同じなのでこちらを参照。

この場合の尤度関数は

L=\prod_{n=1}^{N} \mathcal{N}\left(\mathbf{t}_{n} \mid \mathbf{y}(\mathbf{x}_n, \mathbf{w})), \mathbf{\Sigma}\right)

で与えられるので、対数尤度関数は

\begin{aligned} \ln L &=\sum_{n=1}^{N} \ln \mathcal{N}\left(\mathbf{t}_{n} \mid \mathbf{y}(\mathbf{x}_n, \mathbf{w}), \mathbf{\Sigma}\right) \\ &=-\frac{NK}{2}\ln(2\pi)-\frac{N}{2} \ln |\mathbf{\Sigma}|-\frac{1}{2} \sum_{n=1}^{N}\left(\mathbf{t}_{n}-\mathbf{y}(\mathbf{x}_n, \mathbf{w})\right)^{\mathrm{T}} \mathbf{\Sigma}^{-1}\left(\mathbf{t}_{n}-\mathbf{y}(\mathbf{x}_n, \mathbf{w})\right) \end{aligned}

となる。

今、\mathbf{\Sigma}は固定で既知と仮定すると、上式より最小化すべき誤差関数は

E(\mathbf{w})=\frac{1}{2} \sum_{n=1}^{N}\left(\mathbf{t}_{n}-\mathbf{y}(\mathbf{x}_n, \mathbf{w})\right)^{\mathrm{T}} \mathbf{\Sigma}^{-1}\left(\mathbf{t}_{n}-\mathbf{y}(\mathbf{x}_n, \mathbf{w})\right)

である。

次に\mathbf{\Sigma}の最尤推定解の式を求めるために\mathbf{\Sigma}について偏微分すると、\mathbf{y}_n = \mathbf{y}(\mathbf{x}_n, \mathbf{w})として

\begin{aligned} \frac{\partial}{\partial \mathbf{\Sigma}} \ln L &=-\frac{N}{2} \frac{\partial}{\partial \mathbf{\Sigma}} \ln |\mathbf{\Sigma}|-\frac{1}{2} \frac{\partial}{\partial \mathbf{\Sigma}} \sum_{n=1}^{N}\left(\mathbf{t}_{n}-\mathbf{y}_{n}\right)^{\mathrm{T}} \mathbf{\Sigma}^{-1}\left(\mathbf{t}_{n}-\mathbf{y}_{n}\right) \\ &=-\frac{N}{2} \mathbf{\Sigma}^{-1}-\frac{1}{2} \frac{\partial}{\partial \mathbf{\Sigma}} \sum_{n=1}^{N} \operatorname{Tr}\left\{\mathbf{\Sigma}^{-1}\left(\mathbf{t}_{n}-\mathbf{y}_{n}\right)\left(\mathbf{t}_{n}-\mathbf{y}_{n}\right)^{\mathrm{T}}\right\} \\ &=-\frac{N}{2} \mathbf{\Sigma}^{-1}-\frac{1}{2} \frac{\partial}{\partial \mathbf{\Sigma}} \operatorname{Tr}\left\{\mathbf{\Sigma}^{-1} \sum_{n=1}^{N}\left(\mathbf{t}_{n}-\mathbf{y}_{n}\right)\left(\mathbf{t}_{n}-\mathbf{y}_{n}\right)^{\mathrm{T}}\right\} \\ &=-\frac{N}{2} \mathbf{\Sigma}^{-1}+\frac{1}{2} \mathbf{\Sigma}^{-1}\left\{\sum_{n=1}^{N}\left(\mathbf{t}_{n}-\mathbf{y}_{n}\right)\left(\mathbf{t}_{n}-\mathbf{y}_{n}\right)^{\mathrm{T}}\right\} \mathbf{\Sigma}^{-1} \end{aligned}

\frac{\partial}{\partial \mathbf{\Sigma}} \ln L = 0を求めると、最尤推定解は

\mathbf{\Sigma}_{\mathrm{ML}}=\frac{1}{N} \sum_{n=1}^{N}\left(\mathbf{t}_{n}-\mathbf{y}(\mathbf{x}_n, \mathbf{w})\right)\left(\mathbf{t}_{n}-\mathbf{y}(\mathbf{x}_n, \mathbf{w})\right)^{\mathrm{T}}

となる。

ちなみに\mathbf{w}\mathbf{\Sigma}は相互に依存しているので、これらの解を求めるときの1つの方法としては、\mathbf{w}\mathbf{\Sigma}の解を交互にある一定の収束値以下の誤差になるまで繰り返し求める、というものがある。

演習 5.4

目標値がt \in \{ 0,1\}であり,ネットワークの出力y(\mathbf{x}, \mathbf{w})p(t=1\mid \mathbf{x})を表すような2クラス分類問題を考え,訓練データ点のクラスラベルが誤っている確率が\epsilonであるとする.独立同分布のデータを仮定して,負の対数尤度に相当する誤差関数を書き下せ.また,\epsilon=0のときは誤差関数

E(\mathbf{w})=-\sum_{n=1}^{N}\left\{t_{n} \ln y_{n}+\left(1-t_{n}\right) \ln \left(1-y_{n}\right)\right\} \tag{5.21}

が得られることを確かめよ.通常の誤差関数と比べ,この誤差関数を用いると,誤ってラベル付けされたデータに対してモデルが頑健になることに注意せよ.


※P.235の流れと演習問題4.16を参照。

出力のy(\mathbf{x}, \mathbf{w})p(t=1\mid \mathbf{x})となるので

p(t=1\mid \mathbf{x}) = y(\mathbf{x}, \mathbf{w})

で表される。ここで目標値tのデータラベルが確率\varepsilonで間違っているとすると、kを真のクラスラベルとして

\begin{aligned} P(t=1 \mid \mathbf{x}) &=\sum_{k=0}^1 p(t=1 \mid k) p(k \mid \mathbf{x}) \\ &=\varepsilon(1-y(\mathbf{x}, \mathbf{w}))+(1-\varepsilon) y(\mathbf{x}, \mathbf{w}) \end{aligned}

P.235の議論から、入力が与えられたときの目標の条件付き分布は

p(t \mid \mathbf{x}, \mathbf{w})=p(t=1 \mid \mathbf{x})^{t}(1-p(t=1 \mid \mathbf{x}))^{1-t}

となる。独立同分布からN個のデータ点を取得して負の対数尤度を取り、これを誤差関数として定義すると

\begin{aligned} E(\mathbf{w}) &=-\ln \prod_{n=1}^{N} p\left(t_{n} \mid \mathbf{x}_{n}, \mathbf{w}\right) \\ &=-\sum_{n=1}^{N}\left\{t_{n} \ln p(t_{n}=1 \mid \mathbf{x}_n)+\left(1-t_{n}\right) \ln \{1-p(t=1 \mid \mathbf{x}_n)\} \right\} \\ &=-\sum_{n=1}^{N}\left\{t_{n} \ln \left[\varepsilon\left(1-y\left(\mathbf{x}_{n}, \mathbf{w}\right)\right)+(1-\varepsilon) y\left(\mathbf{x}_{n}, \mathbf{w}\right)\right] + \left(1-t_{n}\right) \ln \left[1-\varepsilon\left(1-y\left(\mathbf{x}_{n}, \mathbf{w}\right)\right)-(1-\varepsilon) y\left(\mathbf{x}_{n}, \mathbf{w}\right)\right]\right\} \end{aligned}

となる。これは\varepsilon = 0(ラベルミスがない)ならば

E(\mathbf{w})=-\sum_{n=1}^{N}\left\{t_{n} \ln y_{n}+\left(1-t_{n}\right) \ln \left(1-y_{n}\right)\right\} \tag{5.21}

と同型になる。

演習 5.5

出力がy_k(\mathbf{x}, \mathbf{w}) = p(t_k =1\mid \mathbf{x})と解釈される多クラスニューラルネットワークモデルについて,尤度を最適化することは,交差エントロピー誤差関数

E(\mathbf{w})=-\sum_{n=1}^{N} \sum_{k=1}^{K} t_{n k} \ln y_{k}\left(\mathbf{x}_{n}, \mathbf{w}\right) \tag{5.24}

を最小化することと等価であることを示せ.


Kクラスにおける条件付き確率分布は

p(\mathbf{t} \mid \mathbf{x}, \mathbf{w})=\prod_{k=1}^{K} p\left(t_{k}=1 \mid \mathbf{x}, \mathbf{w}\right)^{t_{k}}=\prod_{k=1}^{K} y_{k}^{t_{k}}

とかけるので尤度関数は\mathbf{T}=\left\{\mathbf{t}_1\dots\mathbf{t}_N\right\}, \mathbf{X}=\left\{\mathbf{x}_1\dots\mathbf{x}_N\right\}とおいて

p\left(\mathbf{T} \mid \mathbf{X} , \mathbf{w} \right)=\prod_{n=1}^{N} p(\mathbf{t}_n \mid \mathbf{x}_n, \mathbf{w})=\prod_{n=1}^{N} \prod_{k=1}^{K} y_{n k}^{t_{n k}}

とかける。尤度関数の負の対数は

-\ln p\left(\mathbf{T} \mid \mathbf{X}, \mathbf{w} \right)=-\sum_{n=1}^{N} \sum_{k=1}^{K} t_{n k} \ln y_{n k}

となるので、Kクラスの尤度関数の最適化は(5.24)の最小化と等価である。

演習 5.6

ロジスティックシグモイド活性化関数を持つ出力ユニットの活性a_kに関する誤差関数

E(\mathbf{w})=-\sum_{k=1}^{N}\left\{t_{k} \ln y_{k}+\left(1-t_{k}\right) \ln \left(1-y_{k}\right)\right\} \tag{5.21}

の微分は,

\frac{\partial E}{\partial a_{k}}=y_{k}-t_{k} \tag{5.18}

を満たすことを示せ.


ロジスティックシグモイド\displaystyle y_k = \sigma(a_{k}) = \frac{1}{1+e^{-a_k}}a_kで微分すると(これは演習問題4.12や(4.88)式と同じ)

\begin{aligned} \frac{\partial y_k}{\partial a_k} &= \frac{e^{-a_k}}{(1+e^{-a_k})^2} \\ &=\frac{1}{1+e^{-a_k}}\left( 1-\frac{1}{1+e^{-a_k}} \right) \\ &= y_k(1-y_k) \end{aligned}

なので、あるkのときのa_kについてのEの偏微分は

\begin{aligned} \frac{\partial E}{\partial a_{k}} &=-\left\{t_{k} \frac{\partial}{\partial a_{k}} \ln y_{k}+\left(1-t_{k}\right) \frac{\partial}{\partial a_{k}} \ln \left(1-y_{k}\right)\right\} \\ &=-\left\{\frac{t_{k}}{y_{k}} \frac{\partial y_{k}}{\partial a_{k}}-\frac{1-t_{k}}{1-y_{k}} \frac{\partial y_{k}}{\partial a_{k}}\right\} \\ &=-\left(\frac{t_{k}-y_{k}}{y_{k}\left(1-y_{k}\right)}\right) y_k (1- y_k ) \\ &=y_{k}-t_{k} \end{aligned}

となる。よって(5.18)式が得られた。

演習 5.7

ソフトマックス活性化関数を持つ出力ユニットの活性a_kに関する誤差関数

E(\mathbf{w})=-\sum_{n=1}^{N} \sum_{k=1}^{K} t_{n k} \ln y_{k}\left(\mathbf{x}_{n}, \mathbf{w}\right) \tag{5.24}

の微分は

\frac{\partial E}{\partial a_{k}}=y_{k}-t_{k} \tag{5.18}

を満たすことを示せ.


演習問題4.17とほとんど同じ。簡略化のためy_{nk}=y_{k}\left(\mathbf{x}_{n}, \mathbf{w}\right)と書くことにする。実際は\displaystyle \frac{\partial E}{\partial a_{nk}}=y_{nk}-t_{nk}を示すことになる。

y_{nk}はソフトマックス関数を出力の活性化関数に持っているので

y_{n k}=y_{k}\left(\mathbf{x}_{n}, \mathbf{w}\right)=\frac{\exp a_{nk}}{\sum_{j} \exp a_{nj}}

微分のchain ruleを使うと

\frac{\partial E}{\partial a_{n k}}=\sum_{i=1}^{N} \sum_{j=1}^{K} \frac{\partial E}{\partial y_{ij}} \frac{\partial y_{i j}}{\partial a_{n k}}

となる。\displaystyle \frac{\partial E}{\partial y_{ij}}=-\frac{t_{ij}}{y_{ij}}は簡単に求まる。

\displaystyle \frac{\partial y_{i j}}{\partial a_{n k}}は演習問題4.17の結果から

\frac{\partial y_{i j}}{\partial a_{n k}}=\left\{\begin{array}{cc} 0 & (\textrm{if}\ \ i \neq n) \\ y_{nj}\left(\delta_{kj}-y_{nk}\right) & (\textrm{if}\ \ i = n) \end{array}\right.

となる(\delta_{kj}はクロネッカーのデルタ)。よって

\begin{aligned} \frac{\partial E}{\partial a_{n k}} &=\sum_{j=1}^{K} t_{n j}\left(y_{n k}-\delta_{kj}\right) \\ &=y_{n k}\left(\sum_{j=1}^{K} t_{nj}\right)-\sum_{j=1}^{K} t_{nj} \delta_{kj} \\ &=y_{nk}-t_{nk} \left( \because \sum_{j=1}^{K} t_{nj}=1\right) \end{aligned}

以上から(5.18)式が得られた。最後の計算部分は演習問題4.18も参照。

演習 5.8

\frac{d \sigma}{d a}=\sigma(1-\sigma) \tag{4.88}

ではロジスティックシグモイド活性化関数の微分は,関数の値そのもので表されることがわかった.活性化関数が

\tanh (a)=\frac{e^{a}-e^{-a}}{e^{a}+e^{-a}} \tag{5.59}

で定義される\tanhである場合について,対応する結果を導け.


※単純に微分するだけ

\begin{aligned} \frac{d}{da}\tanh(a) &= \frac{(e^{a}+e^{-a})(e^{a}+e^{-a})-(e^{a}-e^{-a})(e^{a}-e^{-a})}{(e^{a}+e^{-a})^2} \\ &= 1-\left( \frac{e^{a}-e^{-a}}{e^{a}+e^{-a}} \right)^2\\ &= 1-\tanh^2 (a)\\ \end{aligned}

演習 5.9

0\leq y(\mathbf{x}, \mathbf{w})\leq 1となるロジスティックシグモイド活性化関数を出力に持ち,データが目標値t \in \{0,1\}を持つようなネットワークについて,2クラス分類問題における誤差関数

E(\mathbf{w})=-\sum_{n=1}^{N}\left\{t_{n} \ln y_{n}+\left(1-t_{n}\right) \ln \left(1-y_{n}\right)\right\} \tag{5.21}

が導かれた.ネットワークの出力が-1\leq y(\mathbf{x}, \mathbf{w})\leq 1であり,目標値がクラス\mathcal{C}_1についてはt=1,クラス\mathcal{C}_2についてはt=-1であるようなネットワークを考えたとき,対応する誤差関数を導け.出力ユニットの活性化関数はどのように選ぶのが適切か.


指定された値域になるような変換を考える.

\begin {aligned} t \in \{0,1\} &\longrightarrow \hat{t} \in \{-1,1\} \\ 0\leqslant y \leqslant 1 &\longrightarrow -1 \leqslant \hat{y} \leqslant 1 \end {aligned}

となる\hat{t}, \hat{y}

\begin {aligned} \hat{t} = 2t-1 &\Leftrightarrow t = \frac{\hat{t}+1}{2} \\ \hat{y} = 2y-1 &\Leftrightarrow y = \frac{\hat{y}+1}{2} \end {aligned}

で与えられる.

これを5.21に代入すると,

\begin {aligned} E(\mathbf{w}) &= -\sum_{n=1}^{N}\left\{t_{n} \ln y_{n}+\left(1-t_{n}\right) \ln \left(1-y_{n}\right)\right\} \\ &= -\sum_{n=1}^{N}\left\{\frac{\hat{t}_{n}+1}{2} \ln \frac{\hat{y}_{n}+1}{2}+\left(1-\frac{\hat{t}_{n}+1}{2}\right) \ln \left(1-\frac{\hat{y}_{n}+1}{2}\right)\right\} \\ &= -\frac{1}{2} \sum_{n=1}^{N}\left\{(1+\hat{t}_{n}) \ln (1+\hat{y}_{n})+\left(1-\hat{t}_{n}\right) \ln \left(1-\hat{y}_{n}\right)\right\} + N \ln 2 \end {aligned}

となり,対応する誤差関数が導かれる.

また,出力ユニットの活性化関数h(a)についてはy=\sigma (a)の値域が0 \leqslant y \leqslant 1であったので

\begin {aligned} h(a) &= 2\sigma (a) - 1 \\ &= \frac{2}{1+e^{-a}} - 1 \\ &= \frac{1-e^{-a}}{1+e^{-a}} \\ &= \frac{e^{a/2}-e^{-a/2}}{e^{a/2}+e^{-a/2}} \\ &= \tanh (a/2) \end {aligned}

を選べば良い.

演習 5.10

固有方程式

\mathbf{H}\mathbf{u}_i = \lambda_i \mathbf{u}_i \tag{5.33}

を持つヘッセ行列\mathbf{H}を考える.

\mathbf{v}^{\mathrm{T}} \mathbf{H} \mathbf{v}=\sum_{i} c_{i}^{2} \lambda_{i} \tag{5.39}

におけるベクトル\mathbf{v}を順々に固有ベクトル\mathbf{u}_iのそれぞれと等しくすることにより,すべての固有値が正であるときそのときに限り\mathbf{H}は正定値であることを示せ.


(5.33)(5.34)より

\mathbf{u}_i^T\mathbf{H}\mathbf{u}_i=\mathbf{u}_i^T\mathbf{\lambda}_i\mathbf{u}_i=\mathbf{\lambda}_i

\mathbf{H}が正定値のとき、(5.37)が成り立つ。

ここで\mathbf{v}=\mathbf{u}_iとすると、

\mathbf{\lambda}_i=\mathbf{u}_i^T\mathbf{H}\mathbf{u}_i>0

よって\mathbf{H}が正定値のとき、すべての固有値は正となる。

またすべての固有値が正であるとき、任意のベクトル\mathbf{v}に対して、(5.39)より、

\mathbf{v}^T\mathbf{H}\mathbf{v}=\sum_{i}\mathbf{c}_i^2\mathbf{\lambda}_i>0

ゆえに、すべての固有値が正であるとき\mathbf{H}は正定値となる。

演習 5.11

E(\mathbf{w}) \simeq E\left(\mathbf{w}^{*}\right)+\frac{1}{2}\left(\mathbf{w}-\mathbf{w}^{*}\right)^{\mathrm{T}} \mathbf{H}\left(\mathbf{w}-\mathbf{w}^{*}\right) \tag{5.32}

で定義される二次誤差関数を考える.ここで,ヘッセ行列\mathbf{H}

\mathbf{H}\mathbf{u}_i = \lambda_i \mathbf{u}_i \tag{5.33}

で与えられる固有方程式を持つとする.このとき,誤差一定の等高線は,方向が固有ベクトル\mathbf{u}_jであり,長さが対応する固有値\lambda_iの平方根の逆数であるような軸を持つ楕円であることを示せ.


(5.36)より、(5.32)の式は

E(\mathbf{w})=E(\mathbf{w}^{\star})+\frac{1}{2}\sum_{i}\mathbf{\lambda}_i\mathbf{\alpha}_i^2

の形で書くことができる。

誤差一定の等高線を考えたとき、E(\mathbf{w})を定数Cで表すと、

C=E(\mathbf{w}^{\star})+\frac{1}{2}\sum_{i}\mathbf{\lambda}_i\mathbf{\alpha}_i^2

このとき、

\begin{aligned} \sum_{i}\mathbf{\lambda}_i\mathbf{\alpha}_i^2&=2C-2E(\mathbf{w}^{\star})\\&=\tilde{C} \end{aligned}

と表すことができる。なお、\tilde{C}は定数である。

\mathbf{\alpha}_i\mathbf{u}_i方向の長さを表すため、この式は\mathbf{u}_iによって記述された座標に表現される楕円の方程式である。

また、すべてのi \neq jについて\mathbf{\alpha}_i=0とすることで軸jの長さが決定される。

このとき、

\mathbf{\alpha}_j=\left(\frac{\tilde{C}}{\mathbf{\lambda}_j}\right)^{\frac{1}{2}}

軸の長さが、対応する固有値\mathbf{\lambda}_jの平方根の逆数であるような軸を持つことが示された。

演習 5.12

停留点\mathbf{w}^{*}のまわりでの誤差関数のテイラー展開

E(\mathbf{w}) \simeq E\left(\mathbf{w}^{*}\right)+\frac{1}{2}\left(\mathbf{w}-\mathbf{w}^{*}\right)^{\mathrm{T}} \mathbf{H}\left(\mathbf{w}-\mathbf{w}^{*}\right) \tag{5.32}

を考えることで,停留点が誤差関数の局所的極小点であることの必要十分条件は,

\left.(\mathbf{H})_{i j} \equiv \frac{\partial E}{\partial w_{i} \partial w_{j}}\right|_{\mathbf{w}=\widehat{\mathbf{w}}} \tag{5.30}

で定義されるヘッセ行列\mathbf{H}が正定値であることを示せ.ただし\hat{\mathbf{w}} = \mathbf{w}^{*}である.


まず十分条件の証明を行う。\mathbf{w}^{*}が誤差関数E(\mathbf{w})の局所的極小点であるならば、\mathbf{w}^{*}周辺の任意のベクトル\mathbf{w}についてE(\mathbf{w}) > E(\mathbf{w}^{*})が成立することになる。同様に、(5.32)のテイラー展開の式から任意のベクトル\mathbf{w}について

\frac{1}{2}\left(\mathbf{w}-\mathbf{w}^{*}\right)^{\mathrm{T}} \mathbf{H}\left(\mathbf{w}-\mathbf{w}^{*}\right) > 0

となる必要がある。任意の0ベクトルでない\left(\mathbf{w}-\mathbf{w}^{*}\right)について上式が成り立つので、演習問題2.20でも証明されたように、ヘッセ行列\mathbf{H}は正定値行列となる。

反対に必要条件の証明として、ヘッセ行列\mathbf{H}が正定値行列ならば任意の0ベクトルでない\left(\mathbf{w}-\mathbf{w}^{*}\right)^{\mathrm{T}} \mathbf{H}\left(\mathbf{w}-\mathbf{w}^{*}\right) > 0なのでE(\mathbf{w}) > E(\mathbf{w}^{*})となる。すなわち、(\mathbf{w}^{*}の近傍で)E(\mathbf{w})のとりうる最小の値はE(\mathbf{w}^{*})であるため、\mathbf{w}^{*}において極小値を取る。

以上から題意が示された。

※一般に多変数関数の極値判定において、「ある点で偏導関数の値が全て0かつヘッセ行列が正定値ならば、その点は極小である」という定理が存在する(反対にヘッセ行列が負定値ならば、その点は極大である)。ヘッセ行列\mathbf{H}が正定値行列であるかどうかは、以下の3つの条件のうちいずれかを満たすことを調べればよい(いずれも数学的には等価)。参考:https://mathtrain.jp/hessian

  1. 全ての(0ベクトルではない)n次元ベクトル\mathbf{v}に対して\mathbf{v}^{\mathrm{T}} \mathbf{H} \mathbf{v} > 0であること
  2. \mathbf{H}の固有値が全て正
  3. 首座小行列の行列式が全て正。

演習 5.13

ヘッセ行列\mathbf{H}の対称性により,二次誤差関数

E(\mathbf{w}) \simeq E(\widehat{\mathbf{w}})+(\mathbf{w}-\widehat{\mathbf{w}})^{\mathrm{T}} \mathbf{b}+\frac{1}{2}(\mathbf{w}-\widehat{\mathbf{w}})^{\mathrm{T}} \mathbf{H}(\mathbf{w}-\widehat{\mathbf{w}}) \tag{5.28}

の独立成分の数はW(W+3)/2で与えられることを示せ.


この式の各項は

\begin{aligned} E(\mathbf{w}) \simeq E(\widehat{\mathbf{w}})+(\mathbf{w}-\widehat{\mathbf{w}})^{\mathrm{T}} \underbrace{\mathbf{b}}_{W個}+\frac{1}{2}(\mathbf{w}-\widehat{\mathbf{w}})^{\mathrm{T}} \underbrace{\mathbf{H}}_{\frac{W(W+1)}{2}個}(\mathbf{w}-\widehat{\mathbf{w}}) \end{aligned}

の独立変数があり他は全て定数である。これらの線形和なので全部で独立成分の数はW(W+3)/2である。

演習 5.14

テイラー展開をすることにより,

\frac{\partial E_{n}}{\partial w_{j i}}=\frac{E_{n}\left(w_{j i}+\epsilon\right)-E_{n}\left(w_{j i}-\epsilon\right)}{2 \epsilon}+O\left(\epsilon^{2}\right) \tag{5.69}

の右辺においてO(\epsilon)である項は消えることを確かめよ.


\displaystyle E_n^{\prime} = \frac{\partial E_n}{\partial w_{ji}}としてテイラー展開を用いると

\begin{aligned} E_{n}\left(w_{j i}+\varepsilon\right) &= E_{n}\left(w_{j i}\right)+\varepsilon E_{n}^{\prime}\left(w_{j i}\right)+\frac{\varepsilon^{2}}{2} E_{n}^{\prime \prime}\left(w_{j i}\right)+\mathcal{O}\left(\varepsilon^{3}\right) \\ E_{n}\left(w_{j i}-\varepsilon\right) &= E_{n}\left(w_{j i}\right)-\varepsilon E_{n}^{\prime}\left(w_{j i}\right)+\frac{\varepsilon^{2}}{2} E_{n}^{\prime \prime}\left(w_{i i}\right)+\mathcal{O}\left(\varepsilon^{3}\right) \end{aligned}

よって

E_{n}\left(w_{j i}+\varepsilon\right)-E\left(w_{j i}-\varepsilon\right)=2 \varepsilon E_{n}^{\prime}\left(w_{j i}\right)+\mathcal{O}\left(\varepsilon^{3}\right)

これを変形すれば

\begin{aligned} \frac{\partial E_{n}}{\partial w_{j i}} &= \frac{E_{n}\left(w_{j i}+\epsilon\right)-E_{n}\left(w_{j i}-\epsilon\right)+\mathcal{O}\left(\varepsilon^{3}\right)}{2 \epsilon} \\ &= E_{n}^{\prime}\left(w_{j i}\right) +\mathcal{O}\left(\varepsilon^{2}\right) \end{aligned}

が得られる。

演習 5.15

5.3.4節において.逆伝播手続きを利用してニューラルネットワークのヤコビ行列を評価する手続きを導いた.順伝播方程式に基づき,ヤコビ行列を見つけるための他の定式化を導出せよ.


※たぶん5.3.4節で行っていた逆伝播の手順と逆向きに連鎖律を適用することでヤコビ行列を導け、という意味。

イメージとしては以下のような図になる。

image

(5.73)式から、ユニットjを出力層と結合する全てのユニットとすると

J_{k i}=\frac{\partial y_{k}}{\partial x_{i}}=\sum_{j} \frac{\partial y_{k}}{\partial a_{j}} \frac{\partial a_{j}}{\partial x_{i}}

であり、出力ユニット活性に関わる項\displaystyle \frac{\partial y_{k}}{\partial a_{j}}(5.75), (5.76)式で示されているように

\frac{\partial y_{k}}{\partial a_{j}}=\delta_{k j} \sigma^{\prime}\left(a_{j}\right)

などで表されるので、

\sum_{j} \frac{\partial y_{k}}{\partial a_{j}} \frac{\partial a_{j}}{\partial x_{i}} = \sum_{j} \delta_{k j} \sigma^{\prime}\left(a_{j}\right) \frac{\partial a_j}{\partial x_i}

となる。

また、ユニットjに結合している全てのユニットをl(層状構造ならjの一つ手前の層に属するユニット)とすると

a_j = \sum_{l} w_{jl}z_lz_l = h(a_l)を利用して

\begin{aligned} \frac{\partial a_{j}}{\partial x_{i}} &= \sum_l \frac{\partial a_j}{\partial z_l}\frac{\partial z_l}{\partial a_l}\frac{\partial a_l}{\partial x_i} \\ &= \sum_l w_{jl}h^{\prime}(a_l)\frac{\partial a_l}{\partial x_i} \end{aligned}

で評価できる。もしa_lがインプット層から見て最初の隠れ層ならば

\frac{\partial a_{l}}{\partial x_{i}} = \frac{\partial}{\partial x_i}\sum_i w_{li}x_i = w_{li}

となっている。
これを再帰的に計算することによってヤコビ行列を計算することができる。

演習 5.16

二乗和誤差関数を用いたニューラルネットワークのヘッセ行列の外積による近似は

\mathbf{H} \simeq \sum_{n=1}^{N} \mathbf{b}_{n} \mathbf{b}_{n}^{\mathrm{T}} \tag{5.84}

で与えられる.この結果を複数の出力を持つ場合に拡張せよ.


※5.4.2 外積による近似を参照。

(5.82)式から二乗和誤差関数

E=\frac{1}{2} \sum_{n=1}^{N}\left(y_{n}-t_{n}\right)^{2}

の出力y_n, t_nK次元に拡張すると

\begin{aligned} E &=\frac{1}{2} \sum_{n=1}^{N}\left\|\mathbf{y}_n-\mathbf{t}_n\right\|^{2} \\ &=\frac{1}{2} \sum_{n=1}^{N}\left(\mathbf{y}_n-\mathbf{t}_n\right)^{\mathrm T}\left(\mathbf{y}_n-\mathbf{t}_n\right) \\ &=\frac{1}{2} \sum_{n=1}^{N} \sum_{k=1}^{K}\left(y_{n k}-t_{nk}\right)^{2} \end{aligned}

となる。(5.83)にならってヘッセ行列を求めるためにw_i, w_jで偏微分すると

\frac{\partial E}{\partial w_{i}}=\sum_{n=1}^{N} \sum_{k=1}^{K}\left(y_{n k}-t_{n k}\right) \frac{\partial y_{n k}}{\partial w_{i}}
\frac{\partial}{\partial w_{j}}\left(\frac{\partial E}{\partial w_{i}}\right)=\sum_{n=1}^{N} \sum_{k=1}^{K}\left\{\frac{\partial y_{nk}}{\partial w_{j}} \frac{\partial y_{n k}}{\partial w_{i}}+\left(y_{n k}-t_{n k}\right) \frac{\partial}{\partial w_{j}} \frac{\partial y_{n k}}{\partial w_{i}}\right\}

P.252の記述のように、もし訓練によって出力値\mathbf{y}_nが目標値\mathbf{t}_nに十分近づいているとするならば、\sumの中の第2項は無視できるほど小さくなる。すなわち、

\frac{\partial}{\partial w_{j}}\left(\frac{\partial E}{\partial w_{i}}\right) \simeq \sum_{n=1}^{N} \sum_{k=1}^{K}\left( \frac{\partial y_{nk}}{\partial w_{j}} \frac{\partial y_{n k}}{\partial w_{i}}\right)

となる。これをもとにヘッセ行列を考えると

\begin{aligned} \mathbf{H} = \nabla\nabla E &= \sum_{n=1}^{N} \sum_{k=1}^{K}\begin{pmatrix} \frac{\partial y_{n k}}{\partial w_{0}}\frac{\partial y_{n k}}{\partial w_{0}} & \cdots & \frac{\partial y_{n k}}{\partial w_{0}}\frac{\partial y_{n k}}{\partial w_{M-1}} \\ \vdots& \ddots & \vdots \\ \frac{\partial y_{n k}}{\partial w_{M-1}}\frac{\partial y_{n k}}{\partial w_{0}} & \cdots & \frac{\partial y_{n k}}{\partial w_{M-1}}\frac{\partial y_{n k}}{\partial w_{M-1}} \end{pmatrix}\\ &= \sum_{n=1}^{N} \sum_{k=1}^{K}\begin{pmatrix} \frac{\partial y_{n k}}{\partial w_{0}} \\ \vdots \\ \frac{\partial y_{n k}}{\partial w_{M-1}} \end{pmatrix}\begin{pmatrix}\frac{\partial y_{n k}}{\partial w_{0}}, \cdots, \frac{\partial y_{n k}}{\partial w_{M-1}}\end{pmatrix} \\ &= \sum_{n=1}^{N} \sum_{k=1}^{K}\mathbf{b}_{n, k} \mathbf{b}_{n, k}^{\mathrm T} \end{aligned}

と書ける。ここで、\mathbf{b}_{n,k}=\nabla y_{nk}=\begin{pmatrix}\frac{\partial y_{n k}}{\partial w_{0}} \\ \vdots \\ \frac{\partial y_{n k}}{\partial w_{M-1}} \end{pmatrix}とした。

または\sum_{n=1}^{N} \sum_{k=1}^{K}\mathbf{b}_{n, k} \mathbf{b}_{n, k}^{\mathrm T}の式をkについて拡張すると

\begin{aligned} \sum_{n=1}^{N} \sum_{k=1}^{K}\mathbf{b}_{n, k} \mathbf{b}_{n, k}^{\mathrm T} &= \sum_{n=1}^{N} \begin{pmatrix} \frac{\partial y_{n 1}}{\partial w_{0}} & \cdots & \frac{\partial y_{nK}}{\partial w_{0}} \\ \vdots & \ddots & \vdots \\ \frac{\partial y_{n_{1}}}{\partial w_{M-1}} & \cdots & \frac{\partial y_{nK}}{\partial w_{M-1}} \end{pmatrix} \begin{pmatrix} \frac{\partial y_{n 1}}{\partial w_{0}} & \cdots & \frac{\partial y_{n 1}}{\partial w_{M-1}} \\ \vdots & \ddots & \vdots \\ \frac{\partial y_{nK}}{\partial w_{0}} & \cdots & \frac{\partial y_{nK}}{\partial w_{M-1}} \end{pmatrix} \\ &=\sum_{n=1}^{N} \begin{pmatrix} \mathbf{b}_{n1},\cdots,\mathbf{b}_{nK} \end{pmatrix} \begin{pmatrix} \mathbf{b}_{n1}^{\mathrm T} \\ \vdots \\ \mathbf{b}_{nK}^{\mathrm T} \end{pmatrix} \\ &=\sum_{n=1}^{N}\mathbf{B}_n\mathbf{B}_n^{\mathrm T} \end{aligned}

と書くこともできる。

\mathbf{B}_n

\mathbf{B}_n = \begin{pmatrix} \mathbf{b}_{n1},\cdots,\mathbf{b}_{nK} \end{pmatrix}

で表されるM\times K行列を用いた。\mathbf{B}_nlk列成分は

\left(\mathbf{B}_{n}\right)_{l k}=\frac{\partial y_{n k}}{\partial w_{l-1}}

となっている。

結局このヘッセ行列は3階のテンソルになっているらしい。

演習 5.17

二乗誤差関数

E=\frac{1}{2} \iint\{y(\mathbf{x}, \mathbf{w})-t\}^{2} p(\mathbf{x}, t) \mathrm{d} \mathbf{x} \mathrm{d} t \tag{5.193}

を考える.ここで,y(\mathbf{x},\mathbf{w})はニューラルネットワークのようなパラメトリックな関数である.

y(\mathbf{x})=\frac{\int t p(\mathbf{x}, t) \mathrm{d} t}{p(\mathbf{x})}=\int t p(t \mid \mathbf{x}) \mathrm{d} t=\mathbb{E}_{t}[t \mid \mathbf{x}] \tag{1.89}

の結果はこの誤差を最小化する関数y(\mathbf{x},\mathbf{w})\mathbf{x}が与えられたときのtの条件付き期待値で与えられることを示している.この結果を使って,ベクトル\mathbf{w}の2つの要素w_rw_sに関するEの2階微分が

\frac{\partial^{2} E}{\partial w_{r} \partial w_{s}}=\int \frac{\partial y}{\partial w_{r}} \frac{\partial y}{\partial w_{s}} p(\mathbf{x}) \mathrm{d} \mathbf{x} \tag{5.194}

で与えられることを示せ.ここでp(\mathbf{x})から有限個サンプリングする場合には,

\mathbf{H} \simeq \sum_{n=1}^{N} \mathbf{b}_{n} \mathbf{b}_{n}^{\mathrm{T}} \tag{5.84}

が得られることに注意せよ.


※まず要素w_rw_sについての微分を行う。

\begin{aligned} \frac{\partial^{2} E}{\partial w_{r} \partial w_{s}} &=\frac{\partial}{\partial w_{r}}\left\{\frac{1}{2} \frac{\partial}{\partial w_{s}} \iint\{y(\mathbf{x}, \mathbf{w})-t\}^{2} p(\mathbf{x}, t) d\mathbf{x} dt\right\} \\ &=\frac{\partial}{\partial w_r}\left\{\frac{1}{2} \iint 2\{y(\mathbf{x}, \mathbf{w})-t\} \frac{\partial y}{\partial w_{s}} p(\mathbf{x},\mathbf{t}) d\mathbf{x} dt \right\} \\ &=\iint\left\{\frac{\partial y}{\partial w_{r}} \frac{\partial y}{\partial w_{s}}+\{y(\mathbf{x}, \mathbf{w})-t\} \frac{\partial^{2} y}{\partial w_{r} \partial w_{s}}\right\} p(\mathbf{x}, t) d\mathbf{x} dt \end{aligned}

(5.194)式と比べると\{y(\mathbf{x}, \mathbf{w})-t\}\frac{\partial^{2} y}{\partial w_{r} \partial w_{s}}が消えているので、この項について計算してみると

\begin{aligned} & \iint(y(\mathbf{x}, \mathbf{w})-t) \frac{\partial^{2} y}{\partial w_{r} \partial w_{s}} p(\mathbf{x}, t) d\mathbf{x} d t \\ =& \iint y(\mathbf{x}, \mathbf{w}) \frac{\partial^{2} y}{\partial w_{r} \partial w_{s}} p(\mathbf{x}, t) d\mathbf{x} d t-\int \frac{\partial^{2} y}{\partial w_{r} \partial w_{s}}\left\{\int t p(\mathbf{x}, t) d t\right\} d\mathbf{x} \\ =& \int y(\mathbf{x}, \mathbf{w}) \frac{\partial^{2} y}{\partial w_{r} \partial w_{s}} p(\mathbf{x}) d\mathbf{x}-\int \frac{\partial^{2} y}{\partial w_{r} \partial w_{s}} y(\mathbf{x},\mathbf{w}) p(\mathbf{x}) d\mathbf{x} \\ =&\ 0 \end{aligned}

となるので、

\begin{aligned} \frac{\partial^{2} E}{\partial w_{r} \partial w_{s}} &=\iint \frac{\partial y}{\partial w_{r}} \frac{\partial y}{\partial w_{s}} p(\mathbf{x}, t) d\mathbf{x} d t \\ &=\int \frac{\partial y}{\partial w_{r}} \frac{\partial y}{\partial w_{s}} p(\mathbf{x}) d\mathbf{x} \end{aligned}

これより(5.194)式が求められた。

ちなみにこの式は有限のデータセットN個であればp(\mathbf{x})からサンプリングしたときに

\begin{aligned} \frac{\partial^{2} E}{\partial w_{r} \partial w_{s}} &=\frac{1}{N}\sum_{n=1}^N \frac{\partial y_n}{\partial w_{r}} \frac{\partial y_n}{\partial w_{s}} \end{aligned}

となるので、(5.84)式のヘッセ行列と同型になることがわかる。

演習 5.18

fig5.1.png

図5.1に示す形の2層ネットワークで,入力から出力へ直接つながる,層を飛び越えた結合に相当するパラメータを追加したものを考える.5.3.2節での議論を拡張して,誤差関数の追加されたパラメータに関する微分の方程式を書き下せ.


入力から出力層へ追加されたパラメータを考慮すると、

y_{k} = a_{k} = \sum_{j=1}^{M} w_{k j} z_{j} + \sum_{i=1}^{D} w_{k i} x_{i}

ここでは、Eは二乗和誤差関数、出力には恒等関数を使用しているので、追加されたパラメータに対して偏微分を取ってあげると、

\begin{aligned} \frac{\partial E}{\partial w_{k i}} &= \frac{\partial E}{\partial y_{k}} \frac{\partial y_{k}}{\partial a_{k}} \frac{\partial a_{k}}{\partial w_{k i}} \\ &= (y_{k} - t_{k}) x_{i} \\ \end{aligned}

演習 5.19

出力ユニットは1つでその活性化関数はロジスティックシグモイド関数,誤差関数は交差エントロピーであるネットワークについて,二乗和誤差関数の場合の結果

\mathbf{H} \simeq \sum_{n=1}^{N} \mathbf{b}_{n} \mathbf{b}_{n}^{\mathrm{T}} \tag{5.84}

に対応する,ネットワークのヘッセ行列の外積による近似式

\mathbf{H} \simeq \sum_{n=1}^{N} y_{n}\left(1-y_{n}\right) \mathbf{b}_{n} \mathbf{b}_{n}^{\mathrm{T}} \tag{5.85}

を導け.


ロジスティックシグモイド関数\displaystyle y_n = \sigma(a_n) = \frac{1}{1+e^{-a_n}}の微分形は\displaystyle \frac{\partial y_n}{\partial a_n} = y_n(1-y_n)になる(演習問題4.12を参照)。

誤差関数は交差エントロピー

E(\mathbf{w})=-\sum_{n=1}^{N}\left\{t_{n} \ln y_{n}+\left(1-t_{n}\right) \ln \left(1-y_{n}\right)\right\} \tag{5.21}

である場合、演習問題4.13の結果から

\begin{aligned} \nabla E(\mathbf{w}) &=\frac{\partial E}{\partial y_{n}} \frac{\partial y_{n}}{\partial a_{n}} \nabla a_{n} \\ &=\sum_{n=1}^{N} \frac{y_{n}-t_{n}}{y_{n}\left(1-y_{n}\right)} \cdot y_{n}\left(1-y_{n}\right) \nabla a_{n} \\ &=\sum_{n=1}^{N}\left(y_{n}-t_{n}\right) \nabla a_{n} \end{aligned}

となる。ヘッセ行列\mathbf{H}を計算するためにもう一度\nablaをとると

\begin{aligned} \mathbf{H}=\nabla \nabla E(\mathbf{w}) &=\sum_{n=1}^{N}\left\{\nabla\left(y_{n}-t_{n}\right) \nabla a_{n}^{\mathrm T}+\left(y_{n}-t_{n}\right) \nabla \nabla a_{n}\right\} \\ &=\sum_{n=1}^{N}\left\{\frac{\partial y_{n}}{\partial a_{n}} \nabla a_{n} \nabla a_{n}^{\mathrm T}+\left(y_{n}-t_{n}\right) \nabla \nabla a_{n}\right\} \\ &=\sum_{n=1}^{N}\left\{y_{n}\left(1-y_{n}\right) \nabla a_{n} \nabla a_{n}^{\mathrm T}+\left(y_{n}-t_{n}\right) \nabla \nabla a_{n}\right\} \end{aligned}

P.252の記述のように、ネットワークをデータ集合で訓練し,その出力y_nが目標値t_nに非常に近づいたとしたら,第2項は小さくなり無視できるので

\begin{aligned} \mathbf{H} & \simeq \sum_{n=1}^{N} y_{n}\left(1-y_{n}\right) \nabla a_{n} \nabla a_{n}^{\mathrm T} \\ &=\sum_{n=1}^{N} y_{n}\left(1-y_{n}\right) \mathbf{b}_{n} \mathbf{b}_{n}^{\mathrm T} \end{aligned}\tag{5.85}

が得られる。

演習 5.20

出力ユニットはK個でその活性化関数はソフトマックス関数,誤差関数は交差エントロピーであるネットワークについて,二乗和誤差関数の場合の結果

\mathbf{H} \simeq \sum_{n=1}^{N} \mathbf{b}_{n} \mathbf{b}_{n}^{\mathrm{T}} \tag{5.84}

に対応する,ネットワークのヘッセ行列の外積による近似式を導け.


※重みwの添字にi,jを、クラスの添字にk,lを使う。

多クラスの場合の交差エントロピー誤差関数は

\begin{aligned} E(\mathbf{w}) &=-\sum_{n=1}^{N} \sum_{k=1}^{K} t_{nk} \ln y_{k}\left(\mathbf{x}_{n}, \mathbf{w}\right) \\ &=-\sum_{n=1}^{N} \sum_{k=1}^{K} t_{nk} \ln y_{n k} \end{aligned} \tag{5.24, 4.108}

であり、出力ユニットのソフトマックス活性化関数

y_{k}\left(\mathbf{x}_{n}, \mathbf{w}\right)=\frac{\exp \left(a_{k}\left(\mathbf{x}_{n}, \mathbf{w}\right)\right)}{\sum_{l=1}^{K} \exp \left(a_{l}\left(\mathbf{x}_{n}, \mathbf{w}\right)\right)}

の偏微分は、演習問題5.7の結果から

\frac{\partial E}{\partial a_{nk}}=y_{n k}-t_{n k}

である。

重みw_iについてのEの偏微分を行うと

\begin{aligned} \nabla_{w_{i}} E &=\sum_{n=1}^{N} \sum_{k=1}^{K} \frac{\partial E}{\partial a_{n k}} \nabla_{w_{i}} a_{n k} \\ &=\sum_{n=1}^{N} \sum_{k=1}^{K}\left(y_{n k}-t_{n k}\right) \nabla_{w_{i}} a_{n k} \end{aligned}

となる。さらに重みw_jで偏微分すると

\mathbf{H}=\nabla_{w_{j}} \nabla_{w_{i}} E=\sum_{n=1}^{N} \sum_{k=1}^{K}\left\{ (\nabla_{w_{j}}\left(y_{nk}-t_{nk}\right)) \nabla_{w_{i}} a_{n k}+\left(y_{nk}-t_{nk}\right) \nabla_{w_{j}} \nabla_{w_{i}} a_{nk} \right\}

ここで\displaystyle \nabla_{w_{j}}\left(y_{nk}-t_{nk}\right)についての計算は

\begin{aligned} \nabla_{w_{j}}\left(y_{nk}-t_{nk}\right) &=\sum_{l=1}^{K} \frac{\partial y_{n k}}{\partial a_{nl}} \nabla_{w_{j}} a_{n l} \\ &=\sum_{l=1}^{K} y_{n k}\left(\delta_{k l}-y_{n l}\right) \nabla_{w_{j}} a_{n l} \end{aligned}

となるので、ヘッセ行列は

\begin{aligned} \mathbf{H}&=\nabla_{w_{j}} \nabla_{w_{i}} E \\ &=\sum_{n=1}^{N} \sum_{k=1}^{K} \left\{ \sum_{l=1}^{K} y_{nk}\left(\delta_{kl}-y_{nl}\right) \nabla_{w_{j}} a_{nl} \nabla_{w_{i}} a_{nk} +\left(y_{nk}-t_{nk}\right) \nabla_{w_{j}} \nabla_{w_{i}} a_{nk}\right\} \end{aligned}

例によって第2項が無視できる状況ならば

\begin{aligned} \mathbf{H} &\simeq \sum_{n=1}^{N} \sum_{k=1}^{K} \sum_{l=1}^{K} y_{n k}\left(\delta_{k l}-y_{nl}\right) \nabla_{w_{j}} a_{nl} \nabla_{w_{i}} a_{n k} \\ &= \sum_{n=1}^{N} \sum_{k=1}^{K} \sum_{l=1}^{K} y_{n k}\left(\delta_{k l}-y_{n l}\right)\begin{pmatrix} \frac{\partial a_{nl}}{\partial w_{0}} \\ \vdots \\ \frac{\partial a_{nl}}{\partial w_{M-1}} \end{pmatrix} \left(\frac{\partial a_{n k}}{\partial w_{0}}, \cdots, \frac{\partial a_{n k}}{\partial w_{M-1}}\right) \\ &= \sum_{n=1}^{N} \sum_{k=1}^{K} \sum_{l=1}^{K} y_{n k}\left(\delta_{k l}-y_{n l}\right)\begin{pmatrix} \frac{\partial a_{nl} \partial a_{nk}}{\partial w_{0}^{2}} & \cdots & \frac{\partial a_{nl} \partial a_{nk}}{\partial w_{0} \partial w_{M-1}} \\ \vdots & \ddots &\vdots \\ \frac{\partial a_{nl} \partial a_{n k}}{\partial w_{M-1} \partial w_{0}} & \cdots & \frac{\partial a_{nl} \partial a_{nk}}{\partial w_{M-1} \partial w_{M-1}} \end{pmatrix} \end{aligned}

を得る。

Discussion

ChoikoChoiko

お世話になります。
演習問題5.1の解答部分10行目の 左辺aの付された(t)と、14行目の左辺aに付された(s)は、それぞれ(2t),(2s)ではないでしょうか?( )の中は何層目の活性であるかを示されているように思います。
そうであれば上記に加え、右辺の(t),(s)も(1t),(1s)である方が明確であるように思います。
間違いであれば誠にすみません。

ChoikoChoiko

お世話になります。
演習問題5.3の下から6行目の第2項は符号がーではなく+であるように思います。
いかがでしょうか。

DR YOSHITAKADR YOSHITAKA

いつもありがとうございます。上のコメント2点を修正しました。

ChoikoChoiko

いつもお世話になります。
演習問題5.9の下から3行目の式について、分子分母の第2項EXP(a/2)はEXP(-a/2)であるように思います。
ご確認くださいませ。
先生の回答はPRML全問をカバーしてくださっており、とても詳しいのでいつも助かっています。

ChoikoChoiko

お世話になります。
演習問題5.11の解答部分の7行目ですが、右辺は2C-2E(W*)であるように思います。
ご確認くださいませ。