chapter 8 ボルツマンマシン - 深層学習本読み会

37
深層学習 chapter8 ボルツマンマシン Waseda Univ. B4 Taikai Takeda Twitter: @bigsea_t

Upload: taikai-takeda

Post on 15-Aug-2015

715 views

Category:

Engineering


5 download

TRANSCRIPT

Page 1: Chapter 8 ボルツマンマシン - 深層学習本読み会

深層学習chapter8 ボルツマンマシン

Waseda Univ. B4

Taikai Takeda

Twitter: @bigsea_t

Page 2: Chapter 8 ボルツマンマシン - 深層学習本読み会

ボルツマンマシンとは

対称的に接続された無向グラフ(マルコフ確率場)

エッジはノードの依存関係を表す

ユニット(ノード)はONかOFFのどちらかの状態(binary)を確率的にとる

4

0

1

1

0

ON

OFF

Page 3: Chapter 8 ボルツマンマシン - 深層学習本読み会

ボルツマンマシンの定式化Ⅰ

1. 状態の組み合わせ𝒙 = {𝑥1, … , 𝑥𝑁}によって値が変化するエネルギー関数Φを定義

2. そのエネルギー関数の値が小さい状態ほど生起しやすいような確率分布𝑝(𝒙|𝜽)を定義(𝜽はパラメータの集合)

5

Page 4: Chapter 8 ボルツマンマシン - 深層学習本読み会

ボルツマンマシンの定式化Ⅱ

エネルギー関数Φ

Φ(𝒙, 𝜽) = −

𝑖=1

𝑁

𝑏𝑖𝑥𝑖 −

𝑖,𝑗 ∈𝜖

𝑤𝑖𝑗𝑥𝑖𝑥𝑗

𝜖:エッジの集合

𝑏𝑖: ユニット𝑥𝑖のバイアス

𝑤𝑖𝑗: ユニット𝑥𝑖 , 𝑥𝑗をつなぐエッジの重み

𝒙 = {𝑥1, … , 𝑥𝑁}

6

𝑥2

𝑥1

𝑥3

𝑥4

𝑤12

𝑤13

𝑤14

𝑤34𝑤23

𝑤24

Page 5: Chapter 8 ボルツマンマシン - 深層学習本読み会

ボルツマンマシンの定式化Ⅲ

ユニットの状態𝒙の確率分布𝑝(𝒙|𝜽)

𝑝 𝒙 𝜽 =1

𝑍 𝜽exp(−Φ(𝒙, 𝜽))

正規化定数𝑍 𝜽 = 𝒙 exp(−Φ(𝒙, 𝜽))

分配関数 𝒙 = 𝑥1 𝑥2… 𝑥𝑁: 2

𝑁通りの加算

エネルギー関数が小さい値を取る状態の生起確率が高い

7

𝑥2

𝑥1

𝑥3

𝑥4

𝑤12

𝑤13

𝑤14

𝑤34𝑤23

𝑤24

Page 6: Chapter 8 ボルツマンマシン - 深層学習本読み会

ボルツマンマシンの学習Ⅰ

1. 対数尤度関数を考える

2. 対数尤度関数をパラメータで微分して勾配を導出

3. 勾配法でパラメータを更新

4. (経験分布を定義して表記を簡素化)

8

Page 7: Chapter 8 ボルツマンマシン - 深層学習本読み会

ボルツマンマシンの学習Ⅱ

対数尤度関数ln𝐿 𝜽

ln𝐿 𝜽 =

𝑛=1

𝑁

{−Φ 𝒙𝑛, 𝜽 − ln 𝑍(𝜽)}

𝒙𝑛: n個目の入力データ

対数尤度関数のパラメータ微分

𝜕 ln 𝐿 𝜽

𝜕𝑏𝑖=

𝑛=1

𝑁

𝑥𝑛𝑖 −𝑁𝐸𝜃 𝑥𝑖

𝜕 ln 𝐿 𝜽

𝜕𝑤𝑖𝑗=

𝑛=1

𝑁

𝑥𝑛𝑖𝑥𝑛𝑗 − 𝑁𝐸𝜃 𝑥𝑖𝑥𝑗

𝑥𝑛𝑖 , 𝑥𝑛𝑗: それぞれ𝒙𝑛のi成分,j成分

𝐸𝜃 𝑥𝑖 = 𝒙 𝑥𝑖𝑝(𝒙|𝜽)

9分配関数

(厳密な計算は厳しい)

勾配降下法でパラメータを最適化できる

𝑐𝑓. 𝑝 𝒙 𝜽 =1

𝑍 𝜽exp(−Φ(𝒙, 𝜽))

Page 8: Chapter 8 ボルツマンマシン - 深層学習本読み会

ボルツマンマシンの学習Ⅲ

経験分布𝑞 𝒙 (表記の簡易化のために定義)

𝑞 𝒙 =1

𝑁

𝑛=1

𝑁

𝛿(𝒙, 𝒙𝑛)

𝛿(𝒙, 𝒚) = 1 𝑖𝑓 𝒙 = 𝒚0 𝑖𝑓 𝒙 ≠ 𝒚

標本平均は経験分布の期待値として表せる

1

𝑁

𝑛=1

𝑁

𝑥𝑛𝑖 =

𝒙

𝑥𝑛𝑖𝑞(𝒙)

10

一致する𝒙𝒏の割合

Page 9: Chapter 8 ボルツマンマシン - 深層学習本読み会

ボルツマンマシンの学習Ⅳ

経験分布を用いてパラメータの勾配を書き換える

1

𝑁

𝜕 ln 𝐿 𝜽

𝜕𝑏𝑖= 𝑥𝑖 𝑑𝑎𝑡𝑎 − 𝑥𝑖 𝑚𝑜𝑑𝑒𝑙

1

N

𝜕 ln 𝐿 𝜽

𝜕𝑤𝑖𝑗= 𝑥𝑖𝑥𝑗 𝑑𝑎𝑡𝑎

− 𝑥𝑖𝑥𝑗 𝑚𝑜𝑑𝑒𝑙

⋅ 𝑑𝑎𝑡𝑎: 𝑞(𝒙)に関する期待値

⋅ 𝑚𝑜𝑑𝑒𝑙: 𝑝(𝒙|𝜽)に関する期待値

11

𝑛=1

𝑁

𝑥𝑛𝑖𝑥𝑛𝑗 =

𝑥

𝑥𝑖𝑥𝑗𝑞(𝒙)

実際に分配関数による計算をするわけではなく,単に表記の簡易化が目的

Page 10: Chapter 8 ボルツマンマシン - 深層学習本読み会

隠れ変数を持つボルツマンマシン

ボルツマンマシンに隠れ変数を追加したモデル

高い自由度を持ち,隠れ変数の数を十分大きくとれば任意の分布を近似できることが証明されている

学習がより難しい(後述)

12

𝑣2

𝑣1

𝑣3

ℎ1

ℎ2

隠れ変数

(hidden variable)

可視変数

(visible variable)

Page 11: Chapter 8 ボルツマンマシン - 深層学習本読み会

隠れ変数を持つボルツマンマシンの定式化

エネルギー関数Φ

Φ(𝐳, 𝜽) = −

𝑖=1

𝑀

𝑏𝑖𝑧𝑖 −

𝑖,𝑗 ∈𝜖

𝑤𝑖𝑗𝑧𝑖𝑧𝑗

𝒛: 𝒗, 𝒉を順に並べたベクトル{𝑣1, . . 𝑣𝐽, ℎ1, … , ℎ𝐾}

確率分布𝑝(𝒛|𝜽)

𝑝 𝒛 𝜽 =1

𝑍 𝜽exp(−Φ(𝒛, 𝜽))

→隠れ変数を持たない場合と同じ

13

Page 12: Chapter 8 ボルツマンマシン - 深層学習本読み会

隠れ変数を持つボルツマンマシンの学習Ⅰ

隠れ変数を持たない場合と同様,対数尤度を最適化する

ただし,モデル分布𝑝(𝒗, 𝒉|𝜽)の隠れ変数𝒉を周辺化する必要がある

14

Page 13: Chapter 8 ボルツマンマシン - 深層学習本読み会

隠れ変数の周辺化

𝑝 𝒗 𝜽 =

𝒉

𝑝 𝒗, 𝒉|𝜽

尤度関数のパラメータ微分𝜕 ln 𝐿 𝜽

𝜕𝑤𝑖𝑗∝ 𝑧𝑖𝑧𝑗 𝑑𝑎𝑡𝑎

− 𝑧𝑖𝑧𝑗 𝑚𝑜𝑑𝑒𝑙

𝑔(𝒗, 𝒉) 𝑑𝑎𝑡𝑎 = 𝒗 𝒉𝑔 𝒗, 𝒉 𝑝 𝒉 𝒗, 𝜽 𝑞 𝒗

経験分布の期待値の計算にも分配関数を含むので学習がより難しい

隠れ変数を持つボルツマンマシンの学習Ⅱ

15

(多分)本の誤植(p.139の一番下)

𝑔(𝑣, ℎ)の隠れ変数を周辺化

Page 14: Chapter 8 ボルツマンマシン - 深層学習本読み会

制約ボルツマンマシン(RBM)

隠れ変数を持つボルツマンマシンの一種

可視変数どうし,隠れ変数どうしはそれぞれ結合を持たないという制約を持つ

この制約のおかげで,隠れ変数による周辺化が必要なくなるため学習が簡単になる

16

𝑣2

𝑣1

𝑣3

ℎ1

ℎ2

Page 15: Chapter 8 ボルツマンマシン - 深層学習本読み会

RBMの定式化

エネルギー関数Φ

Φ 𝐯, 𝐡, 𝜽 = −

𝑖=1

𝑎𝑖𝑣𝑖 −

𝑖=1

𝑏𝑖ℎ𝑖 −

𝑖,𝑗

𝑤𝑖𝑗𝑣𝑖ℎ𝑗

参考:制約がない場合

Φ(𝐳, 𝜽) = −

𝑖=1

𝑀

𝑏𝑖𝑧𝑖 −

𝑖,𝑗 ∈𝜖

𝑤𝑖𝑗𝑧𝑖𝑧𝑗

確率分布𝑝(𝒗, 𝒉|𝜽)

𝑝 𝒗, 𝒉 𝜽 =1

𝑍 𝜽exp(−Φ(𝒗, 𝒉, 𝜽))

17

Page 16: Chapter 8 ボルツマンマシン - 深層学習本読み会

RBMにおける条件付き分布

条件付き分布𝑝(𝒉|𝒗, 𝜽)

𝑝 𝒉 𝒗, 𝜽 =

𝑗

𝑝 ℎ𝑗|𝒗, 𝜽

𝑝 ℎ𝑗 = 1 𝒗, 𝜽 = 𝜎(𝑏𝑗 +

𝑖

𝑤𝑖𝑗𝑣𝑗)

𝜎 𝑥 = 1/(1 + exp(−𝑥)):ロジスティック関数

順伝播型のニューラルネットと類似

対称性から,可視変数𝒗の分布も同様

18

条件付き独立

Page 17: Chapter 8 ボルツマンマシン - 深層学習本読み会

RBMの学習

条件付独立性を用いてパラメータ微分を計算

1

𝑁

𝜕 ln 𝐿 𝜽

𝜕𝑎𝑖=

𝑛=1

𝑁

𝑣𝑛𝑖 −

𝒗,𝒉

𝑣𝑖𝑝(𝒗, 𝒉|𝜽 )

1

𝑁

𝜕 ln 𝐿 𝜽

𝜕𝑏𝑖=

𝑛=1

𝑁

𝑝(ℎ = 1|𝒗) −

𝒗,𝒉

ℎ𝑗𝑝(𝒗, 𝒉|𝜽 )

1

N

𝜕 ln 𝐿 𝜽

𝜕𝑤𝑖𝑗=

𝑛=1

𝑁

𝑣𝑛𝑖𝑝(ℎ𝑗 = 1|𝒗) −

𝒗,𝒉

𝑣𝑖ℎ𝑗𝑝(𝒗, 𝒉|𝜽 )

19

簡単に計算できる 計算キツイ

Page 18: Chapter 8 ボルツマンマシン - 深層学習本読み会

ギブスサンプリングⅠ

ある分布 𝑝 𝒙 の上での関数𝑓 𝒙 の期待値を求めたいが,何らかの理由により厳密に求めるのが不可能な場合,サンプリングを用いてこれを近似的に計算できる

分布𝑝 𝒙 に従うサンプルを生成して,そのサンプルにより期待値を求める

ボルツマンマシンでは,ギブスサンプリングを用いることができる.

ここではフワっとした説明になるので詳細は

Bishop(2006), “Pattern Recognition and Machine Learning”などを参照してください

20

Page 19: Chapter 8 ボルツマンマシン - 深層学習本読み会

ギブスサンプリングⅡ

ユニット𝑖の条件付確率

𝑝 𝑥𝑖 𝒙−𝑖 , 𝜽 =exp 𝑏𝑖 + 𝑗∈𝑁𝑖

𝑤𝑖𝑗𝑥𝑗 𝑥𝑖

1 + exp 𝑏𝑖 + 𝑗∈𝑁𝑖𝑤𝑖𝑗𝑥𝑗 𝑥𝑖

𝑁𝑖:ユニット𝑖と結合を持つユニットの集合

𝒙−𝑖:𝑖番目を除いたユニット

あるユニットの確率分布は隣接するユニットの状態から計算できる

あるユニット𝑥𝑖以外のすべてのユニットの値(正確には𝑥𝑖と結合を持つユニットの値)がわかれば条件付確率を計算することができるので,サンプリングするユニット以外の値を固定してそのユニットに関するサンプリングができる

21

Page 20: Chapter 8 ボルツマンマシン - 深層学習本読み会

ギブスサンプリングⅢ

p 𝑥𝑖 𝒙−𝑖 , 𝜽 上のサンプルの生成方法1. p 𝑥𝑖 = 1 𝒙−𝑖 , 𝜽 を計算する

2. 区間[0,1]の一様乱数を生成し,これが𝑝 𝑥𝑖 = 1 𝒙−𝑖 , 𝜽 を下回れば0,そうでなければ1をサンプルの値とする

3. この値はp 𝑥𝑖 𝒙−𝑖 , 𝜽 に従う

22

Page 21: Chapter 8 ボルツマンマシン - 深層学習本読み会

ギブスサンプリングⅣ

ギブスサンプリングの手順

1. 各変数𝑥𝑖をランダムに初期化し𝒙0とする

2. 各成分𝑥𝑖について𝑖 = 1, . . , 𝑁と順番にサンプリングを行う

3. 一巡したらまた𝑖 = 1からこれを行い,繰り返す

t巡目の𝑥𝑖𝑡のサンプリング

𝑝(𝑥𝑖𝑡|𝑥1

𝑡, … , 𝑥𝑖−1𝑡 , 𝑥𝑖+1

𝑡−1, … , 𝑥𝑁𝑡−1)

23

Page 22: Chapter 8 ボルツマンマシン - 深層学習本読み会

ギブスサンプリングⅤ

十分に繰り返して得られるサンプル𝒙𝑡は高い精度で𝑝 𝒙 を近似できることが知られている

精度を高めるには計算コストが大きくなってしま

実際にはRBMでは,より計算コストの低いコントラスティブダイバージェンス(CD)を用いることができる

24

Page 23: Chapter 8 ボルツマンマシン - 深層学習本読み会

ブロックサンプリング

ブロックサンプリング RBMの𝒗, 𝒉の条件付独立性を利用する

𝒗, 𝒉を順番に,交互にサンプリングする

1. 𝒗𝟎にランダムな値をセット

2. 𝒗𝟎 → 𝒉𝟎 → 𝒗𝟏 → 𝒉𝟏… → 𝒗𝑻 → 𝒉𝑻

と交互にサンプリング

25

Page 24: Chapter 8 ボルツマンマシン - 深層学習本読み会

CD

コントラスティブダイバージェンス(CD) ギブスサンプリングの初期化の際にランダムに初期

化するのではなく𝒗𝟎 = 𝒗𝒏と,訓練サンプルの値を用いる

通常のギブスサンプリングと同様にこれをT回繰り返す(Tは小さくて良く,T=1でも良い)

コレだけ

この方式だと対数尤度でなくコントラスティブダイバージェンスを小さくする最適化を行っている 詳細はHinton(2002), ”Training products of

experts by contrastive divergence”を参照

26

Page 25: Chapter 8 ボルツマンマシン - 深層学習本読み会

CDの実装

CDにいくつかの改良を加えることができる 重み減衰

モメンタム

スパース正則化

27

Page 26: Chapter 8 ボルツマンマシン - 深層学習本読み会

持続的CD

持続的CD(persistent CD, PCD)

普通のCDでは𝒗𝟎 = 𝒗𝒏とし,𝒗𝟎 → 𝒉𝟎 → 𝒗𝟏とサンプリングしていく

PCDでは𝒗𝟎に前回のパラメータ更新時にサンプリングした𝒗を用いる

PCDは普通のCDの約10倍の効率

28

Page 27: Chapter 8 ボルツマンマシン - 深層学習本読み会

RBMとAutoencoder

似ている点 どちらもpre-trainingに用いられる

RBMの隠れ層⇔autoencoderの中間層

RBMの隠れ層の条件付き分布𝑝 ℎ𝑗 = 1 𝒗, 𝜽 = 𝜎(𝑏𝑗 + 𝑖𝑤𝑖𝑗𝑣𝑗)は順伝播型ニューラルネットの活性化関数がロジスティック関数であるときの計算と似ている

異なる点

RBMは可視層の状態の分布𝑝 𝒙 𝜽 がデータの生成分布に近くなるように定める

Autoencoderでは入力𝑥と出力 𝑥が直接近くなるようにパラメータを定める

29

Page 28: Chapter 8 ボルツマンマシン - 深層学習本読み会

その他のユニット

Binary Unit以外のUnit

ガウシアンユニット

二項ユニット

ReLU

連続値を出力にしたい場合があるため

30

Page 29: Chapter 8 ボルツマンマシン - 深層学習本読み会

ガウシアンベルヌーイRBMⅠ

可視層に連続値をとるガウシアンユニットを用いる

ガウシアンベルヌーイRBMのエネルギー関数

Φ 𝒗, 𝒉, 𝜽 = −

𝑖

𝑣𝑖 − 𝑎𝑖

2𝜎𝑖2 −

𝑗

𝑏𝑗ℎ𝑗 −

𝑖,𝑗

𝑤𝑖𝑗𝑣𝑖ℎ𝑗

𝜎𝑖

𝜎: ガウス分布の標準偏差

31

Page 30: Chapter 8 ボルツマンマシン - 深層学習本読み会

ガウシアンベルヌーイRBMⅡ

可視変数𝑣𝑖の条件付き分布

𝑝 𝑣𝑖|𝒉 ∝ exp −𝑣𝑖 − 𝑎𝑖 − 𝑗𝑤𝑖𝑗ℎ𝑗

2

2𝜎𝑖2

平均𝑎𝑖 − 𝑗𝑤𝑖𝑗ℎ𝑗 ,分散𝜎𝑖2のガウス分布

𝜎𝑖2は入力の平均を0,分散を1に正規化したう

えで𝜎𝑖2 = 1に固定するのが一般的

隠れ層をガウシアンにすることも理論的には可能だが学習が難しいため一般的でない

32

Page 31: Chapter 8 ボルツマンマシン - 深層学習本読み会

二項ユニット

二項ユニット(binominal unit) 同一のパラメータを持つ複数の二値ユニットをK個

複製

二項ユニットの状態は複数のユニットの状態の和で表される

期待値 Kp

分散 Kp(1-p)

ここでpは条件付確率

𝑝 𝑣𝑗 = 1 𝒉, 𝜽 = 𝜎(𝑏𝑗 +

𝑖

𝑤𝑖𝑗ℎ𝑗)

33

Page 32: Chapter 8 ボルツマンマシン - 深層学習本読み会

ReLU (Rectified Linear Unit)

二値ユニットの∞個の複製を考える

ただし,各ユニットのバイアスにはオフセット-0.5,-1.5,-2.5…をそれぞれ加える

ReLUの状態はこのユニットの合計値

ReLUの状態の期待値

𝑖

𝜎 𝑥 − 𝑖 + 0.5 ≈ ln(1 + 𝑒𝑥)

正規化線形関数で近似

max(0, 𝑥 + 𝑁(0, 𝜎(𝑥))) 整数値を取るという制約は緩める

ノイズ付ReLUと呼ぶ

34

soft plus関数これを微分するとlogistic関数となる

Page 33: Chapter 8 ボルツマンマシン - 深層学習本読み会

ReLU (Rectified Linear Unit)

赤: 𝑖 𝜎(𝑥 − 𝑖 + 0.5)

青: log(1+exp(x))

緑: max(0,x+N(0,σ(x))

35

Nair, V., & Hinton, G. E. (2010).

Rectified Linear Units Improve

Restricted Boltzmann Machines.より

Page 34: Chapter 8 ボルツマンマシン - 深層学習本読み会

Deep Belief Network(DBN)

deep learningの火付け役となったモデル [Hinton et al. 2006. A Fast Learning

Algorithm for Deep Belief Nets]

最上位層のみ無向エッジでほかはすべて有効エッジ

下位層から順にRBMで学習(pre-

training)

学習した値を初期値に順伝播型のニューラルネットとして学習(fine-

tuning)

このとき,最上位に出力層を追加する(その重みはランダムに初期化)

36

Page 35: Chapter 8 ボルツマンマシン - 深層学習本読み会

Deep Boltzmann Machine(DBM)

層間が無向エッジで結ばれた構造

隠れユニット間に相互結合があるのでRBMのように簡単に計算ができない

平均場近似(隠れ層どうしの独立性を仮定して近似)で最適化を行う

38

Page 36: Chapter 8 ボルツマンマシン - 深層学習本読み会

Deep Boltzmann Machine(DBM)

DBMも順伝播型ネットワークに転換できる

そのとき,DBNの最上位層も入力として加えるという拡張を行うことができる

39Salakhutdinov, R., & Hinton, G. (2009).

Deep Boltzmann Machines より

Page 37: Chapter 8 ボルツマンマシン - 深層学習本読み会

Reference

Bishop(2006), “Pattern Recognition and Machine Learning”

Hinton(2002), ”Training products of experts by contrastive

divergence”

Nair, V., & Hinton, G. E. (2010). ”Rectified Linear Units Improve

Restricted Boltzmann Machines”

Salakhutdinov, R., & Hinton, G. (2009). “Deep Boltzmann

Machines”

Hinton et al. (2006). “A Fast Learning Algorithm for Deep Belief

Nets”

岡谷貴之(2015) “深層学習”

“RBMから考えるDeep Learning ~黒魔術を添えて~”

http://qiita.com/t_Signull/items/f776aecb4909b7c5c116

“Deep Learning Tutorial” http://deeplearning.net/tutorial/

40