Upgrade to Pro
— share decks privately, control downloads, hide ads and more …
Speaker Deck
Features
Speaker Deck
PRO
Sign in
Sign up for free
Search
Search
ディリクレ過程混合モデルによるクラスタリング
Search
eqs
October 08, 2018
Technology
740
1
Share
Embed
Copy iframe code
Copy JS code
Copy link
Start on current slide
ディリクレ過程混合モデルによるクラスタリング
研究室でやった続・わかりやすいパターン認識勉強会の第12章発表資料
eqs
October 08, 2018
More Decks by eqs
See All by eqs
機械学習の基礎から理解する DeepLabCutの原理
eqs
1
8.4k
静的サイトジェネレータyachoのつかいかた
eqs
0
150
コンピュータビジョン勉強会
eqs
0
150
Hugoでサイト作りたい
eqs
0
150
Beamer Example
eqs
0
240
Example slide of `highlight` command
eqs
0
1.9k
Probability Distributions (PRML 2.3.1-2.3.7)
eqs
0
520
Convolutional Networks (Deep Learning, 9.1-9.4)
eqs
1
210
Other Decks in Technology
See All in Technology
ゼロをイチにする仕事が終わったあと
smasato
0
340
AI時代の EM への処方箋
staka121
PRO
0
140
非定型なドキュメントを効率よくリファクタする 〜えぇ!?仕様書27本の移行が1日で終わったって!?〜
subroh0508
1
340
Compose 新機能総まとめ / What's New in Jetpack Compose
yanzm
0
170
人を動かすのは時間ではなく、納得感 〜新任EMが入社3ヶ月、組織を2回変えた話〜
kakehashi
PRO
3
220
なぜ私たちのSREプラクティスはなかなか機能しないのか 〜システムより先に組織を見る〜 / Why our SRE practices aren't really working
vtryo
3
3.7k
インフラと開発の垣根を超えていき!〜元AWSインフラエンジニアがAWS開発で奮闘している話〜
hatahata021
1
170
ソニー銀行におけるビジネスアジリティ向上のためのクラウドシフト戦略
srenext
0
170
「最後に責任を取るのはチーム」— 人間のPRレビューを最小化してアップデートしたメンタルモデル
jnishime_dresscode
0
600
生成AIの活用/high_school2026
okana2ki
0
130
事業価値を⽣み出すSREへ SREが担うべき意思決定の5層
kenta_hi
2
3.6k
DMM.com 購入改善推進チーム におけるCodeRabbitを用いた レビューフロー改善の一例
ysknsid25
2
620
Featured
See All Featured
WENDY [Excerpt]
tessaabrams
11
38k
We Are The Robots
honzajavorek
0
270
Designing for Performance
lara
611
70k
We Have a Design System, Now What?
morganepeng
55
8.2k
A designer walks into a library…
pauljervisheath
211
24k
Skip the Path - Find Your Career Trail
mkilby
1
160
Writing Fast Ruby
sferik
630
63k
Why Our Code Smells
bkeepers
PRO
340
58k
"I'm Feeling Lucky" - Building Great Search Experiences for Today's Users (#IAC19)
danielanewman
230
23k
BBQ
matthewcrist
89
10k
Joys of Absence: A Defence of Solitary Play
codingconduct
1
410
GraphQLの誤解/rethinking-graphql
sonatard
75
12k
Transcript
ディリクレ過程混合モデルによるクラスタリング 続・わかりやすいパターン認識第 12 章 Satoshi Murashige October 8, 2018 Mathematical
Informatics Lab., NAIST
Table of Contents モチベーション:クラスタ数が未知のクラスタリング問題 問題 1: クラスタの割当てとパラメタを求めるアルゴリズムの導出 問題 1 の具体例:クラスタ数未知の
Gaussian Mixture Model によるクラス タリング 問題 2: クラスタの割当てのみを求めるアルゴリズムの導出 問題 2 の具体例:クラスタ数未知の Gaussian Mixture Model によるクラス タリング 2/34
モチベーション:クラスタ数が未 知のクラスタリング問題
モチベーション: クラスタ数が未知のクラスタリング問題を解きたい -10 -5 0 5 -10 -5 0 5
y1 3/34
生成モデル:観測パターンの生成過程をモデル化する 1 2 3 4 5 · · · -3
-2 -1 0 1 2 3 0.0 0.2 0.4 0.6 0.8 -3 -2 -1 0 1 2 3 0.0 0.1 0.2 0.3 0.4 -3 -2 -1 0 1 2 3 0.05 0.10 0.15 0.20 0.25 クラスタ 1: θ1 = (µ1 , Σ1 ) クラスタ 2: θ2 = (µ2 , Σ2 ) クラスタ 3: θ3 = (µ3 , Σ3 ) sn ∼ Categorical(s|π) x 1 x 2 x 3 x 4 x 5 xn ∼ N(x|µi, Σi) . . . . . . 4/34
クラスタリング問題の定式化 p(s, θ|x) = p(x, s, θ) p(x) = p(x|s,
θ)P(s)p(θ) ∑ s ∫ p(x|s, θ)P(s)p(θ)dθ (11.4) (ˆ s, ˆ θ) = argmax s,θ {p(s, θ|x)} (11.5) 1. 事前確率 P(s) をどのように決めるか? • クラスタ数が無限にあるので,工夫が必要 2. 事後確率 p(s, θ|x) をどのように最大化するか? • s のあらゆる組合せを考えるのは不可能 5/34
事前確率 P(s) はデータをクラスタに分割する方法の確率モデル クラスタリング CRP k 個目のパターン xk k 人目の客
総パターン数 n 来店客数 クラスタ ωi テーブル i クラスタ数 c 使用するテーブル数 クラスタ ωi のパターン数 ni テーブル i に座った人の数 6/34
クラスタ数未知のクラスタリング問題におけるデータの生成過程の 定式化 s 1 , · · · , sn|α
∼ CRP(α) (12.4) θi|β ∼ G 0 (θ) (12.5) xk|sk = ωi, θ ∼ p(x|θi) (12.6) 7/34
事後確率 p(s, θ|x), p(s|x) の最大化問題を解きたい (ˆ s, ˆ θ) =
argmax s,θ {p(s, θ|x)} (11.5) ˆ s = argmax s {p(s|x)} (11.7) アプローチ • あらゆる組合せの s を評価するのではなく,ランダムサンプリングし た s の中から p(s, θ|x) を最大化するものを選ぶ • ランダムサンプリングには Gibbs サンプリングを用いる 8/34
問題 1: クラスタの割当てとパラメ タを求めるアルゴリズムの導出
Gibbs サンプリング:確率分布 p(x) から乱数を生成する方法 • 確率変数 x ∈ Rd •
i 番目の成分を除いたベクトル x −i = (x 1 , · · · , xi−1 , xi+1 , · · · , xd)⊤ ∈ Rd−1 • 確率密度関数 p(x) に対して p(xi|x −i) を計算できる場合に有効 • 方針:d 個の成分のうち,d − 1 個を固定して残りの 1 つをサンプ リング 9/34
Gibbs サンプリングの例 テキスト P.305 図 A.4 10/34
事後確率最大化のアルゴリズムの概略 1. パターン x = {xk}n k=1 のクラスタ割当て s =
{sk}n k=1 を初期化する. 割当て s に基づいてクラスタのパラメタ θ = {θ}c i=1 を決定する. • 割当て s が決まっていればとりあえずパラメタ θ は計算できる 2. 割当て s を分布 p(s|x, θ) からサンプリングする • サンプリングには Gibbs サンプリングを使う 3. サンプリングした割当て s を基にパラメタの事後分布 p(θi|{xk; xk ∈ ωi}) を更新する 4. 事後確率 p(s, θ|x) ∝ P(s)p(θ)p(x|s, θ) を計算する. • 今までで一番大きい値であれば,その値と s を保存 5. 最大値が更新されなくなったら終了.そうでなければ 2. に戻る 11/34
やりたいこと: クラスタ割当て s を P(s|x, θ) からサンプリングしたい • Gibbs サンプリングを行うには
P(sk = ωi|xk, s −k, x −k, θ) がわかれば OK P(sk = ωi|xk, s −k, x −k, θ) = p(xk, sk = ωi|s −k, x −k, θ) p(xk|s −k, x −k, θ) (12.7) ∝ p(xk, sk = ωi|s −k, x −k, θ) (12.8) = p(xk|sk = ωi, x −k, θ)P(sk = ωi|s −k, x −k, θ) (12.9) = p(xk|sk = ωi, θ) 1 ⃝ P(sk = ωi|s −k) 2 ⃝ (12.10) 12/34
1 ⃝ p(xk|sk = ωi, θ) の計算 (i) ωi が既知のクラスタの場合
p(xk|sk = ωi, θ) = p(xk|θi) (12.11) (ii) ωi が新しいクラスタ ωnew の場合 • θnew は未定であり,ωnew に所属するパターン数は 0 • 事前分布 G0(θnew) で期待値をとる p(xk|sk = ωnew, θ) = ∫ p(xk|θnew)G0(θnew)dθnew (12.12) • この積分は G0(θ) を共役事前分布にとれば解析的に計算可能 13/34
2 ⃝ P(sk = ωi|s−k) の計算 • Dirichlet 分布から導出された CRP
の式を思い出す P(sn = ωi|s 1 , · · · , sn−1 ) = ni n − 1 + α (ωi ∈ Ω1 ) α n − 1 + α (ωi ∈ Ω0 ) (11.42) • s が交換可能であることを用いると次式が得られる P(sk|s −k) = n′ i n − 1 + α (sk = ωi のとき) α n − 1 + α (sk = ωnew のとき) (12.13) • n′ i は xk を除いた後,ωi に所属するパターン数 • n′ i = 0 となる場合はクラスタ自体を削除するので n′ i > 0 が保証される 14/34
1 ⃝ p(xk|sk = ωi, θ) と 2 ⃝ P(sk
= ωi|s−k) をまとめる P(sk = ωi|xk, s −k, x −k, θ) ∝ p(xk|sk = ωi, θ) 1 ⃝ P(sk = ωi|s −k) 2 ⃝ (12.10) = n′ i n − 1 + α · p(xk|θi) (sk = ωi のとき) α n − 1 + α · ∫ p(xk|θnew)G 0 (θnew)dθnew (sk = ωnew のとき) (12.14) あとは具体的な G 0 (θ) を与えれば計算を実行可能 15/34
Remark: 事後確率最大化のアルゴリズムの概略 (パラメタ θi の更新式がまだわからない) 1. パターン x = {xk}n
k=1 のクラスタ割当て s = {sk}n k=1 を初期化する. 割当て s に基づいてクラスタのパラメタ θ = {θ}c i=1 を決定する. • 割当て s が決まっていればとりあえずパラメタ θ は計算できる 2. 割当て s を分布 p(s|x, θ) からサンプリングする • サンプリングには Gibbs サンプリングを使う 3. サンプリングした割当て s を基にパラメタの事後分布 p(θi|{xk; xk ∈ ωi})を更新する 4. 事後確率 p(s, θ|x) ∝ P(s)p(θ)p(x|s, θ) を計算する. • 今までで一番大きい値であれば,その値と s を保存 5. 最大値が更新されなくなったら終了.そうでなければ 2. に戻る 16/34
パラメタ θi の更新式の導出 • 次式の計算を i = 1, · ·
· , c についてやる p(θi|{xk; xk ∈ ωi}) = p({xk; xk ∈ ωi}|θi) · G 0 (θi) p({xk; xk ∈ ωi}) = G 0 (θi) · ∏ xk∈ωi p(xk|θi) ∫ G 0 (θi) · ∏ xk∈ωi p(xk|θi)dθi (12.15) • ここも具体的な G 0 (θ) を与えれば計算を実行可能 17/34
問題 1 の具体例:クラスタ数未知 の Gaussian Mixture Model によ るクラスタリング
クラスタ数未知の Gaussian Mixture Model によるクラスタリング (クラスタリング法 1 の実験) • クラスタ
ωi の分布 p(xk|θi) = N(xk; µi, Λ−1 i ) (12.27) θi = (µi, Λ−1 i ) (12.28) • ノンパラメトリックベイズモデルでは,パラメタ θi は基底分布 G 0 (θ) に従うと仮定している • N(xk; µ, Λ−1) に対する,µ, Λ−1 の共役事前分布は正規–Wishart 分布: G 0 (θ) = G 0 (µ, Λ−1) = N(µ; µ0 , (βΛ)−1) · W(Λ; ν, S) (12.32) 18/34
基底分布 G0 (θ) を決めたので,サンプリングの式とパラメタの更新 式が具体的に書ける P(sk = ωi|xk, s−k, x−k,
θ) ∝ n′ i n − 1 + α · p(xk|θi) (sk = ωi のとき) α n − 1 + α · ∫ p(xk|θnew)G0(θnew)dθnew (sk = ωnew のとき) (12.14) p(θi|{xk; xk ∈ ωi}) = p({xk; xk ∈ ωi}|θi) · G0(θi) p({xk; xk ∈ ωi}) = G0(θi) · ∏ xk∈ωi p(xk|θi) ∫ G0(θi) · ∏ xk∈ωi p(xk|θi)dθi (12.15) 19/34
sk のサンプリングの式を導出する (積分の計算のみ) • G 0 (θ) を共役事前分布にしているので解析的に求まる ∫ p(xk|θnew)G
0 (θnew)dθnew = ( β (1 + β)π )d/2 · |Sb|(ν+1)/2 · Γ ( ν + 1 2 ) |S|ν/2 · Γ ( ν + 1 − d 2 ) (12.35) • Sb は次式で求められる S−1 b = S−1 + β 1 + β (xk − µ0 )(xk − µ0 )⊤ (12.36) 20/34
θi の更新式を導出する G 0 (θ) を共役事前分布にしているので事後分布は同じ分布族になる p(θi|{xk; xk ∈ ωi})
= N(µi; µc, Λ−1 c ) · W(Λi; νc, Sq) (12.37) S−1 q = S−1 + ∑ xk∈ωi (xk − ¯ x)(xk − ¯ x)⊤ + niβ ni + β (¯ x − µ0 )(¯ x − µ0 )⊤ (12.38) ¯ x = 1 ni ∑ xk∈ωi xk (12.39) µc = ni¯ x + βµ0 ni + β (12.40) Λc = (ni + β)Λi (12.41) νc = ν + ni (12.42) 21/34
アルゴリズム 1 を実行する 結果はテキスト P.270 図 12.1, 12.2 22/34
問題 2: クラスタの割当てのみを 求めるアルゴリズムの導出
Remark: 事後確率 p(s, θ|x), p(s|x) の最大化問題を解きたい (ˆ s, ˆ θ)
= argmax s,θ {p(s, θ|x)} (11.5) ˆ s = argmax s {p(s|x)} (11.7) アプローチ • あらゆる組合せの s を評価するのではなく,ランダムサンプリングし た s の中から p(s, θ|x) を最大化するものを選ぶ • ランダムサンプリングには Gibbs サンプリングを用いる 23/34
問題 1 との比較 • 事後確率最大化の方針は問題 1 と共通だが θ を周辺化する点が異なる •
周辺化のせいで s のサンプリングの式がめっちゃ変わる (条件付き独立にならない変数が出てくる) • θ の更新式がいらない 24/34
やりたいこと: クラスタ割当て s を P(s|x) からサンプリングしたい • Gibbs サンプリングを行うには P(sk
= ωi|xk, s −k, x −k) がわかれば OK P(sk = ωi|xk, s −k, x −k) = p(xk, sk = ωi|s −k, x −k) p(xk|s −k, x −k) ∝ p(xk, sk = ωi|s −k, x −k) = p(xk|sk = ωi, x −k)P(sk = ωi|s −k, x −k) = p(xk|sk = ωi, x −k) 1 ⃝ P(sk = ωi|s −k) 2 ⃝ (12.17) 25/34
1 ⃝ p(xk|sk = ωi, x−k) の計算 計算の方針 p(xk|sk =
ωi, x −k) を尤度 p(x −k|θi) と事前確率 G 0 (θi) だけの形にする (i) ωi が既知のクラスタの場合 • x−k から得られたパラメタの事後分布 p(θi|x−k) で期待値をとる p(xk|sk = ωi, xk) = ∫ p(xk|θi, x−k)p(θi|x−k)dθi = ∫ p(xk|θi)p(θi|x−k)dθi (12.18) • 事後分布 p(θi|x−k) を xk を観測したときの事前分布とみる感覚… 26/34
1 ⃝ p(xk|sk = ωi, x−k) の計算: (i) ωi が既知のクラスタの場合
事後分布 p(θi|x −k) は Bayes の定理より次式で書ける p(θi|x −k) = p(x −k|θi)G 0 (θi) p(xk) = p(x −k|θi)G 0 (θi) ∫ p(x −k|θi)G 0 (θi)dθi (12.19) ここで,x −k のうち ωi に所属しないものは θi に依存しないので, p(x −k|θi) = ∏ xj∈ωi, j̸=k p(xj|θi) · ∏ xj̸∈ωi, j̸=k p(xj) (12.20) (∵ xj ̸∈ ωi ⇒ p(xj|θi) = p(xj)) (12.20) を (12.19) に代入すると… 27/34
1 ⃝ p(xk|sk = ωi, x−k) の計算: (i) ωi が既知のクラスタの場合
p(x −k|θi) = ∏ xj∈ωi, j̸=k p(xj|θi) · ∏ xj̸∈ωi, j̸=k p(xj) (12.20) p(θi|x −k) = G 0 (θi) · ∏ xj∈ωi, j̸=k p(xj|θi) · ∏ xj̸∈ωi, j̸=k p(xj) ∏ xj̸∈ωi, j̸=k p(xj) · ∫ G 0 (θi) · ∏ xj∈ωi, j̸=k p(xj|θi)dθi = G 0 (θi) · ∏ xj∈ωi, j̸=k p(xj|θi) ∫ G 0 (θi) · ∏ xj∈ωi, j̸=k p(xj|θi)dθi (12.21) 28/34
1 ⃝ p(xk|sk = ωi, x−k) の計算 (ii) ωi が新しいクラスタ
ωnew の場合 • x−k から得られたパラメタの事後分布 p(θnew|x−k) で期待値をとる p(xk|sk = ωnew, xk) = ∫ p(xk|θnew)p(θnew|x−k)dθnew • (12.20) において,θnew に依存する xj が無い p(x−k|θi) = ∏ xj∈ωi, j̸=k p(xj|θi) · ∏ xj̸∈ωi, j̸=k p(xj) (12.20) • 事後分布の計算でめっちゃ約分できる p(θnew|x−k) = G0(θnew) ∫ G0(θnew)dθnew = G0(θnew) (12.22) • 結局,事前分布 G0(θnew) で期待値を計算することになる 29/34
2 ⃝ P(sk = ωi|s−k) の計算 • θ を周辺化する前と同じ式! P(sk|s
−k) = n′ i n − 1 + α (sk = ωi のとき) α n − 1 + α (sk = ωnew のとき) (12.22) • n′ i は xk を除いた後,ωi に所属するパターン数 • n′ i = 0 となる場合はクラスタ自体を削除するので n′ i > 0 が保証される 30/34
1 ⃝ p(xk|sk = ωi, x−k) と 2 ⃝ P(sk
= ωi|s−k) をまとめる P(sk = ωi|xk, s −k, x −k) ∝ n′ i n − 1 + α ∫ p(xk|θi)p(θi|x −k)dθi (sk = ωi のとき) α n − 1 + α ∫ p(xk|θnew)G 0 (θnew)dθnew (sk = ωnew のとき) (12.23) p(θi|x −k) = G 0 (θi) · ∏ xj∈ωi, j̸=k p(xj|θi) ∫ G 0 (θi) · ∏ xj∈ωi, j̸=k p(xj|θi)dθi (12.21) あとは具体的な G 0 (θ) を与えれば計算を実行可能… 31/34
問題 2 の具体例:クラスタ数未知 の Gaussian Mixture Model によ るクラスタリング
問題の設定は問題 1 と同じ P(sk = ωi|xk, s −k, x −k)
∝ n′ i n − 1 + α ∫ p(xk|θi)p(θi|x −k)dθi (sk = ωi のとき) α n − 1 + α ∫ p(xk|θnew)G 0 (θnew)dθnew (sk = ωnew のとき) (12.23) • 赤色で示した部分の積分を計算する必要がある • 下段は問題 1 で計算したものと同じなので上でだけ頑張れば OK 32/34
アルゴリズム 2 を実行する • 結果はテキスト P.273-274 図 12.3, 12.4 •
クラスタリングの過程でパラメタはわからないが,クラスタリング完 了後に最尤推定等で決定することは可能 33/34
Summary • クラスタ数が未知のクラスタリング問題をノンパラメトリックベイズ で解いた • Gibbs サンプリングの式とパラメタの更新式の導出が肝 • 条件付き独立性の扱いに注意 •
周辺化の計算により観測変数や潜在変数間の依存関係が生まれる • http://machine-learning.hatenablog.com/entry/2016/02/10/184755 • http://machine-learning.hatenablog.com/entry/2016/11/03/205317#f-0c267b1e 34/34