Upgrade to Pro
— share decks privately, control downloads, hide ads and more …
Speaker Deck
Sign up for free
Menu
Search
Features
All features
Private URLs
Password Protection
Custom URLS
Scheduled publishing
Remove Branding
Restrict embedding
Deck Collections
Notes
Features
All features
Private URLs
Password Protection
Custom URLS
Scheduled publishing
Remove Branding
Restrict embedding
Deck Collections
Notes
Explore
Featured decks
Featured speakers
Programming
Technology
Storyboards
Explore
Featured decks
Featured speakers
Programming
Technology
Storyboards
Pricing
Search
Sign in
Sign up for free
ディリクレ過程混合モデルによるクラスタリング
Search
eqs
October 08, 2018
Technology
760
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.5k
静的サイトジェネレータyachoのつかいかた
eqs
0
150
コンピュータビジョン勉強会
eqs
0
150
Hugoでサイト作りたい
eqs
0
160
Beamer Example
eqs
0
270
Example slide of `highlight` command
eqs
0
2k
Probability Distributions (PRML 2.3.1-2.3.7)
eqs
0
540
Convolutional Networks (Deep Learning, 9.1-9.4)
eqs
1
230
Other Decks in Technology
See All in Technology
アプリをもっと"iOSアプリっぽく"する小さな工夫 / Small Touches That Make Your App Feel More Like an iOS App
matsuji
1
830
AIオーケストレーションを活用した 開発ワークフローの設計と実践
bqnq
0
170
synctest時代のhttptest Go 1.27で変わるHTTPサーバテストの裏側 / go conference2026 synctest and httptest
budougumi0617
1
2.8k
なぜJMBC(Japan MCP Business Community)? MCPってどう活用できるの?
cdataj
0
110
AI時代の「技術的負債」の変質ー概念の終焉と再解釈、エージェントと共に向かう先
nwiizo
0
1.7k
作品が生態系になった ─ Mini Tokyo 3D から世界へ
nagix
0
180
現場で役立つ技術負債の効果的な返済方法
masuda220
PRO
1
780
Claude Codeを「使うほど育つ」AI秘書にするノウハウ
minorun365
PRO
6
1.3k
2026-09-10 【Snowflake World Tour Tokyo 2026】dbt Core と Snowflake で実現する多層的なデータガバナンス / Multi-Layered Data Governance Powered by dbt Core and Snowflake
civitaspo
0
380
AI時代のAPI品質を支えるガードレール / API Guardrails for API quality in the AI era
yokawasa
1
250
例外の正しい扱い方 そのエラー try-catchして大丈夫?
jinwatanabe
3
490
データ界隈LT祭 第1回LT登壇
taromatsui_cccmkhd
1
1.2k
Featured
See All Featured
Become a Pro
speakerdeck
PRO
31
6.2k
[RailsConf 2023 Opening Keynote] The Magic of Rails
eileencodes
31
10k
Digital Ethics as a Driver of Design Innovation
axbom
PRO
1
420
Context Engineering - Making Every Token Count
addyosmani
9
1.1k
The Curse of the Amulet
leimatthew05
2
14k
Ecommerce SEO: The Keys for Success Now & Beyond - #SERPConf2024
aleyda
1
2.1k
Leadership Guide Workshop - DevTernity 2021
reverentgeek
1
370
GitHub's CSS Performance
jonrohan
1033
470k
HU Berlin: Industrial-Strength Natural Language Processing with spaCy and Prodigy
inesmontani
PRO
0
700
HTML-Aware ERB: The Path to Reactive Rendering @ RubyCon 2026, Rimini, Italy
marcoroth
4
640
The Curious Case for Waylosing
cassininazir
1
500
Keith and Marios Guide to Fast Websites
keithpitt
413
23k
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