Link
Embed
Share
Beginning
This slide
Copy link URL
Copy link URL
Copy iframe embed code
Copy iframe embed code
Copy javascript embed code
Copy javascript embed code
Share
Tweet
Share
Tweet
Slide 1
Slide 1 text
PRML 勉強会 第5章 ニューラルネットワーク 担当:王研究室 川上雄太
Slide 2
Slide 2 text
ニューラルネットワーク(以降NN)はいろんな事に使える 最近、第3次NNブームが到来(過ぎつつある?) NNのライブラリ,ツールキットはいろいろあるので、 割と手軽に利用可能だったりする
Slide 3
Slide 3 text
目標 それらを使うときのために • 中で何が起こっているのか • パラメータの意味 • etc を理解しておくこと! なので、本質的に重要でなさそうな部分はごっそり 省きます。。。 (近似の話、計算の高速化など)
Slide 4
Slide 4 text
5章のすすめかた(予定) • 第一週 • NNとは何か • NNの訓練 • 誤差逆伝搬 ←重要! • ヘッセ行列 • 第二週 • NNの正則化、畳み込みNN • 混合密度NN • ベイズNN
Slide 5
Slide 5 text
NNとは何か PRML §5.1 p.226 – p.233
Slide 6
Slide 6 text
5.1 フィードフォワードネットワーク関数 • 3,4章でも取り扱ったクラス分類の線形モデルを 思い出す , = =1 (5.1) ・ はクラス分類なら非線形活性化関数 回帰なら恒等写像 • 基底関数の線形和を関数にかける、という式 • をさらにパラメータ依存の関数にすると?
Slide 7
Slide 7 text
5.1 フィードフォワードネットワーク関数 = = ℎ (1) + 0 (1) =1 (5.3) ← (5.2) ℎ(・)はシグモイド関数 • ここでいう(1)は、1層目という意味 (後で説明) • これを(5.1)式の線形モデルの基底関数とする
Slide 8
Slide 8 text
5.1 フィードフォワードネットワーク関数 = ℎ (1) + 0 (1) =1 (5.3) ← (5.2) = (2) + 0 (2) =1 (5.5) ← (5.4) (5.1)式の に相当 (5.1)式のf ・ に相当
Slide 9
Slide 9 text
5.1 フィードフォワードネットワーク関数 入力値を2段階の線形和・非線形関数で変換している = ℎ (1) + 0 (1) =1 (5.3) ← (5.2) = (2) + 0 (2) =1 (5.5) ← (5.4) 入力層 隠れ層 出力層
Slide 10
Slide 10 text
5.1 フィードフォワードネットワーク関数 • 1つにまとめると • 図で表すと , = 2 =0 ℎ (1) =0 (5.9)
Slide 11
Slide 11 text
5.1 フィードフォワードネットワーク関数 • こんな図で表せるので”ネットワーク” • (5.9)式の出力を求める計算過程を順伝搬と呼ぶ • 今後この構造を2層NNと呼ぶ • ネットワーク構造には様々な拡張が考えられる
Slide 12
Slide 12 text
NNのはたらき • 万能近似器 • どんな連続関数でも任意の精度で近似可能 (隠れ層をめっちゃ増やせば)
Slide 13
Slide 13 text
NNのはたらき • 万能近似器 • どんな連続関数でも任意の精度で近似可能 (隠れ層をめっちゃ増やせば)
Slide 14
Slide 14 text
NNの訓練 PRML §5.2 p.233 – p.242
Slide 15
Slide 15 text
何をしたいのか • NNのパラメータは2層まとめて • この重みを最適化したい →誤差関数 の最小化 , = 2 =0 ℎ (1) =0 5.9 再掲
Slide 16
Slide 16 text
解くべき問題と誤差関数の種類 回帰 2クラス分類 他クラス分類 出力ユニット の 活性化関数 線形出力関数 = ロジスティック シグモイド関数 = 1 1 + exp − ソフトマックス関数 = exp (, ) exp( (, )) 誤差関数 二乗和誤差関数 = 1 2 , =1 − 2 交差エントロピー誤差関数 E = − ln =1 + 1 − ln 1 − 多クラス交差エントロピー 誤差関数 E = − ln , =1 =1
Slide 17
Slide 17 text
5.2.1 パラメータ最適化 • 誤差関数の値が小さくなる方向にパラメータを更 新していけばいい(勾配降下法など) (+1) = + ∆() • いろいろなアルゴリズムがあるが、結局は∆()の 決め方の違い
Slide 18
Slide 18 text
5.2.4 勾配降下最適化 • 最も単純なアプローチ (+1) = () − (()) • は学習率パラメータ • 最急降下法ともいう • バッチ訓練では共役勾配法、準ニュートン法な どの方が頑健で速い
Slide 19
Slide 19 text
5.2.4 勾配降下最適化 • 勾配降下法にはオンライン版もある • オンライン? 個々のデータ点について逐次的に最適化 データの冗長性に強い 局所解を回避しやすい
Slide 20
Slide 20 text
誤差逆伝搬 error backpropagation PRML §5.3 p.242 – p.250
Slide 21
Slide 21 text
何をしたいのか • NNは誤差関数を最小化するように学習する (最急降下法の場合) (+1) = () − (()) • パラメータに関する誤差関数の微分 が 知りたい
Slide 22
Slide 22 text
5.3.1 誤差関数微分の評価 • 例えば単純な線形モデルの場合 = =1 (5.45) • ある入力パターンnに対する誤差関数は = 1 2 − 2 (5.46) • 重み に関する勾配は = − (5.47) 誤差信号 リンクの 入力値
Slide 23
Slide 23 text
5.3.1 誤差関数微分の評価 • 多層ネットワークの場合は? 複数層の線形モデルと非線形関数 = = ℎ • 誤差関数 は、 を通してのみ に依存する ことを利用して微分を分解 = (5.50)
Slide 24
Slide 24 text
5.3.1 誤差関数微分の評価 = 5.50 ここで、 ≡ は誤差と呼ばれる また、 = (5.52) すると = (5.53)
Slide 25
Slide 25 text
5.3.1 誤差関数微分の評価 = 5.53 (5.47)式を参考にすると = − (5.54) • 隠れユニットのは = = (5.55) という感じで入力側に遡って評価
Slide 26
Slide 26 text
5.3.1 誤差関数微分の評価 • 長々やったけど結局どういうことかというと 逆伝搬公式 = = ℎ′ 出力側 入力側
Slide 27
Slide 27 text
学習の流れ 0.重みをランダムに振る 1.入力ベクトル による現在の出力を求める (順伝搬) 2.出力層での誤差 を計算する 3. をもとに全ての隠れユニットの を得る(逆伝搬) 4. を用いて誤差関数の微分( )を評価 5.重みを更新 6.誤差が十分小さくなったら終了 ならなければ1.に戻る (+1) = () − (())
Slide 28
Slide 28 text
とりあえずここまで 次週は ・NNの正則化 ・NNのなかまたち (畳込みNN, 混合密度NN, ベイズNN) ・deep learningの話 についてできるといいなああ