ベイズ推論による機械学習⼊⾨	 第4章ベイズ推論による機械学習⼊⾨	 第4章
⾃⼰紹介⾃⼰紹介
⾃⼰紹介1⾃⼰紹介1
⼤学・⼤学院で経済学を学ぶ
DBマーケティングのパッケージを売っている会社に就職
はじめは分析コンサルだったのだが、気がついたらエンジニアに
昨年12⽉から今の職場で機械学習エンジニアとして働いている
⾃⼰紹介2⾃⼰紹介2
ネコが好き
猫の島の猫
本題本題
第4章	 混合モデルと近似推論第4章	 混合モデルと近似推論
4.1	混合モデルと事後分布の推論4.1	混合モデルと事後分布の推論
4.1	混合モデルと事後分布の推論4.1	混合モデルと事後分布の推論
4.1.1	混合モデルを使う理由
4.1.2	混合モデルのデータ⽣成過程
4.1.3	混合モデルの事後分布
4.1.1	混合モデルを使う理由4.1.1	混合モデルを使う理由
データが複数個のクラスタに属している。そのような構造を捉えたい
データに多峰性があるばあい
外れ値、⽋損値などの扱い
4.1.2	混合モデルの⽣成過程4.1.2	混合モデルの⽣成過程
混合モデルを構築する(=全変数の同時分布を書き下す)ために、データが⽣
成される過程を考える
図1.4のようなクラスタ構造を持つデータは次のように⽣成されると考えられる
1.	事前分布からクラスタの混合⽐率が⽣成される
2.	それぞれのクラスタに対する観測モデルのパラメータが事前分布から⽣成され
る
3.	 に対応するクラスタの割当 が⽐率 によって選ばれる
4.	 によって選択された 番⽬の確率分布からデータ が⽣成される
を隠れ変数とか潜在変数と呼ぶ
この(仮想的な)データ⽣成過程をもとに、確率分布を数式で定義していく
結果的にこの様になる
( , , Θ, ) = ( | , Θ) ( | ) (Θ) ( )
=
{
( | , Θ) ( | )
} {
( )
}
( )
∏
=1
∏
=1
:	xを⽣成する分布。
	がxが属するクラスタを表現している
たとえば、混合ガウス分布なら のようになる
( | , Θ)
= { , }
:	カテゴリを決定する分布( | )
:	観測モデルのハイパーパラメータの事前分布。観測モデルに対して共役
性が成り⽴つものを選ぶことが多い
ポアソン分布ならガンマ分布
ガウス分布ならガウス・ウィシャート分布
	:	カテゴリー分布のハイパーパラメータの事前分布。ディリクレ分布。
(Θ)
( )
4.1.3	混合モデルの事後分布4.1.3	混合モデルの事後分布
混合モデルの事後分布は次のようになる。
( , , | ) =
( , , , )
( )
=
( , , , )
∬ ( , , , )dΘd∑
=
( , , , )
( , )∑
共役事前分布をうまく選べば、積分は解析的に計算可能になる
それでも最後の和の計算は、 	のすべてのサンプルについて可能な組み合わせ
すべてについて⾜し合わせねばならない
⾮常に計算量が多くなるのでそのまま計算するわけには⾏かない
⼀般に近似的な⼿法を⽤いるのは次のような理由がある
1.	解析的に計算できない
2.	解析的には計算できるけれど、計算量が多い
3.	解析的に計算できるかもしれないけれどよくわからない
4.2	確率分布の近似⼿法4.2	確率分布の近似⼿法
4.2	確率分布の近似⼿法4.2	確率分布の近似⼿法
4.2.1	ギブスサンプリング
4.2.2	変分推論
サンプリング→求めたい事後分布に従うようなデータをたくさんサンプルす
る。サンプルしたデータの平均や分散で求めたい事後分布の性質を議論する
変分推論→求めたい事後分布を、計算しやすい関数で置き換える。適当な制約
を設けるとうまく計算できる。
4.2.1	ギブスサンプリング4.2.1	ギブスサンプリング
4.2.1	ギブスサンプリング4.2.1	ギブスサンプリング
MCMC(Markov	Chain	Monte	Calor)	の⼿法の⼀つ
直前にサンプルした値を使って、連鎖的にデータをサンプルする
ギブスサンプリングギブスサンプリング
次のような同時分布に従うデータをサンプルしたい。
ただし、同時分布を計算することは難しい
, , ∼ ( , , )  for  = 1, 2, …
(1)
1
( )
2
( )
3 1 2 3
ギブスサンプリングでは、すべての変数を同時にサンプルしない。
他の変数を仮ぎめしたまま、変数を⼀つずつサンプルする。
(⼀つずつサンプルすることは容易であるという仮定がある)
適当な初期値からスタートして、繰り返しサンプルを続ける
はじめのサンプルは初期値に依存するが、⼗分な数をサンプルすれば得られた
でーたは、求めたい同時分布に従う(ことが証明されている)
∼ ( | , )
( )
1 1
( −1)
2
( −1)
3
∼ ( | , )
( )
2 2
( )
1
( −1)
3
∼ ( | , )
( )
3 3
( )
1
( )
2
ギブスサンプリングのアルゴリズムを実装するためには、「他の変数を固定し
たときの事後分布」を求める必要がある
具体的には後ほど
ギブスサンプリングの変形ギブスサンプリングの変形
ブロッキングギブスサンプリングブロッキングギブスサンプリング
⼀つずつサンプリングするのではなく、⼀部の変数についてはまとめてサンプ
ルする⼿法
崩壊型ギブスサンプリング崩壊型ギブスサンプリング
⼀部の変数を積分除去してギブスサンプリングを実⾏するという⼿法
4.2.2	変分推論4.2.2	変分推論
4.2.2	変分推論4.2.2	変分推論
複雑な分布を単純な分布で近似することを考える
分布の近さを評価するためにKLダイバージェンスを考える
つまりKLダイバージェンスの最⼩化問題を考える
( , , ) = KL [ ( , , ) ‖ ( , , )] opt.  1 2 3 argmin 1 2 3 1 2 3
KLダイバージェンスは	 	のとき0になり最⼩
制約を設けずに上の最⼩化問題をとけば、 になる。
それでは意味がないので、 の表現に制約を設けて、その制約の中で最⼩化問
題をとく
() = ()
=opt
()
次のような制約を考える
つまり、 	が各変数についての関数の積で表現されるとする。	この条件を満たす
の中で、上のKLダイバージェンスを最⼩にするものを計算する
( , , ) ≈ ( ) ( ) ( )1 2 3 1 1 2 2 3 3
() ()
と がすでに与えられているとする。
についての最適化問題をとく
( )2 2 ( )3 3
( )1 1
の最適解は次のようなものである()1
( ) = argmi KL[ ( ) ( ) ( )][p( , , )]1,opt 1 n ( )q1
z1
q1 z1 q2 z2 q3 z3 z1 z2 z3
KL[ ( ) ( ) ( )][ ( , , )]1 1 2 2 3 3 1 2 3
= −⟨ln
( , , )1 2 3
( ) ( ) ( )1 1 2 2 3 3
⟩1,2,3
= −⟨⟨ln ( , , ) − ⟨ln ( ) − ⟨ln ( ) − ⟨ln ( ) ⟩1 2 3 ⟩2,3 1 1 ⟩2,3 2 2 ⟩2,3 3 3 ⟩2,3 1
= − + const.⟨⟨ln ( , , ) − ln ( )⟩1 2 3 ⟩2,3 1 1 1
= − + const.
⟨
ln
⟩
exp{⟨ln ( , , ) }1 2 3 ⟩2,3
( )1 1 1
= KL[ ( )][exp{⟨ln p( , , ) }] + const.q1 z1 z1 z2 z3 ⟩2,3
∼ ( | , )
( )
1 1
( −1)
2
( −1)
3
というわけで、⼀般的な解は以下の通り
同時分布の対数の期待値を 、 で取る
(この期待値の計算も容易でないことがあり、その場合はサンプリングなどで
近似的に計算する)
ln ( ) = +  const. 1 ⟨ln ( , , )⟩1 2 3 ( ) ( )2 3
( )2 2 ( )3 3
変分推論のアルゴリズム変分推論のアルゴリズム
1.	上の式をつかって、最適解を計算する(ガウス分布などの具体的な式を代⼊す
る。整理すると、パラメータの更新式が得られる)
2.	 を⼀旦仮で決める
3.	まず を更新する。更新した と を使って、 を更新する。次に を更新す
る。また を更新する。
4.	このように順次更新を繰り返していく
,2 3
1 1 3 2 3
1
いつまで更新すればいいのか?いつまで更新すればいいのか?
1.	予め決めた回数まで(1000回とか。精度と実⾏時間を鑑みて決めることになる
だろう)
2.	ELBOなどの評価値を計算し、更新が⼀定幅よりも⼩さくなったらやめる
ELBO	→	付録
逆のKLダイバージェンスを最⼩化するとどうなるのか
アルゴリズムの各ステップで期待値の計算が⼊る。この期待値⾃体⽤意には計
算できないことがあり、その場合はサンプリングなどを使って推定する
変分推論とギブスサンプリングは似ている変分推論とギブスサンプリングは似ている
変分推論とギブスサンプリングは似ている
⼀度にひとつのパラメータのみに着⽬し、ひとつずつ更新していく
はじめの発想は異なるものの、計算はかなり似ている
4.3	ポアソン混合モデルにおける推論4.3	ポアソン混合モデルにおける推論
4.3	 ポアソン混合モデルにおける推論4.3	 ポアソン混合モデルにおける推論
4.3.1	ポアソン混合モデル
4.3.2	ギブスサンプリング
4.3.3	変分推論
4.3.4	崩壊型ギブスサンプリング
4.3.5	簡易実験
割愛(ガウス混合モデルとほぼ同じなので)割愛(ガウス混合モデルとほぼ同じなので)
4.4	ガウス混合モデルにおける推論4.4	ガウス混合モデルにおける推論
4.4	ガウス混合モデルにおける推論4.4	ガウス混合モデルにおける推論
4.4.1	ガウス混合モデル
4.4.2	ギブスサンプリング
4.4.3	変分推論
4.4.4	崩壊型ギブスサンプリング
4.4.5	簡易実験
4.4.1	ガウス混合モデル4.4.1	ガウス混合モデル
モデルの説明モデルの説明
基本的に始めに説明した混合モデルと同じ
混合モデルの同時分布(再掲)
( , , Θ, ) = ( | , Θ) ( | ) (Θ) ( )
=
{
( | , Θ) ( | )
} {
( )
}
( )
∏
=1
∏
=1
観測モデル観測モデル
( | , )
= { , }
=  ( | , )
−1
潜在変数も含めた条件付き分布潜在変数も含めた条件付き分布
( | , , ) = 
∏
=1
( | , )
−1 ,
ハイパーパラメータの事前分布ハイパーパラメータの事前分布
ガウス分布の平均・分散の両⽅が未知のパターンなのでガウス・ウィシャーと
分布を採⽤する
( , ) =  ( | , )  ( | , )( )
−1
4.1.2	ギブスサンプリング4.1.2	ギブスサンプリング
ギブスサンプリングのアルゴリズムを導出する
ギブスサンプリングの⼀般的な形は以下の通り(再掲)
今、観測モデル・事前分布のそれぞれについて具体的な式の形を決めた
それをもとに、 	の具体的な形を導出し、計算できるように
する
∼ ( | , )
( )
1 1
( −1)
2
( −1)
3
∼ ( | , )
( )
2 2
( )
1
( −1)
3
∼ ( | , )
( )
3 3
( )
1
( )
2
( | , )1
( −1)
2
( −1)
3
いま関⼼のある事後分布は
したがって、(例えば) を計算する必要がある
ここでは、パラメータと潜在変数を分けてサンプリングする
つまり と の2つを求める(「混合分布では、潜
在変数とパラメータを分けてサンプルすると⼗分に簡単な確率分布が得られる
ことが知られています」(p.130))
( , , Λ, | )
( | , , Λ, )
( | , , Λ, ) ( , Λ, | , )
事後分布は基本的に同時分布に⽐例する( )
ので、まずは同時分布を整理する
( | , , Λ, ) ∝ ( , , , Λ, )
同時分布の式に、諸々代⼊すると以下のようになる
( , , , Λ, ) =
(
( | , ( | )
)
( | )
∏
=1
∏
=1
Λ
−1
)
,
( , | , , , )
∏
=1
Λ
対数をとる。この式を( )とする♣
ln ( , , , Λ, ) =
∑
=1
(
ln ( | , ) + ln Cat( | )
)
+ ln Dir( | )
∑
=1
, Λ
−1
+ ln ( , | , , , )
∑
=1
Λ
1.	1.	 のサンプリングのサンプリング
をサンプリングする
以外の変数 は⼀旦仮の値を⽤いる, Λ,
先ほどの( )から を含む部分( とする)のみ抜き出して、計算する( は
に定数を除いて⼀致する。 以外は観測済みという仮定があり、
を含まない項はすべて定数とみなせるからである)
♣ ⋆ ⋆
ln ( | , , Λ, )
(
ln ( | , ) + ln ( | )
)∑
=1
∑
=1
, Λ
−1
個々の要素は次⽤に計算できる。(要は の形になる)∗ ℎ + const∑ ,
ln N( | , )
∑
=1
, Λ
ln Cat( | )
=
{
− ( − ) + ln| |
}
+  c
∑
=1
,
1
2
( − )
⊤
1
2
= ln
∑
=1
,
まとめると次のようになる
この結果は がカテゴリ分布に従うことを⽰している
(⋆) =
{
− ( − ) + ln| | + ln
}
+ const.
∑
=1
,
1
2
( − )
⊤
1
2
具体的には次の通り
,
∼ Cat( | )
∝ exp(…)
2.	2.	 以外のサンプリング以外のサンプリング
以外をサンプリングする
は⼀旦仮の値を⽤いる
やるべきことは、先ほどと同じ。( )から関連する項⽬のみとってきて具体的な式の形
を計算する
♣
のサンプリングのサンプリング
に関連する箇所のみ抜きだす
この結果は、 がディリクレ分布に従うことを⽰している
ln Cat( | ) + ln Dir( | )
∑
=1
= ln + ( − 1) ln + const.
∑
=1
∑
=1
,
∑
=1
= ( + − 1) ln + const.
∑
=1
∑
=1
,
̂ 
∼ Dir( | )̂ 
= +
∑
=1
,
とと のサンプリングのサンプリング
と は分割できないので、同時分布を導出する
それぞれに関連する箇所を抜き出す(ガウス・ウィシャート分布の定義はp102
にあります)
Λ
Λ
(
ln N( | , ) + ln N( | , ( ) + ln W( | , W)
)∑
=1
∑
, Λ
−1
Λ )
−1
Λ
シグマの中⾝を計算する(つらい)
∑
,
(
− ( − ( − ) + ln det
)
1
2
) Λ
1
2
Λ
− ( − ( )( − ) + ln det
1
2
) Λ
1
2
Λ
+ ln det − ( ) + const.
− − 1
2
Λ
1
2
−1
Λ
掛け算を⼀旦ばらして、まとめ直す
−
1
2 (
( + )
)
+ ( + )
∑
, Λ
∑
Λ
− ln det + (( + + ) ) + const.
+ −∑ ,
2
Λ
−1
Λ
について「平⽅完成」する(頑張る)
ただし
−
1
2
( − ( )( − )̂ ) ̂ Λ ̂ 
+ ln det − (( + + − ) )
+ −∑ ,
2
Λ
1
2
−1 ̂  ̂  ̂  Λ
̂ 
̂ 
= +
∑
,
=
+∑
̂ 
1⾏⽬がガウス分布、2⾏⽬がウィシャーと分布の指数部分になっている
はガウス分布から、 はウィシャーと分布からサンプルすれば良いとわか
る(つかれた)
Λ
Λ
∼ ( | , ( )^ ^
Λ )
−1
∼ ( | , )Λ ^ ^
4.4.3	変分推論4.4.3	変分推論
4.4.3	変分推論4.4.3	変分推論
次のように近似する
( , , Λ, | ) ≈ ( ) ( , Λ) ( ),Λ
変分推論の公式(再掲)
これを使う。
ln ( ) = +  const. 1 ⟨ln ( , , )⟩1 2 3 ( ) ( )2 3
同時分布の対数の期待値が出てくる
以下は先程の式( )♣
ln ( , , , Λ, ) =
∑
=1
(
ln ( | , ) + ln ( | )
)
+ ln
∑
=1
, Λ
−1
+ ln ( , | , , , )
∑
=1
Λ
の導出の導出
と で期待値を取る。
を含まない項⽬は に回収されるので考えなくて良い
( )
( , Λ) ( )
const
∑(
⟨ln ( | , ) + ⟨ln ( | )
)∑
, Λ
−1
⟩ ( ,Λ) ⟩ ( )
=
{
− ⟨ ⟩ ( − ⟨ ⟩) + ln ⟨ ⟩ + ln⟨ ⟩
}∑ ∑
=1
,
1
2
( − ⟨ ⟩)
⊤ 1
2
∣∣ ∣∣
+ const.
この式は、 や が期待値に変わっただけで、ギブスサンプリングのときに出て
きた式と同じ。
はカテゴリ分布になる。
具体的なパラメータは などを計算しないとわからないが、解析的に計算で
きることはすぐあとにわかる
Λ
( )
⟨ ⟩
やや の導出の導出
要するに、ギブスサンプリングで求めた式を使って、期待値に置き換えれば良
い
( , Λ) ( )
4.4.4	崩壊型ギブスサンプリング4.4.4	崩壊型ギブスサンプリング
次のように、ハイパーパラメータを積分除去した分布からサンプルすることを考える
(ただし、以下の積分を直接計算するのではない)
( , ) =
∭
( , , , , )d d
がすでにサンプルされたとして、 をサンプルするアルゴリズムを考える∖
( | , , )∖ ∖ ∝ ( , , , )∖ ∖
= ( | , , ) ( | , ) ( | ) ( )∖ ∖ ∖ ∖ ∖ ∖
∝ ( | , , ) ( | )∖ ∖ ∖
は関係ないので無視
で、やはり関係ないので無視( と は共同
親にならず、条件付き独⽴が成り⽴つため。詳しくはグラフィカルモデルの節
で)
あるいは を と で条件つけられた の事後分布とみな
せば、上の式展開はベイズの定理である
( )∖
( | , ) = ( | )∖ ∖ ∖ ∖ ∖
( | , , )∖ ∖ ∖ ∖
1.	 であるが、 は結局ディリクレ分布
になる
2.	したがって、 はカテゴリ分布になる
( | ) = ∫ ( | ) ( | )∖ ∖
( | )∖
( | )∖
あとは が計算できればよい( | , , )∖ ∖
あらためて、周辺化の計算を書き下す。
( | , , ) =
∬
( | , , Λ) ( , Λ| , )d d∖ ∖ ∖ ∖
→	 と の事後分布。ガウス・ウィシャート分布になる
について のそれぞれのケースについて上の積分を
実⾏する
を無視すれば、精度・分散が未知の場合のガウス分布の予測分布になる
これば多次元スチューデント分布になる(第3章参照)
( , Λ| , )∖ ∖ Λ
= 1 for k = 1, 2, 3, …,
崩壊型ギブスサンプリングまとめ(崩壊型ギブスサンプリングまとめ( のサンプリングアルゴリズム)のサンプリングアルゴリズム)
1.	 はカテゴリ分布に従う。
2.	 から の場合まで、上の多次元スチューデント分布を計算する
3.	その結果を使って、 が従うカテゴリ分布のパラメタを計算する
4.	サンプルする
5.	 をサンプルする 	
オンラインでパラメタの更新ができます
= 1,1 = 1,
+1
4.4.5	簡易実験4.4.5	簡易実験
略
以上

ベイズ推論による機械学習入門 第4章