Successfully reported this slideshow.
We use your LinkedIn profile and activity data to personalize ads and to show you more relevant ads. You can change your ad preferences anytime.

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

17,195 views

Published on

2015/8/5 深層学習本読み会 Chapter 8 ボルツマンマシン (http://ml-professional.connpass.com/event/17756/) の発表資料です

Published in: Engineering
  • Be the first to comment

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

  1. 1. 深層学習 chapter8 ボルツマンマシン Waseda Univ. B4 Taikai Takeda Twitter: @bigsea_t
  2. 2. ボルツマンマシンとは 対称的に接続された無向グラフ(マルコフ確率場) エッジはノードの依存関係を表す ユニット(ノード)はONかOFFのどちらかの状態 (binary)を確率的にとる 4 0 1 1 0 ON OFF
  3. 3. ボルツマンマシンの定式化Ⅰ 1. 状態の組み合わせ𝒙 = {𝑥1, … , 𝑥 𝑁}によって値が変化す るエネルギー関数Φを定義 2. そのエネルギー関数の値が小さい状態ほど生起しや すいような確率分布𝑝(𝒙|𝜽)を定義(𝜽はパラメータの 集合) 5
  4. 4. ボルツマンマシンの定式化Ⅱ エネルギー関数Φ Φ(𝒙, 𝜽) = − 𝑖=1 𝑁 𝑏𝑖 𝑥𝑖 − 𝑖,𝑗 ∈𝜖 𝑤𝑖𝑗 𝑥𝑖 𝑥𝑗  𝜖:エッジの集合  𝑏𝑖: ユニット𝑥𝑖のバイアス  𝑤𝑖𝑗: ユニット𝑥𝑖, 𝑥𝑗をつなぐエッジの重み  𝒙 = {𝑥1, … , 𝑥 𝑁} 6 𝑥2 𝑥1 𝑥3 𝑥4 𝑤12 𝑤13 𝑤14 𝑤34𝑤23 𝑤24
  5. 5. ボルツマンマシンの定式化Ⅲ ユニットの状態𝒙の確率分布𝑝(𝒙|𝜽) 𝑝 𝒙 𝜽 = 1 𝑍 𝜽 exp(−Φ(𝒙, 𝜽))  正規化定数𝑍 𝜽 = 𝒙 exp(−Φ(𝒙, 𝜽))  分配関数 𝒙 = 𝑥1 𝑥2 … 𝑥 𝑁 : 2 𝑁通りの加算  エネルギー関数が小さい値を取る状態の 生起確率が高い 7 𝑥2 𝑥1 𝑥3 𝑥4 𝑤12 𝑤13 𝑤14 𝑤34𝑤23 𝑤24
  6. 6. ボルツマンマシンの学習Ⅰ 1. 対数尤度関数を考える 2. 対数尤度関数をパラメータで微分して勾配を 導出 3. 勾配法でパラメータを更新 4. (経験分布を定義して表記を簡素化) 8
  7. 7. ボルツマンマシンの学習Ⅱ 対数尤度関数ln𝐿 𝜽 ln𝐿 𝜽 = 𝑛=1 𝑁 {−Φ 𝒙 𝑛, 𝜽 − ln 𝑍(𝜽)}  𝒙 𝑛: n個目の入力データ 対数尤度関数のパラメータ微分 𝜕 ln 𝐿 𝜽 𝜕𝑏𝑖 = 𝑛=1 𝑁 𝑥 𝑛𝑖 − 𝑁𝐸 𝜃 𝑥𝑖 𝜕 ln 𝐿 𝜽 𝜕𝑤𝑖𝑗 = 𝑛=1 𝑁 𝑥 𝑛𝑖 𝑥 𝑛𝑗 − 𝑁𝐸 𝜃 𝑥𝑖 𝑥𝑗  𝑥 𝑛𝑖, 𝑥 𝑛𝑗: それぞれ𝒙 𝑛のi成分,j成分  𝐸 𝜃 𝑥𝑖 = 𝒙 𝑥𝑖 𝑝(𝒙|𝜽) 9 分配関数 (厳密な計算は厳しい) 勾配降下法でパラメータを 最適化できる 𝑐𝑓. 𝑝 𝒙 𝜽 = 1 𝑍 𝜽 exp(−Φ(𝒙, 𝜽))
  8. 8. ボルツマンマシンの学習Ⅲ 経験分布𝑞 𝒙 (表記の簡易化のために定義) 𝑞 𝒙 = 1 𝑁 𝑛=1 𝑁 𝛿(𝒙, 𝒙 𝑛) 𝛿(𝒙, 𝒚) = 1 𝑖𝑓 𝒙 = 𝒚 0 𝑖𝑓 𝒙 ≠ 𝒚  標本平均は経験分布の期待値として表せる 1 𝑁 𝑛=1 𝑁 𝑥 𝑛𝑖 = 𝒙 𝑥 𝑛𝑖 𝑞(𝒙) 10 一致する𝒙 𝒏の割合
  9. 9. ボルツマンマシンの学習Ⅳ 経験分布を用いてパラメータの勾配を書き換 える 1 𝑁 𝜕 ln 𝐿 𝜽 𝜕𝑏𝑖 = 𝑥𝑖 𝑑𝑎𝑡𝑎 − 𝑥𝑖 𝑚𝑜𝑑𝑒𝑙 1 N 𝜕 ln 𝐿 𝜽 𝜕𝑤𝑖𝑗 = 𝑥𝑖 𝑥𝑗 𝑑𝑎𝑡𝑎 − 𝑥𝑖 𝑥𝑗 𝑚𝑜𝑑𝑒𝑙  ⋅ 𝑑𝑎𝑡𝑎: 𝑞(𝒙)に関する期待値  ⋅ 𝑚𝑜𝑑𝑒𝑙: 𝑝(𝒙|𝜽)に関する期待値 11 𝑛=1 𝑁 𝑥 𝑛𝑖 𝑥 𝑛𝑗 = 𝑥 𝑥𝑖 𝑥𝑗 𝑞(𝒙) 実際に分配関数による計算をするわけではなく, 単に表記の簡易化が目的
  10. 10. 隠れ変数を持つボルツマンマシン ボルツマンマシンに隠れ変数を追加したモデル 高い自由度を持ち,隠れ変数の数を十分大きくとれば 任意の分布を近似できることが証明されている 学習がより難しい(後述) 12 𝑣2 𝑣1 𝑣3 ℎ1 ℎ2 隠れ変数 (hidden variable) 可視変数 (visible variable)
  11. 11. 隠れ変数を持つボルツマンマシンの定式化 エネルギー関数Φ Φ(𝐳, 𝜽) = − 𝑖=1 𝑀 𝑏𝑖 𝑧𝑖 − 𝑖,𝑗 ∈𝜖 𝑤𝑖𝑗 𝑧𝑖 𝑧𝑗  𝒛: 𝒗, 𝒉を順に並べたベクトル{𝑣1, . . 𝑣𝐽, ℎ1, … , ℎ 𝐾} 確率分布𝑝(𝒛|𝜽) 𝑝 𝒛 𝜽 = 1 𝑍 𝜽 exp(−Φ(𝒛, 𝜽)) →隠れ変数を持たない場合と同じ 13
  12. 12. 隠れ変数を持つボルツマンマシンの学習Ⅰ 隠れ変数を持たない場合と同様,対数尤度を最適化す る ただし,モデル分布𝑝(𝒗, 𝒉|𝜽)の隠れ変数𝒉を周辺化す る必要がある 14
  13. 13.  隠れ変数の周辺化 𝑝 𝒗 𝜽 = 𝒉 𝑝 𝒗, 𝒉|𝜽 尤度関数のパラメータ微分 𝜕 ln 𝐿 𝜽 𝜕𝑤𝑖𝑗 ∝ 𝑧𝑖 𝑧𝑗 𝑑𝑎𝑡𝑎 − 𝑧𝑖 𝑧𝑗 𝑚𝑜𝑑𝑒𝑙  𝑔(𝒗, 𝒉) 𝑑𝑎𝑡𝑎 = 𝒗 𝒉 𝑔 𝒗, 𝒉 𝑝 𝒉 𝒗, 𝜽 𝑞 𝒗  経験分布の期待値の計算にも分配関数を含むので 学習がより難しい 隠れ変数を持つボルツマンマシンの学習Ⅱ 15 (多分)本の誤植 (p.139の一番下) 𝑔(𝑣, ℎ)の隠れ変数を周辺化
  14. 14. 制約ボルツマンマシン(RBM) 隠れ変数を持つボルツマンマシンの一種 可視変数どうし,隠れ変数どうしはそれぞれ結合を持 たないという制約を持つ この制約のおかげで,隠れ変数による周辺化が必要な くなるため学習が簡単になる 16 𝑣2 𝑣1 𝑣3 ℎ1 ℎ2
  15. 15. RBMの定式化 エネルギー関数Φ Φ 𝐯, 𝐡, 𝜽 = − 𝑖=1 𝑎𝑖 𝑣𝑖 − 𝑖=1 𝑏𝑖ℎ𝑖 − 𝑖,𝑗 𝑤𝑖𝑗 𝑣𝑖ℎ𝑗  参考:制約がない場合 Φ(𝐳, 𝜽) = − 𝑖=1 𝑀 𝑏𝑖 𝑧𝑖 − 𝑖,𝑗 ∈𝜖 𝑤𝑖𝑗 𝑧𝑖 𝑧𝑗 確率分布𝑝(𝒗, 𝒉|𝜽) 𝑝 𝒗, 𝒉 𝜽 = 1 𝑍 𝜽 exp(−Φ(𝒗, 𝒉, 𝜽)) 17
  16. 16. RBMにおける条件付き分布 条件付き分布𝑝(𝒉|𝒗, 𝜽) 𝑝 𝒉 𝒗, 𝜽 = 𝑗 𝑝 ℎ𝑗|𝒗, 𝜽 𝑝 ℎ𝑗 = 1 𝒗, 𝜽 = 𝜎(𝑏𝑗 + 𝑖 𝑤𝑖𝑗 𝑣𝑗)  𝜎 𝑥 = 1/(1 + exp(−𝑥)):ロジスティック関数  順伝播型のニューラルネットと類似  対称性から,可視変数𝒗の分布も同様 18 条件付き独立
  17. 17. RBMの学習 条件付独立性を用いてパラメータ微分を計算 1 𝑁 𝜕 ln 𝐿 𝜽 𝜕𝑎𝑖 = 𝑛=1 𝑁 𝑣 𝑛𝑖 − 𝒗,𝒉 𝑣𝑖 𝑝(𝒗, 𝒉|𝜽 ) 1 𝑁 𝜕 ln 𝐿 𝜽 𝜕𝑏𝑖 = 𝑛=1 𝑁 𝑝(ℎ = 1|𝒗) − 𝒗,𝒉 ℎ𝑗 𝑝(𝒗, 𝒉|𝜽 ) 1 N 𝜕 ln 𝐿 𝜽 𝜕𝑤𝑖𝑗 = 𝑛=1 𝑁 𝑣 𝑛𝑖 𝑝(ℎ𝑗 = 1|𝒗) − 𝒗,𝒉 𝑣𝑖ℎ𝑗 𝑝(𝒗, 𝒉|𝜽 ) 19 簡単に計算できる 計算キツイ
  18. 18. ギブスサンプリングⅠ ある分布 𝑝 𝒙 の上での関数𝑓 𝒙 の期待値を求めたいが, 何らかの理由により厳密に求めるのが不可能な場合, サンプリングを用いてこれを近似的に計算できる 分布𝑝 𝒙 に従うサンプルを生成して,そのサンプルに より期待値を求める ボルツマンマシンでは,ギブスサンプリングを用いる ことができる. ここではフワっとした説明になるので詳細は Bishop(2006), “Pattern Recognition and Machine Learning”などを参照してください 20
  19. 19. ギブスサンプリングⅡ ユニット𝑖の条件付確率 𝑝 𝑥𝑖 𝒙−𝑖, 𝜽 = exp 𝑏𝑖 + 𝑗∈𝑁 𝑖 𝑤𝑖𝑗 𝑥𝑗 𝑥𝑖 1 + exp 𝑏𝑖 + 𝑗∈𝑁 𝑖 𝑤𝑖𝑗 𝑥𝑗 𝑥𝑖  𝑁𝑖:ユニット𝑖と結合を持つユニットの集合  𝒙−𝑖:𝑖番目を除いたユニット  あるユニットの確率分布は隣接するユニットの状態 から計算できる あるユニット𝑥𝑖以外のすべてのユニットの値(正確には𝑥𝑖と 結合を持つユニットの値)がわかれば条件付確率を計算す ることができるので,サンプリングするユニット以外の値 を固定してそのユニットに関するサンプリングができる 21
  20. 20. ギブスサンプリングⅢ p 𝑥𝑖 𝒙−𝑖, 𝜽 上のサンプルの生成方法 1. p 𝑥𝑖 = 1 𝒙−𝑖, 𝜽 を計算する 2. 区間[0,1]の一様乱数を生成し,これが 𝑝 𝑥𝑖 = 1 𝒙−𝑖, 𝜽 を下回れば0,そうでなければ1を サンプルの値とする 3. この値はp 𝑥𝑖 𝒙−𝑖, 𝜽 に従う 22
  21. 21. ギブスサンプリングⅣ ギブスサンプリングの手順 1. 各変数𝑥𝑖をランダムに初期化し𝒙0とする 2. 各成分𝑥𝑖について𝑖 = 1, . . , 𝑁と順番に サンプリングを行う 3. 一巡したらまた𝑖 = 1からこれを行い,繰り返す t巡目の𝑥𝑖 𝑡 のサンプリング 𝑝(𝑥𝑖 𝑡 |𝑥1 𝑡 , … , 𝑥𝑖−1 𝑡 , 𝑥𝑖+1 𝑡−1 , … , 𝑥 𝑁 𝑡−1 ) 23
  22. 22. ギブスサンプリングⅤ 十分に繰り返して得られるサンプル𝒙 𝑡は高い精度で 𝑝 𝒙 を近似できることが知られている 精度を高めるには計算コストが大きくなってしま 実際にはRBMでは,より計算コストの低いコントラス ティブダイバージェンス(CD)を用いることができる 24
  23. 23. ブロックサンプリング ブロックサンプリング  RBMの𝒗, 𝒉の条件付独立性を利用する  𝒗, 𝒉を順番に,交互にサンプリングする 1. 𝒗 𝟎にランダムな値をセット 2. 𝒗 𝟎 → 𝒉 𝟎 → 𝒗 𝟏 → 𝒉 𝟏 … → 𝒗 𝑻 → 𝒉 𝑻 と交互にサンプリング 25
  24. 24. CD コントラスティブダイバージェンス(CD)  ギブスサンプリングの初期化の際にランダムに初期 化するのではなく𝒗 𝟎 = 𝒗 𝒏と,訓練サンプルの値を 用いる  通常のギブスサンプリングと同様にこれをT回繰り 返す(Tは小さくて良く,T=1でも良い)  コレだけ この方式だと対数尤度でなくコントラスティ ブダイバージェンスを小さくする最適化を行っ ている  詳細はHinton(2002), ”Training products of experts by contrastive divergence”を参照 26
  25. 25. CDの実装 CDにいくつかの改良を加えることができる  重み減衰  モメンタム  スパース正則化 27
  26. 26. 持続的CD 持続的CD(persistent CD, PCD)  普通のCDでは𝒗 𝟎 = 𝒗 𝒏とし,𝒗 𝟎 → 𝒉 𝟎 → 𝒗 𝟏とサンプ リングしていく  PCDでは𝒗 𝟎に前回のパラメータ更新時にサンプリ ングした𝒗を用いる  PCDは普通のCDの約10倍の効率 28
  27. 27. RBMとAutoencoder 似ている点  どちらもpre-trainingに用いられる  RBMの隠れ層⇔autoencoderの中間層  RBMの隠れ層の条件付き分布𝑝 ℎ𝑗 = 1 𝒗, 𝜽 = 𝜎(𝑏𝑗 + 𝑖 𝑤𝑖𝑗 𝑣𝑗) は順伝播型ニューラルネットの活性化関数がロジスティック 関数であるときの計算と似ている 異なる点  RBMは可視層の状態の分布𝑝 𝒙 𝜽 がデータの生成分布に近く なるように定める  Autoencoderでは入力𝑥と出力 𝑥が直接近くなるようにパラ メータを定める 29
  28. 28. その他のユニット Binary Unit以外のUnit  ガウシアンユニット  二項ユニット  ReLU 連続値を出力にしたい場合があるため 30
  29. 29. ガウシアンベルヌーイRBMⅠ 可視層に連続値をとるガウシアンユニットを 用いる ガウシアンベルヌーイRBMのエネルギー関数 Φ 𝒗, 𝒉, 𝜽 = − 𝑖 𝑣𝑖 − 𝑎𝑖 2𝜎𝑖 2 − 𝑗 𝑏𝑗ℎ𝑗 − 𝑖,𝑗 𝑤𝑖𝑗 𝑣𝑖ℎ𝑗 𝜎𝑖  𝜎: ガウス分布の標準偏差 31
  30. 30. ガウシアンベルヌーイRBMⅡ 可視変数𝑣𝑖の条件付き分布 𝑝 𝑣𝑖|𝒉 ∝ exp − 𝑣𝑖 − 𝑎𝑖 − 𝑗 𝑤𝑖𝑗ℎ𝑗 2 2𝜎𝑖 2  平均𝑎𝑖 − 𝑗 𝑤𝑖𝑗ℎ𝑗 ,分散𝜎𝑖 2 のガウス分布 𝜎𝑖 2 は入力の平均を0,分散を1に正規化したう えで𝜎𝑖 2 = 1に固定するのが一般的 隠れ層をガウシアンにすることも理論的には 可能だが学習が難しいため一般的でない 32
  31. 31. 二項ユニット 二項ユニット(binominal unit)  同一のパラメータを持つ複数の二値ユニットをK個 複製  二項ユニットの状態は複数のユニットの状態の和で 表される  期待値 Kp  分散 Kp(1-p)  ここでpは条件付確率 𝑝 𝑣𝑗 = 1 𝒉, 𝜽 = 𝜎(𝑏𝑗 + 𝑖 𝑤𝑖𝑗ℎ𝑗) 33
  32. 32. ReLU (Rectified Linear Unit) 二値ユニットの∞個の複製を考える ただし,各ユニットのバイアスにはオフセット-0.5,- 1.5,-2.5…をそれぞれ加える ReLUの状態はこのユニットの合計値 ReLUの状態の期待値 𝑖 ∞ 𝜎 𝑥 − 𝑖 + 0.5 ≈ ln(1 + 𝑒 𝑥) 正規化線形関数で近似 max(0, 𝑥 + 𝑁(0, 𝜎(𝑥)))  整数値を取るという制約は緩める  ノイズ付ReLUと呼ぶ 34 soft plus関数 これを微分すると logistic関数となる
  33. 33. 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. より
  34. 34. Deep Belief Network(DBN) deep learningの火付け役となったモ デル [Hinton et al. 2006. A Fast Learning Algorithm for Deep Belief Nets] 最上位層のみ無向エッジでほかはす べて有効エッジ 下位層から順にRBMで学習(pre- training) 学習した値を初期値に順伝播型の ニューラルネットとして学習(fine- tuning) このとき,最上位に出力層を追加す る(その重みはランダムに初期化) 36
  35. 35. Deep Boltzmann Machine(DBM) 層間が無向エッジで結ばれた構造 隠れユニット間に相互結合があるので RBMのように簡単に計算ができない 平均場近似(隠れ層どうしの独立性を 仮定して近似)で最適化を行う 38
  36. 36. Deep Boltzmann Machine(DBM) DBMも順伝播型ネットワークに転換できる そのとき,DBNの最上位層も入力として加えるという 拡張を行うことができる 39 Salakhutdinov, R., & Hinton, G. (2009). Deep Boltzmann Machines より
  37. 37. 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

×