ニューラルネットの収束性 村田研究室 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 中間層の素子数の勉強にも着手する。 参考文献
© Copyright 2024 ExpyDoc