※上記の広告は60日以上更新のないWIKIに表示されています。更新することで広告が下部へ移動します。

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

  • 今までの固定された基底関数による回帰およびクラス分け問題は、次元の呪いによってその実用性は限定されている。基底関数をパラメータ化することを許容し、それらのパラメータを学習することによってその問題点を克服したのがフィードフォワード型ニューラルネットワーク(feed-forward neural network)、または多層パーセプトロン(multilayer perceptron)。他には複数の基底関数のセットを選択するサポートベクトルマシン(support vector machine)、関連ベクトルマシン(relevance vector machine)などの方法もある。
  • ニューラルネットワークの利点は、多くの場合その結果が非常に簡単であること。その代償として、関連ベクトルマシン同様、ネットワーク学習の基礎をなす尤度関数はモデルパラメータの凸関数ではない。

フィードフォワード型ニューラルネットワーク

  • 2層(3層と呼ぶこともある)の場合の出力は
   y_k({\bf x},{\bf w}) = \sigma\left(\sum_{j=1}^{M}w_{kj}^{(2)}h\left(\sum_{i=1}^{D}w_{ji}^{(1)}x_i + w_{j0}^{(1)}\right) + w_{k0}^{(2)}\right)
h\sigmaは活性化関数

  • 中間ユニットがtanh活性化関数を持つ場合、tanhは奇関数だからある点の符号を反転させた対称な点を有するため、2つの異なる重みベクトルおよびバイアスの符号の一部を反転させることにより同一の入力から出力への関数を作ることができる。中間ユニットがM個ある場合には、一つの重みベクトルは2^M個の存在する等価な重みベクトルのうちの一つに過ぎないことになる(符号反転による対称性)。さらに、中間ユニット間の重みベクトルおよびバイアスを交換することによって等価な入力から出力への関数を作ることができる。すなわち、M個の中間ユニットについて、M!個の等価な重みベクトルのセットが存在することになる(交換による対称性)。結局、一つの重みベクトルは、等価なM!2^M個の重みベクトルの一つに過ぎないことになる。この対称性は活性化関数がtanhでない場合にも当てはまる。

ネットワーク学習(Network Training)

  • ニューラルネットワークでは、問題に応じてその出力ユニットの活性化関数および誤差関数が選択される。
問題の種類   出力ユニット活性化関数 誤差関数
回帰   線形 二乗和
2クラス識別   ロジステッィク・シグモイド クロスエントロピー
多クラス識別   ソフトマックス 多クラスクロスエントロピー

  • それぞれ適切な誤差関数を最小化する重みベクトル{\bf w}を求めることになるが、E({\bf w}){\bf w}の平滑な連続関数だからそれが最小となる点においてその傾きは0に等しくなる。この点を停留点といい、それをより細かく分類すると、極小点、極大点、鞍点の3つに分かれる。誤差関数は通常、重みベクトルおよびバイアスの高次非線形関数であるから、停留点は複数存在する。すでに見たように、重み空間上の一つの重みベクトルは複数の等価なM!2^M個の重みベクトルのうちに一つに過ぎないうえに、非等価な最小点も複数存在する。ニューラルネットワークの実装においては大域的最小値(global minimum)を求める必要はなく、局所的最小値(local minimum)の幾つかを比較することで足りる。
  • E({\bf w}) = 0の解析解を求めることは出来ないので反復的手法で数値解を求めることになるが、その際に傾き情報(gradient information)を利用することが多い。

局所的二次近似(local quadratic approximation)

  • 誤差関数E({\bf w})の点\hat{{\bf w}}における二次テイラー展開
   E({\bf w}) \simeq E(\hat{{\bf w}}) + \left({\bf w} - \hat{{\bf w}}\right)^{\rm T}{\bf b} + \frac{1}{2}\left({\bf w} - \hat{{\bf w}}\right)^{\rm T}{\bf H}\left({\bf w} - \hat{{\bf w}}\right)\hspace{2em}\left(5.28\right)
ただし、{\bf b}は点\hat{{\bf w}}における傾き、{\bf H}\hat{{\bf w}}におけるヘッセ行列。点\hat{{\bf w}}が誤差関数の一つの極小値を与えるとき、\hat{{\bf w}}において\nabla E = 0より、上の近似式の一次項が消える。さらに{\bf H}の固有方程式
   {\bf H}{\bf u}_i = \lambda_i{\bf u}_i
({\bf u}_iは正規直交)より
   \left({\bf w} - \hat{{\bf w}}\right) = \sum_{i}a_i{\bf u}_i
とおく(これは原点を点\hat{{\bf w}}に移し、座標軸を固有ベクトルの方向に回転させることに等しい)と、(5.28)は
   E({\bf w}) = E(\hat{{\bf w}}) + \frac{1}{2}\sum_{i}\lambda_i\alpha_i^2
と書け、これは中心を\hat{{\bf w}}とし、その軸が{\bf H}の固有ベクトルに平行な楕円の形となる。
  • また、停留点\hat{{\bf w}}におけるヘッセ行列{\bf H}が正定値ならば誤差関数はその近傍において凸だから\hat{{\bf w}}は極小値。任意のベクトル{\bf v}が正規直交固有ベクトル{\bf u}_iの線形結合として表されるから、
   {\bf v}^{\rm T}{\bf H}{\bf v} = \sum_{i}c_i^2\lambda_i\hspace{2em}\left({\bf v} = \sum_{i}c_i{\bf u}_i\right)
と書ける。従って{\bf H}が正定値であるための必要十分条件は、{\bf H}のすべての固有値が正であること。

傾き情報の利用

  • (5.28)の誤差平面は{\bf b}および{\bf H}によって決定されるから、重み空間の次元をWとすると含まれる可変パラメータの数はW(W + 3)/2となる。したがって(5.28)における最小値探索アルゴリズムは、Wの増加に対してO(W^2)の関数評価とO(W)のステップの増加を伴い、全体としてO(W^3)の計算量増加を伴う。これに対して傾き情報を利用した場合には\nabla Eの評価はO(W)オーダでしか増加しないため、全体としてO(W^2)の計算量増加で済む。

最急降下法による最適化

  • 最急降下法(gradient descent optimization)は、
   {\bf w}^{(\tau + 1)} = {\bf w}^{(\tau)} - \eta\nabla E({\bf w}^{(\tau)})
によって負の傾きの方向に向かって反復的に重み更新を繰り返して最適な誤差関数の最小値を求める。\etaは正数で学習レート(learning rate)と呼ばれる。この更新は、毎回学習データ全体についてなされる必要がある。このような手法を一括学習(batch method)という。最急降下法よりもより優れた手法として、共役勾配法(conjugate gradient method)や擬ニュートン法(quasi-Newton method)などがあり、これらの手法による場合には、誤差関数は大域的最小値に達するまで更新ごとに必ず減少し続ける。
  • 逐次バージョンとして逐次最急降下法(sequential gradient descent)あるいは確率的最急降下法(stochastic gradient descent)がある。バッチ(一括)的手法と逐次(オンライン)的手法との折衷もある。逐次的手法の利点として、データ量が増えても毎回の計算量が増えない点があるが、その一方で逐次的手法では極小点を見逃してしまう可能性がある。

誤差逆伝播(error backpropagation)

  • 傾き情報を利用する誤差関数最適化の各ステップにおいては、重みを更新する前にまず傾きの更新を行う必要があり、誤差逆伝播法はこの傾き更新のための手法。
  • フィードフォワード型ニューラルネットワークにおいて、j番目のユニットが計算する入力の重み付き和を
   a_j = \sum_{i}w_{ji}z_j
(バイアス項は省略)とすると、これがこのユニットの活性化関数によって
   z_j = h(a_j)
として出力される。これらがニューラルネットワークにおいて交互に適用されていく過程を順伝播(forward propagation)という。
  • 誤差逆伝播法の手順
1. 入力ベクトル{\bf x}_nをネットワークに対して適用し、順伝播を行い全てのユニットの出力を得る。
2. 全ての出力ユニットにつき\delta_k = y_k - t_kを評価する。
3. \delta_j = h'(a_j)\sum_{k}w_{kj}\delta_kにより各ユニットの\delta_jを逆伝播させる。
4. \frac{\partial E_n}{\partial_{w_{ji}}} = \delta_j z_jにより最終的な傾き情報を得る。

逆伝播の効率

  • 逆伝播の計算量は重みベクトルの次元をWとすると最善でO(W)となるが、微分を求めるのに中心差分法(central differences method)を用いた場合にはO(W^2)必要となる。それでも中心差分法による計算は、逆伝播法の実装において重要な検証法で不可欠。従って、計算は効率を理由に逆伝播法によって行うがその結果は中心差分法によって得られた数値と比較検証されなければならない。


  • 逆伝播法は、誤差関数の重み以外の変数についての微分(例えばヤコビ行列)や二階偏微係数(ヘッセ行列)を計算するのにも利用できる。ヤコビ行列はネットワークが複数のモジュールから成る場合の傾き情報を計算するために利用できる。ヘッセ行列は以下のような点で重要。
1. ニューラルネットワーク学習に使用される幾つかの非線形最適化アルゴリズムは、誤差平面のsecond-order propertiesを考慮するが、それはヘッセ行列によって制御される。
2. ヘッセ行列は学習データの小さな変化に追随して速く再学習を行う手法の基礎となる。
3. ヘッセ行列の逆行列は、ネットワークの'剪定'アルゴリズムの一部として、最も重要性の小さい重みを特定するために利用されている。
4. ヘッセ行列はベイジアン・ニューラルネットワークにおけるラプラス近似において中心的役割を果たす。
  • 対角近似によってヘッセ行列の逆行列を求めるのを容易にすることも可能だが、実際にはヘッセ行列は対角行列に近くないことが多い。

外積近似

  • ニューラルネットワークで回帰問題を解く場合、二乗和誤差関数(1変数)
   E = \sum_{n=1}^{N}\left(y_n -t_n\right)^2
を前提にすれば、ヘッセ行列は(ヘッセ行列のチェーンルールを使って)
   {\bf H} = \nabla\nabla E = \frac{\partial y}{\partial w}\frac{\partial^2 E}{\partial y\partial y^{\rm T}}\left(\frac{\partial y}{\partial w}\right)^{\rm T} + \frac{\partial E}{\partial y}\frac{\partial^2 y}{\partial w \partial w^{\rm T}} = \sum_{n=1}^{N}\nabla y_n(\nabla y_n)^{\rm T} + \sum_{n=1}^{N}\left(y_n - t_n\right)\nabla\nabla y_n
誤差二乗和を最小化する最適な関数は目標データの条件付平均となる(§1.5.5)から、その場合上式第二項の(y_n - t_n)の平均は0になる。従って、n個の学習データについて和をとった場合、その値が二階偏微分\nabla\nabla y_nと無相関という前提の下で、第二項を無視してよい。すると回帰問題では出力ユニットの活性化関数は恒等変換だから
   {\bf H} \simeq \sum_{n=1}^{N}{\bf b}_n{\bf b}_n^{\rm T}\hspace{2em}\left({\bf b}_n \equiv \nabla a_n = \nabla y_n\right)
と近似することができる。これをレーベンバーグ-マルカート近似(Levenberg-Marquardt approximation)といい、これによるとヘッセ行列の要素はO(W^2)ステップで計算することができる。
  • ただしこの手法は適切に訓練済みのネットワークに対してしか使えないこと、および、一般の場合には第二項は無視しえないことに注意する必要がある。
  • この近似法を用いてヘッセ行列の逆行列を逐次的に求めることが出来る。準ニュートン非線形最適化アルゴリズムのように、ネットワーク学習中に同時にヘッセ行列の近似を伴うものもある。
  • 二階の偏微係数も一階同様に有限差分法(O(W^3))、中心差分法(O(W^2))で求めることができる。
  • ヘッセ行列そのものを直接求めることもむろん可能。
  • ヘッセ行列{\bf H}ではなくベクトルとの積{\bf v}^{\rm T}{\bf H}が求まればよい場合にはO(W)ステップでこれを直接求める方法がある。

5.5 ニューラルネットワークの汎化

  • ニューラルネットワークの入力および出力ユニットの個数は概してデータの次元によって決定されるが、中間ユニットの個数Mは任意の可変パラメータだが、汎化誤差はMの単純な関数とはならない。Mを決定する一つの方法は、評価データによるテスト結果をプロットしてそれにより最適なMを選択すること。
  • 他の方法として、多項式曲線近似(第一章)でも利用したペナルティ項を追加する方法が考えられるが、ニューラルネットワークによって平行移動および拡大縮小変換を受ける場合にも不変な正則化項を使う必要があり、その場合は事前分布が変則(improper)となり、ベイズ的手法においてはエビデンスが0となるために正規化係数の選択やモデル間比較に困難を生ずることになる。そのため、それ自身ハイパーパラメータを有するバイアス毎に事前分布を用意することが一般的。
  • ほかにも早期中止(early stopping)の手法がある。非線形ネットワークの学習はある学習データに対して定義された誤差関数を反復的に減少させてゆく過程といえ、ネットワーク学習に使用される共役勾配法のような多くの最適化アルゴリズムは反復インデックスの非増加関数となる。しかし、評価データに対する汎化誤差についてはしばしば、当初は減少するものの過学習に陥るや増加に転じることが多い。したがって、評価データに対する汎化誤差が最小となる時点で反復を中止すれば最適な汎化能力を有するネットワークが得られる。二乗和誤差の場合、これは単純な重み減衰項を使用した場合と同様の結果となる。

不変性(invariance)

  • 多くの場合、パターン認識においては不変(invariant)であること、すなわち入力変数に対する単一ないし複数の変換(例えば平行移動や拡大縮小)が行われても予測が変化しないことが要求される。むろんニューラルネットワークのような可変モデルは例えば平行移動を十分多くの学習パターンによってそれを吸収することができるようにはなるものの無駄が多いため、特別の対処が求められるがその方法はおおまかには次の4つのカテゴリーに分類される。
 1.一つの学習パターンを平行移動等の変換を施した複数の派生パターン集合へ増加させて使用する。
 2.入力に対して平行移動等が加えられた場合にモデルの出力が変更されるとこれを否定的に評価する正則化項を誤差関数に加える。(タンジェント伝播を参照)
 3.平行移動等の変換によって変化しない特徴抽出を行い、モデルもそれを前提として動作するように設計する。
 4.ニューラルネットワーク(関連ベクトルマシン等の場合はカーネル関数の定義)に不変性を直接組み込む。(局所的受容野と重み共有の利用)
1.の手法は比較的容易でしかもモデルの汎化能力を大きく向上させる効果が見込めるものの、計算量が増加する。2.は学習パターンに変更を加えない利点がある。3.は学習データの範囲外の値に対する外挿を正しく行えるという利点を有するが、識別に必要な情報を損なわずに不変な特徴抽出を行うことは困難な場合がある。

接線伝播(tangent propagation)

  • 入力{\bf x}_nに対してパラメータ\xiによって制御される変換を行った結果を\{ {\bf s}\left({\bf x}_n,\xi\right) \}とする。ただし{\bf s}\left({\bf x},0\right)。すると{\bf x}_nにおける接線ベクトルは
   {\bf \tau}_n = \left.\frac{\partial{\bf s}\left({\bf x}_n,\xi\right)}{\partial\xi}\right|_{\xi=0}
となる。変換後の出力を\xiで微分すると、
   \left.\frac{\partial y_k}{\partial\xi}\right|_{\xi=0} = \left.\sum_{i=1}^{D}\frac{\partial y_k}{\partial x_i}\frac{\partial x_i}{\partial\xi}\right|_{\xi=0} = \sum_{i=0}^{D}J_{ki}{\bf \tau}_i
ただしJ_{ki}はヤコビ行列の(k,i)要素。これを用いてデータ点の近傍で局所的不変性を促すように標準的な誤差関数を変更することができる。標準的な誤差関数をEとすると、修正された誤差関数は
   \tilda{E} = E + \lambda\Omega\hspace{2em}\left(\Omega = \frac{1}{2}\sum_{n}\sum_{n}\left(\left.\frac{\partial y_{nk}}{\partial\xi}\right|_{\xi=0}\right)^2 = \frac{1}{2}\sum_{n}\sum_{n}\left(\sum_{i=1}^{D}J_{nki}\tau_{ni}\right)^2\right)
ただし\Omegaを正則化関数とし、\lambdaはその正規化係数とする。ネットワークの識別関数が各パターンベクトルの近傍における変換について不変であるとき正則化関数\Omegaは0となり、\lambdaは学習データに対する近似と不変性学習との配分を決定する。
  • 実用的実装においては接線ベクトル{\bf \tau}_nは有限差分法を用いて近似することが可能。
  • 正則化関数\Omegaはヤコビ行列{\bf J}を通じてネットワークの重みに依存しており、微分係数は逆伝播法を用いて計算できることは既述のとおり。
  • 複数の変換が加えられる場合、各変換について不変な識別関数はそれらの合成変換についても局所的に不変であることが知られている。
  • 類似の手法として接線距離(tangent distance)は、最近傍判別器のような距離に基づいた手法に対して適用される。

畳み込みネットワーク

  • 畳み込みニューラルネットワーク(convolutional neural network)は、局所的特徴を抽出することによって不変性をネットワーク自体に組み込んだもの。
  • 例えば手書きの数字を識別する例では、まずイメージを複数の領域(局所受容野(local receptive fields))に分割し、これを次の畳み込みレイヤーに射影して特徴平面(feature map)を生成する。特徴平面においては各受容野についての重みは等しく設定される(重み共有weight sharing)。さらにサブサンプリングレイヤーにおいて畳み込みレイヤーのデータが射影される。これによって受容野内における小さな変動に関してネットワークは不変性を持つことが可能になる。畳み込みレイヤーおよびサブサンプリングレイヤーは通常、複数生成される。

ソフト重み共有

  • 重み共有の制約を緩めて、全ての重み成分が一致することを要求するのではなく、重み成分のグループたちが似通った値を持つことを要求するにとどめる方法もあり、これをソフト重み共有(soft weight sharing)という。(詳細略)

5.6 混合密度ネットワーク

  • 教師付き学習においてモデル化されるべき条件付確率分布p({\bf t}|{\bf x})は、単純な回帰問題においては正規分布が選択されるが、パターン学習の実例においては分布は非正規分布であることが多い。例えば逆問題(inverse problem)においては分布は複峰的であり、正規分布仮定は有効な結果をもたらさない。
  • ロボットアームの運動を例にとると、順問題(forward problem)は所与の屈折角度に対応する手先効果器の位置を計算することを含む。しかしながら実際の例では、我々はむしろ所与の位置に手先効果器を持ってくるための適切な屈折角度を知りたい(逆問題(inverse problem))。ロボットアームの運動は幾何方程式によって決定されるから分布が複峰的であることは明らかだが、機械学習の多くの問題においてはそれは自明ではない。
  • 逆問題のような複峰的分布に対しても適切な学習を可能にするのが混合密度ネットワーク(mixture density network)。

5.7 ベイジアン・ニューラルネットワーク

  • ベイジアン的アプローチによる場合、ネットワーク関数はパラメータの値に対して非線形依存なために、もはや線形回帰問題のときのような閉形式の厳密解は望めない。
  • そこでまず、事後分布をラプラス近似すなわち最頻値を同じくする正規分布によって近似したうえ、この正規分布の共分散が非常に小さくネットワーク関数が事後確率が顕著に0でないようなパラメータ空間の領域においてパラメータの線形関数に近くなるものとみなす。