5.4 ヘッセ行列
目的:この節ではヘッセ行列の評価について記述する。
ニューラルコンピューティングにおいてヘッセ行列は重要な役割を持つ。役割は本文にあるとおり。
ヘッセ行列の各要素は誤差の重みに関する2階微分(5.78)。 すべての重みパラメータとバイアスパラメータを一つのベクトルの要素と考えるとをで2回微分したものがヘッセ行列の成分をなすため便利。
逆伝播テクニックの拡張によりヘッセ行列を直接計算できる。どれだけ効率的に評価できるのかが重要。
5.4.1 対角近似
目的:逆行列を簡単に求めるために対角行列で近似する。
理由:ヘッセ行列の応用のいくつかにおいて、ヘッセ行列の逆行列が必要となる。
誤差関数について考察する。 のヘッセ行列の対角要素は(5.79)。 右辺の2階微分を求めると(5.80)。2階微分の非対角項を無視すると(5.81)。 (5.81)の計算量は。 (5.80)の計算量は
注意点:実際のヘッセ行列は非対角であることが多い(無視した項の影響が大きい)ため、計算の利便性のためだけにこの対角近似を使うのは注意
(5.79)について $$ \frac{\partial^{2} E_{n}}{\partial w_{ji}^{2}}= \frac{\partial }{\partial w_{ji}} \left(\frac{\partial E_{n}}{\partial a_{j}} \frac{\partial a_{j}}{\partial w_{ji}}\right)= \frac{\partial }{\partial a_{j}} \left(\frac{\partial E_{n}}{\partial a_{j}} z_{i}\right)\frac{\partial a_{j}}{\partial w_{ji}}\\= \frac{\partial }{\partial a_{j}} \left(\frac{\partial E_{n}}{\partial a_{j}} z_{i}\right) z_{i}= \frac{\partial^{2} E_{n}}{\partial a_{j}^{2}} z_{i}^{2} $$
(5.80)について $$ \frac{\partial^{2} E_{n}}{\partial a_{j}^{2}}= \frac{\partial }{\partial a_{j}} \left( h'(a_{j})\sum_{k}w_{kj}\frac{\partial E_{n}}{\partial a_{k}} \right)= h''(a_{j})\sum_{k}w_{kj}\frac{\partial E_{n}}{\partial a_{k}}+ h'(a_{j})\sum_{k}w_{kj}\frac{\partial}{\partial a_{j}}\frac{\partial E_{n}}{\partial a_{k}}\\= h''(a_{j})\sum_{k}w_{kj}\frac{\partial E_{n}}{\partial a_{k}}+ h'(a_{j})\sum_{k}w_{kj}\frac{\partial}{\partial a_{k}}\frac{\partial E_{n}}{\partial a_{j}}\\= h''(a_{j})\sum_{k}w_{kj}\frac{\partial E_{n}}{\partial a_{k}}+ h'(a_{j})\sum_{k}w_{kj}\frac{\partial}{\partial a_{k}} h'(a_{j})\sum_{k'}w_{k'j}\frac{\partial E_{n}}{\partial a_{k'}}\\= h''(a_{j})\sum_{k}w_{kj}\frac{\partial E_{n}}{\partial a_{k}}+ h'(a_{j})^{2}\sum_{k}\sum_{k'}w_{kj}w_{k'j}\frac{\partial^{2} E_{n}}{\partial a_{k} \partial a_{k'}} $$
5.4.2 外積による近似
二乗和誤差関数(5.82)を用いた場合、ヘッセ行列を(5.83)と書くことができる。適切に訓練されたネットワークであれば第2項を無視することができ、(5.84)と近似できる(Levenberg-Marquardt近似あるいは外積による近似)。の計算量はで、行列の各要素は。
注意点:通常は第2項を無視できない。
出力ユニットの活性化関数にロジスティックシグモイド関数、誤差関数に交差エントロピー誤差関数を用いた場合、相当する近似は(5.85)。
(5.83)について