ニューラルネットの収束性

ニューラルネットの収束性
村田研究室 4年
1G06Q117-5 園田 翔
研究の動機
 脳に興味がある。
 脳のモデルとしてのニューラルネットワークを
触ることで,脳の理解に繋げたい。
 まずはフィードフォワード型について研究する。
ニューラルネットワークとは
フィードフォワード型
あるいは3層パーセプトロン
シグモイド
ニューラルネットワークの重要な性質
 万能関数近似器
“任意の” 関数を “近似” できる。
 (Cybenko 89)
 (村田 96)
問題設定
 [0,1]上の実数値関数をフィードフォワード型ニュー
ラルネットワークを用いて回帰する。
1. 学習が収束する条件を求める。
a. 学習係数はどう選ぶのか?
b. 初期値はどう選ぶのか?
2. 必要な中間層の素子数を見積もる。
 情報量規準,正則化,既約性,OBS
3. 回帰させる関数はどう選ぶか?
 理論的には絶対可積分なら大丈夫
 現在は sin(nπx) と u(x-0.5) を試している。
 データ点はいくつ必要か?
前回からの課題
 C による実装
 GSL を使った。
 Rで20分かかっていた計算が1分前後になった。
 非線形最適化について勉強する。
 最急降下法,ニュートン法など。後述
 学習係数の選び方は計算法によって変わる。
 オンラインとバッチの理論的な違いに気が付いた。
 初期値の選び方
 「(村田 96) にヒントがある。」と指摘されていたのを探す。
 Optimal Brain Surgery
 学習後のニューラルネットの中間層を枝刈りする方法。
実装結果(その1)
中間層素子数5,データ点10点,学習係数0.1
実装結果(その2)
中間層素子数5,データ点10点,学習係数0.1
実装結果(その3)
中間層素子数5,データ点10点,学習係数0.1,σ0.05
実装結果(その4)
中間層素子数5,データ点10点,学習係数0.1,σ0.5
実装結果(その5)
中間層素子数5,データ点10点,学習係数0.1
実装結果(その6)
中間層素子数5,データ点20点,学習係数0.1
実装結果(その7)
中間層素子数10,データ点30点,学習係数0.01
ニューラルネットによる回帰
 データ点の組
を用意する。
 適当な誤差関数を導入し,誤差最小化によっ
てパラメータを決定する。
 二乗和誤差関数
 クロスエントロピー誤差関数(クラス判別の場合)
数値計算による誤差最小化(その1)
 最急降下法




勾配(1階微分)
のみを使う。
1次収束(Eが2次近似できるとき)
バッチ処理のとき大域収束
オンラインのときηを減衰させれば収束。
 Newton法




Hesse行列(2階微分)
まで使う。
収束点の近傍で2次収束
大域収束はしない。
特に,収束するためにはHesse行列の正定値性が必要。
数値計算による誤差最小化(その2)
 修正Newton法
 最急降下法とNewton法を折衷した方法。
 大域収束かつ2次収束。
 準Newton法
 Hを近似する修正Newton法。
 Rank1訂正 正定値性が保存されない
 Rank2訂正 DFP,BFGS,BPQ など
 BFGS は超1次収束
ηはどう選ぶのか?
 「直線探索」すればよい。
 ステップ毎にE(w)を最小化するηを使う。
 便宜的に Armijoの条件 などが用いられる。
 次回までの問題
 オンラインだと問題はどうなるか
次回への課題
 今回調べた計算法を実装,比較する。
 発散した学習が収束する条件を求め,分析す
る。
 オンライン学習について調べる。
 確率近似法,Learning of the learning rule,
ANGD
 中間層の素子数の勉強にも着手する。
参考文献