trsing’s diary

勉強、読んだ本、仕事で調べたこととかのメモ。

PRML 5~5.1.1

第五章 ニューラルネットワーク

・固定された基底関数の線形和で表されるモデルだと、次元の呪いのため実際的な応用可能性は限られる
・大規模な問題に適用するためには、基底関数をデータに適応させる必要がある

基底関数群を定義し、その一部を訓練中に選ぶアプローチ
SVM
メリット:最適化が比較的簡単。
デメリット:含まれる基底関数は一般には比較的大きい場合が多い。訓練集合のサイズが増加すると増加する。(訓練データ点よりはるかに少ない)。
・RVM
メリット:SVMより基底関数が少ないモデルになることが多い。確率を出力することができる
デメリット:非凸最適化問題を解く必要あり。

事前に基底関数の数を固定し、それらを適用型にしておくアプローチ
フィードフォワードニューラルネットワーク(多層パーセプトロン)
メリット:SVMに比べてコンパクト。そのため評価もより迅速。
デメリット:尤度関数がモデルパラメータの凸関数ならない。

・5章では多層パーセプトロンに限定する

5章の構成
1.ネットワークモデルの関数の形を考える。基底関数をどのようにパラメータ表示するか?
2.ネットワークパラメータを決定する問題を考える。非線形最適化問題をどのように解くか?
3.対数尤度関数のネットワークパラメータに関する微分の評価を得る。誤差逆伝播法を用いる。
4.逆伝播の枠組みがどのようにほかの微分の評価に拡張できるかを示す。ヤコビ行列やヘッセ行列。
5.ニューラルネットワーク正則化へのさまざまなアプローチとそれらの互いの関係を考える。
6.その他のニューラルネットワークモデルへの拡張を考える。混合密度ネットワーク。
7.ベイズ理論の視点からニューラルネットワークについて考える。

5.1 フィードフォワードネットワーク

5章の目標:線形モデル(5.1)を拡張すること。 基底関数\phi_{j}(x)をパラメータ依存とし、これらのパラメータを訓練中に係数{w_{j}}と共に調整することにより拡張する。

基本的なニューラルネットワークモデル
1.入力変数の線形和(活性a_{j})を作る。(5.2)
2.a_{j}微分可能な非線形活性化関数で変換してz_{j}(基底関数 \phi_{j}(x)の出力に相当)を作る。(5.3)
3.z_{j}の線形和を計算して出力ユニット活性a_{k}を得る。(5.4)
4.a_{k}を活性化関数を用いて変換し、ネットワークの出力y_{k}を得る。

使用する活性化関数はデータの性質と目標変数の分布に依存する。
標準的な回帰問題の場合:恒等写像を用いてy_{k}=a_{k}
2クラス分類問題の場合:ロジスティックシグモイド関数を用いて[tex:y_{k}=\sigma(a_{k})。
多クラス分類問題の場合:ソフトマックス活性化関数を用いる。

ニューラルネットワークとは可変パラメータベクトルwで制御される、入力変数の集合{x_{i}}から出力変数の集合{y_{k}}への非線形関数である。

ニューラルネットワークによる関数はネットワークパラメータに関して微分可能であり、この性質はネットワークの訓練において中心的な役割を果たす。

図5.1で示す構造が良く使われるが、層を追加する、層を飛び越えた結合をするなど拡張が可能(図5.2)。ただし、閉じた有向閉路があってはならない。出力が入力の決定論的な関数であることを保証するため。

ニューラルネットワークにおいて重要な問題は、与えられた訓練データ集合に対して適切なパラメータの値をどのように見つけるかである。

5.1.1 重み空間対称性

同じ結果を得られる重みベクトルwが複数存在する。

M個の隠れユニット、活性化関数tanh、各層間は完全結合している2層のネットワークの場合を考える。
活性化関数が奇関数であるため、重みとバイアスの符号を反転させた場合、出る重みの符号を反転させることで補償できる。反転させる、反転させないをM個のユニットに関してなので2^{M}通り。
隠れユニット内で順番を変更してもネットワークの入出力関数は変化しないが、重みベクトルとしては異なったものになる。 並ぶ順序なのでM!通り。
全部でM!2^{M}個の等価な重みベクトルがある。

多くの場合、このような対称性は重要ではないが、考慮しなければならない状況も存在する(5.7節)