PRML上巻_5章 ニューラルネットワーク(Neural Network) 読解メモ #5
#4では4章の線形識別モデルについて取り扱いました。
#5では5章の読解メモをまとめていければと思います。(7~8割の理解を目標においた読解にあたってのメモなので、要旨を掴みたい方向けです)
5章のニューラルネットワークは近年DeepLearningの台頭で多くの論文や書籍が出るなどで注目のアルゴリズムです。
以下目次になります。
1. 5章の内容に関して概要
2. 詳細
2.1 フィードフォワードネットワーク関数(5.1)
2.2 ネットワーク訓練(5.2)
2.3 誤差逆伝播(5.3)
2.4 ヘッセ行列(5.4)
2.5 ニューラルネットワークの正則化(5.5)
2.6 混合密度ネットワーク(5.6)
2.7 ベイズニューラルネットワーク(5.7)
3. まとめ&所感
1. 5章の内容に関して概要
5章では統計的パターン認識のための効率的なモデルとしてのニューラルネットワークに焦点があてられています。PRMLが執筆された2007年頃のタイミングで実用面で最も高く評価されていた多重パーセプトロン(multilayer perceptron)に話を限定して説明が行われています。
2. 詳細
5.1ではニューラルネットワークの推論について、5.2では学習について言及されています。5.3では最尤法の枠組みでネットワークパラメータの決定を行うにあたって、誤差逆伝播(error backpropagation)法により効率的に求められることについても説明されています。5.3までは近年のDeepLearningブームにより色々と解説資料が出ているので、色々と確認するのが良いのではと思います。
5.4は5.3の逆伝播を2階微分に適用しヘッセ行列の計算について、5.5では過学習を防ぐためにニューラルネットワークの正則化について扱われています。5.6では、多峰性を持つ問題に適用するにあたって混合密度ネットワークについて、5.7ではベイズニューラルネットワークについて説明されています。
2.1 フィードフォワードネットワーク関数(5.1)
近年DeepLearningの発展から基本事項の資料はあちこちに散見されるので、キーワードとその説明にとどめたいと思います。(『ゼロから作るDeepLearning』などがわかりやすいので事前知識に自信がなければそちらを先に読むのもありだと思います。初心者向けの本なので、概要掴んでキーワードを抑える目的で読み流せば十分だと思います。)
◆ キーワード整理
・順伝播(forward propagation)
-> 言葉の意味を解釈するとわかりやすいです。forwardは前にという意味なので、推論ということを示唆しています。propagationは伝播ということでネットワークということを示唆しています。・多重パーセプトロン(MLP; MultiLayer Perceptron)
-> 4.1.7のパーセプトロンを多重にしたものです。ニューラルネットワークのベースとなる考え方です。・フィードフォワード(feed-forward)構造
-> フィードフォワード(feed forward)構造は閉じた有向閉路がないネットワーク構造のことを言います。
ちなみにこれはグラフ理論におけるおける有向非巡回グラフ(DAG; Directed Acyclic Graph)の構造を示唆しています。
また、フィードフォワード構造を用いる理由としては出力が入力の決定論的関数であるということを保証しなければならないためです。
2.2 ネットワーク訓練(5.2)
5.1に同じく基礎事項なのでキーワードとその説明にとどめたいと思います。
・二乗和誤差(sum-of-squares error)
-> ネットワークのパラメータの値を決定するにあたっての基準となる、誤差関数の定義の仕方の一つです。理論的な良し悪しよりもベーシックな考え方なので言及されています。工学系の理論は厳密というよりは何をもって近似するかという考え方なので、何が正しいかよりも概ねの正しさとシンプルに理解できるかのトレードオフで話が進んでいきます。そういう意味で二乗和誤差というのは、概ね正しいかつ仕組みがシンプルなので、大体の解説では真っ先に出てくるケースが多いです。(直感的に理解しやすいアルゴリズムは精度が多少劣ろうとも重要なポジションを占めます)・交差エントロピー誤差関数(cross-entropy error function)
-> 二乗和誤差と同じく誤差関数の定義の仕方の一つです。ニューラルネットワークでは二乗和誤差よりも交差エントロピー誤差の方がよく用いられます。入力が与えられた際の条件付き分布を(5.20)のように置くことで、最尤法を用いて数式が導出される過程はなかなかこのようにしっかり説明してくれる本などは少ないため、この周辺だけは読んでおくのもありだと思います。・ソフトマックス関数(softmax function)
-> 4.2でも出てきており、原理的な仕組みに関してはそちらの方が詳しいです。ニューラルネットワークの文脈においては出力層で出力の和を1にするために用いられます。・大域的最小点(global minimum)/局所的極小点(local minimum)
-> 最適化問題(最小値/最大値問題)では重要となる考え方です。・勾配降下法(gradient descent)
-> 最適化問題(最小値/最大値問題)を近似的に解くにあたって最もベースとなる考え方です。凸関数の最適化問題ではだいたいこの考え方がベースになリマス。近年、DeepLearningの発展に際し、momentumやAdamなどの最適化手法が色々と提唱されていますが、ベースの考え方自体は勾配降下法が元になっています。最急降下法(steepest descent method)とも呼ばれるので、用語で混乱しないように注意が必要です。・逐次的勾配降下法(sequential gradient descent)/確率的勾配降下法(SGD; stochastic gradient descent)
-> 通常の勾配降下法が一度に全てのデータを使用して更新を行うのに対し、SGD(確率的勾配降下法)は一度に一つのデータ点に対して更新を行います。また、一度に100~200程度のデータをミニバッチとして抽出し学習させるという手法もあり、近年のDeepLearning系の学習ではこちらが使用されています。
2.3 誤差逆伝播(5.3)
5.1、5.2に同じくこちらも基礎事項なのでキーワードとその説明にとどめたいと思います。
・誤差逆伝播(error backpropagation)
-> 微分の連鎖律を使って効率よくネットワークの学習を行う手法のことです。
2.4 ヘッセ行列(5.4)
逆伝播を用いて誤差の2階微分も評価できるので、このようにして計算したヘッセ行列を元に様々な考察が行われています。
2.5 ニューラルネットワークの正則化(5.5)
5.5ではニューラルネットワークにおいて過学習を防ぐにあたっての諸々についてまとめられています。
一番単純な正則化の手法としては、(5.112)で荷重減衰(weight decay)として言及されていますが、5.5.1では重みとバイアスを対等に扱うことで等価な解のはずなのに別の解を選んでしまう可能性について指摘されています。線形変換の下で普遍な正則化項としては(5.121)で表しています。
5.5.2では、早期終了(early stopping)について述べられており、過学習する前に学習を打ち切ることに対して言及がなされています。
5.5.3ではパターン認識の多くの応用例において、予測は入力変数がある変換を受けても変化しない、すなわち不変であることが求められるということから不変性(invariance)について議論されています。具体例としては画像データを考えた際に平行移動不変性(translation invariance)や尺度不変性(scale invariance)が成り立つことについて挙げられています。5.5.3ではモデルが不変性を持つために4つのアプローチをまとめてくれています。1が5.5.5の変換されたデータを用いた訓練、2が5.5.4の接線伝播法、3が5.5.6の畳み込みニューラルネットワークに繋がってきます。
2.6 混合密度ネットワーク(5.6)
5.6では回帰問題を解く際に、通常の回帰問題では順問題(forward problem)がベースとなっているので単峰性のガウス分布を仮定して問題ないが、分布が他峰性を持つ可能性のある逆問題(inverse problem)においては単峰性を仮定しては貧弱な予測しか得られない可能性があるとされています。
具体例として、ロボットアームの例や関数の逆関数を考えた際の問題などでこちらが解説されています。x->yが一意に定まる関数であればガウス分布を仮定できますが、一意に定まらない場合はガウス分布を仮定できません。
これに対し、(5.148)の混合密度ネットワーク(mixture density network)を仮定し、推論するパラメータに混合分布に関するパラメータも含めることで他峰性を前提にした問題にも適切なモデリングができるように解説されています。
2.7 ベイズニューラルネットワーク(5.7)
ラプラス近似を基盤として用いてベイズニューラルネットワークについて説明されています。
3. まとめ&所感
ニューラルネットワークをロジスティック回帰の拡張として、全体的にバランスよくまとめられているのではないかと思います。
2006年~2007年頃の本であり、畳み込みニューラルネットワーク(CNN; Convolutional Neural Network)を中心にした、近年のDeepLearningの発展に関しては取り扱われていないので、そちらについては別途キャッチアップするのが良いかと思います。