狠狠撸

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

More Related Content

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