Diese Präsentation wurde erfolgreich gemeldet.
Wir verwenden Ihre LinkedIn Profilangaben und Informationen zu Ihren Aktivitäten, um Anzeigen zu personalisieren und Ihnen relevantere Inhalte anzuzeigen. Sie können Ihre Anzeigeneinstellungen jederzeit ändern.

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

17.468 Aufrufe

Veröffentlicht am

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

Veröffentlicht in: Ingenieurwesen
  • Als Erste(r) kommentieren

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

×