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
510
Convolutional Networks (Deep Learning, 9.1-9.4)
eqs
1
210
Other Decks in Technology
See All in Technology
AI時代のコスト管理を考えよう〜明日から使える実践AWSノウハウ~
yoshimi0227
0
280
LayerXにおけるセキュリティ管理の現在地と次の一手
tosho
0
240
現地で盛り上がった WWDC26 Keynote
zozotech
PRO
1
260
[チョークトーク資料]AWS DevOps Agent を使いこなす / AWS Dev Ops Agent Chalk Talk AWS Summit Japan 2026
kinunori
3
550
iAEONの段階的リアーキテクト戦略 / iAEON's_Gradual_Re-architecture_Strategy
aeonpeople
0
230
生成 AI 実践ガイド (概略版) AIガバナンス編
asei
0
110
AWS Security Agent といっしょに脅威モデリングをやってみよう
amarelo_n24
1
170
「勝手に広まる」人気 AI エージェントを爆速で作ろう!(AWS Summit Japan 2026講演資料)
minorun365
PRO
7
1.9k
AWS Security Hub CSPMの成功・失敗体験
cmusudakeisuke
0
250
GitHub Copilot app最速の発信の裏側
tomokusaba
1
180
【Cyber-sec+】経営層を"動かす"ための考え方
hssh2_bin
0
190
失敗を資産に変えるClaude Code
shinyasaita
0
720
Featured
See All Featured
Understanding Cognitive Biases in Performance Measurement
bluesmoon
32
2.9k
RailsConf & Balkan Ruby 2019: The Past, Present, and Future of Rails at GitHub
eileencodes
141
35k
Thoughts on Productivity
jonyablonski
76
5.2k
16th Malabo Montpellier Forum Presentation
akademiya2063
PRO
0
150
BBQ
matthewcrist
89
10k
Learning to Love Humans: Emotional Interface Design
aarron
275
41k
How GitHub (no longer) Works
holman
316
150k
Are puppies a ranking factor?
jonoalderson
1
3.6k
Marketing to machines
jonoalderson
1
5.5k
Designing for humans not robots
tammielis
254
26k
The Pragmatic Product Professional
lauravandoore
37
7.3k
The Illustrated Guide to Node.js - THAT Conference 2024
reverentgeek
1
390
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