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の話 についてできるといいなああ