PRML Chapter 5
-
Upload
masahito-ohue -
Category
Documents
-
view
4.715 -
download
2
description
Transcript of PRML Chapter 5
パターン認識と機械学習第 5章 ニューラルネットワーク
D2 大上 雅史PRML輪講 2012/4/25
目次
4/25/2012
第 5 章 ニューラルネットワーク5.1 フィードフォワードネットワーク関数5.2 ネットワーク訓練5.3 誤差逆伝播
http://www2.edu.ipa.go.jp/gz/a-cg/a-800/a-810/a-811.jpg
ニューラルネットワーク
脳機能に見られる特性をシミュレーションによって表現することを目指した数学モデル
4/25/2012
http://www.lab.kochi-tech.ac.jp/future/1110/okasaka/neural.htm
線形モデルの復讐復習
例:多項式曲線フィッティング
4/25/2012
線形モデルの復習
一般形
• Áj(x) :基底関数• Á0(x) = 1, w0 はバイアス項
多項式曲線フィッティングでは
4/25/2012
回帰問題とクラス分類問題
回帰問題
クラス分類問題
• f( ) を非線形活性化関数という• f( ) の例:
4/25/2012
ニューラルネットワークの線形モデル
線形和の重み係数 w を訓練する基本的なニューラルネットワーク
4/25/2012
基本的なニューラルネットワーク
入力変数( x1,…, xD )の線形和(活性)をつくる
• (1) は 1 層目• wji : 重みパラメータ
• wj0 : バイアスパラメータ
• aj : 活性
非線形活性化関数にとおす
• h は微分可能であるとする4/25/2012
i の列 j の列 k の列
基本的なニューラルネットワーク
計算した z の線形和(出力ユニット活性)を求める
適当な活性化関数にとおす• だいたいシグモイド関数
4/25/2012
i の列 j の列 k の列
基本的なニューラルネットワーク
まとめ
x0=1 として,
4/25/2012
複雑なネットワーク ≠複雑ネットワーク
複雑なネットワークで,一般的な写像を表せる• フィードフォワード構造(有向閉路がない)に限る
4/25/2012
K: k への接続を持つ全てのユニット
ネットワーク訓練
ネットワークパラメータ w を決める• 決め方→二乗和誤差の最小化
定式化• 入力ベクトル • 目標ベクトル• 誤差関数
4/25/2012
ネットワーク訓練
ネットワーク出力の確率的解釈が大事回帰問題として,実数値目標変数 t を考える• t は平均が x に依存するガウス分布に従う
• 尤度関数
4/25/2012
復習:ガウス分布
4/25/2012
i.i.d. データ に対する対数尤度
ネットワーク訓練
誤差関数(負の対数尤度)
• ニューラルネットワークの研究では尤度最大化より誤差関数最小化の方が常套手段
• 誤差関数を最小化して最尤推定解を求める(尤度最大化と等価である)
4/25/2012
ネットワーク訓練w を求める→ E(w) の最小化
• y(xn,w) の非線形性により正確には局所解
wML が求まったら b は誤差関数最小化で求められる
• を b で微分して 0 と置く
4/25/2012
ネットワーク訓練
目標変数が複数( K 個)の場合( t→t )• 条件付き確率が独立,ノイズの分散が共通であると
仮定
• wML :尤度最大化→二乗和誤差関数の最小化
4/25/2012
証明
ネットワーク訓練• b は誤差関数最小化によって求められる
• K は目標変数の数
4/25/2012
ネットワーク訓練
2 クラス分類問題の場合• t=1 がクラス C1 , t=0 がクラス C2
• ロジスティックシグモイド関数を活性化関数とする
• 目標の条件付き分布(ベルヌーイ分布)
• 誤差関数(負の対数尤度)
4/25/2012
交差エントロピー誤差関数
ネットワーク訓練
K 個の異なる 2 クラス分類問題の場合• 活性化関数・・・ロジスティックシグモイド関数• K 個の出力を持つネットワーク
• 誤差関数(負の対数尤度)
4/25/2012
交差エントロピー誤差関数
ネットワーク訓練
標準的な K クラス分類問題の場合• 1-of-K 符号化法で表されるとする• ネットワーク出力は• 誤差関数(負の対数尤度)
• 出力ユニットの活性化関数はソフトマックス関数
4/25/2012
ネットワーク訓練
まとめ
4/25/2012
活性化関数 誤差関数
回帰問題 線形 二乗和
(独立な多数の)2 クラス分類問題
ロジスティックシグモイド
交差エントロピー
多クラス分類問題 ソフトマックス多クラス交差エントロ
ピー
2 クラス分類問題ロジスティックシグ
モイドor ソフトマックス
交差エントロピー
パラメータ最適化
E(w) の最小化問題
4/25/2012
局所二次近似
重み空間内の点 の周りでの E(w) の二次近似
• : 勾配
• : ヘッセ行列
の近くでの勾配の局所近似(二次近似式の微分)
4/25/2012
局所二次近似
極小点 w* の周りで考えると b=0
(ヘッセ行列の)固有値問題• 固有方程式• ヘッセ行列は実対称行列
→固有ベクトル u は完全正規直交系を成す( p.318 付録 C )
• を固有ベクトルの線形結合で表す
4/25/2012
局所二次近似
以上を用いて誤差関数を書き換える
4/25/2012
行列の正定値性
行列 A が正定値である⇔行列 A が正定値である⇔ A の全ての固有値が正
4/25/2012
証明
誤差関数の等高線
固有空間上の誤差関数の等高線は楕円となる
4/25/2012
誤差関数の等高線
固有空間上の誤差関数の等高線は楕円となる
4/25/2012
証明
局所二次近似
ヘッセ行列 H の での値が正定値 ⇔ は極小点である
4/25/2012
証明⇒
証明⇐
勾配情報の利用
誤差曲面は b と H で決定される
• b の独立なパラメータ数・・・ W 個 (W は w の次元 )
• H の独立なパラメータ数・・・ W(W+1)/2 個
• 極小点を求めるために必要な点の数 O(W2)• 極小点の評価に必要なステップ数 O(W)
の評価で W 個の情報が得られる• 勾配情報を用いれば
4/25/2012
勾配降下最適化(最急 /勾配降下法)
勾配降下法による重み最適化
• h :学習率パラメータ
全データによる訓練→バッチ訓練• 勾配降下法より良い方法がある
• 共役勾配法• 準ニュートン法
1 個ずつデータを使う訓練→オンライン訓練• 大規模データのときに便利
4/25/2012
確率的勾配降下法(オンライン版勾配降下法)
確率的勾配降下法の誤差関数
• :各データ点についての誤差
確率的勾配降下法の更新式
• h のスケジューリングが重要• 大域的最適解が得られるかも
• E の停留点は必ずしも Ei の停留点ではないから
4/25/2012
バックプロパゲーション
誤差逆伝播法(バックプロパゲーション)• 誤差関数の勾配を効率良く評価する方法
wikipedia より1. ネットワークの出力と与えられたサンプルの最適解を比較する.各出力ユニットについて誤差を計算する.
2. 個々のユニットの期待される出力値と重み,要求された出力と実際の出力の差(誤差)を計算する.
3. 各ユニットの重みを誤差が小さくなるよう調整する.4. より大きな重みで接続された前層のユニットに誤差の責任がある
と決める.5. そのユニットのさらに前層のユニットついて同様の処理を行う
4/25/2012
バックプロパゲーション伝言ゲームにおいて,最後の人から逆方向に「元々はどういう言葉だったの?」と伝言することで誤りを修正するアルゴリズム.(朱鷺の社より)
× 伝搬 ○伝播× でんぱん ○でんぱ
誤差関数微分の評価
単純な線形モデルで考える• 出力 yk が入力変数 xi の線形和
• 誤差関数
入力パターン n の誤差関数の重みに関する勾配
• 接続 i-j の出力側の誤差信号と入力側の変数の積の形
4/25/2012
※
誤差関数の偏微分の計算
計算(添字に注意, (n) に意味はないが補足的に)
4/25/2012
バックプロパゲーション
一般のフィードフォワードネットワークの場合• ユニットの出力
• 微分する(添字 n を省略)
• 正準連結関数を活性化関数に用いた出力ユニットでは
4/25/2012
:誤差
復習:正準連結関数
一般化線形モデル
• :活性化関数• :連結関数
正準連結関数• 条件付き確率分布を指数型分布族から選ぶ• 活性化関数を正準連結関数から選ぶ→ 誤差関数の微分が誤差 (yn-tn) と特徴ベクトル j の積になる
4/25/2012
バックプロパゲーション
隠れユニットの誤差
逆伝播公式
4/25/2012
バックプロパゲーション
まとめ(誤差逆伝播)
1. 入力ベクトル xn を入れ,全てのユニットの出力を求める
2. 全ての出力ユニットの誤差 dk を評価する
3. dk を逆伝播させて全ての隠れユニットの誤差 dj を得る
4. 必要な微分を評価する
4/25/2012
(順伝播)
バックプロパゲーション
補足• バッチ手法の場合 →全体の誤差関数の微分は全てのパターンの総和
• ユニットごとに活性化関数が違う場合 →特に変わらない (ユニットごとの h を用いて計算すれば良い)
4/25/2012
バックプロパゲーションの計算例
逆伝播手続きの単純な例• 2 層ネットワーク• 誤差関数:二乗和誤差関数
• 出力ユニットの活性化関数:線形
• 隠れユニットの活性化関数:シグモイド型
4/25/2012
tanh 関数の性質
定義
微分
4/25/2012
バックプロパゲーションの計算例
1. 全てのユニットの出力を求める
2. 出力ユニットの dk を計算する
4/25/2012
バックプロパゲーションの計算例
3. dk を逆伝播させて隠れユニットの誤差 dj を求める
4. 誤差関数の微分を得る
4/25/2012
バックプロパゲーションの効率
順伝播の計算量・・・• の計算量
• 結合が非常に疎である場合を除くと 重み数≫ユニット数
• 逆伝播も同様
4/25/2012
誤差関数の数値微分
数値微分(有限幅差分)の利用• 前進差分(前方差分)
• 中央差分(中心差分)• 誤差項が小さくなるが,前進差分の倍くらいの計算量が必要
数値微分は計算量が• 逆伝播公式の結果の正当性を数値微分で確認する,など
4/25/2012
数値微分の誤差の評価
前進差分• 誤差の評価
中央差分• 誤差の評価
4/25/2012
バックプロパゲーションの応用
ヤコビ行列の評価を逆伝播で計算する
モジュール型パターン認識システムを考える• 誤差関数の微分
4/25/2012
ヤコビ行列
ヤコビ行列のバックプロパゲーションヤコビ行列の要素を変形
微分を計算
出力ユニット• シグモイド活性化関数
• ソフトマックス関数
4/25/2012