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
1
550
ディリクレ過程混合モデルによるクラスタリング
研究室でやった続・わかりやすいパターン認識勉強会の第12章発表資料
eqs
October 08, 2018
Tweet
Share
More Decks by eqs
See All by eqs
機械学習の基礎から理解する DeepLabCutの原理
eqs
1
5.6k
静的サイトジェネレータyachoのつかいかた
eqs
0
87
コンピュータビジョン勉強会
eqs
0
82
Hugoでサイト作りたい
eqs
0
81
Beamer Example
eqs
0
150
Example slide of `highlight` command
eqs
0
1.7k
Probability Distributions (PRML 2.3.1-2.3.7)
eqs
0
410
Convolutional Networks (Deep Learning, 9.1-9.4)
eqs
1
150
Other Decks in Technology
See All in Technology
利用終了したドメイン名の最強終活〜観測環境を育てて、分析・供養している件〜 / The Ultimate End-of-Life Preparation for Discontinued Domain Names
nttcom
1
120
レビューを増やしつつ 高評価維持するテクニック
tsuzuki817
1
480
Oracle Base Database Service 技術詳細
oracle4engineer
PRO
6
57k
データ資産をシームレスに伝達するためのイベント駆動型アーキテクチャ
kakehashi
PRO
2
470
現場の種を事業の芽にする - エンジニア主導のイノベーションを事業戦略に装着する方法 -
kzkmaeda
2
1.8k
現場で役立つAPIデザイン
nagix
32
11k
Larkご案内資料
customercloud
PRO
0
650
明日からできる!技術的負債の返済を加速するための実践ガイド~『ホットペッパービューティー』の事例をもとに~
recruitengineers
PRO
3
290
5分で紹介する生成AIエージェントとAmazon Bedrock Agents / 5-minutes introduction to generative AI agents and Amazon Bedrock Agents
hideakiaoyagi
0
230
表現を育てる
kiyou77
1
200
AndroidデバイスにFTPサーバを建立する
e10dokup
0
240
「海外登壇」という 選択肢を与えるために 〜Gophers EX
logica0419
0
640
Featured
See All Featured
ReactJS: Keep Simple. Everything can be a component!
pedronauck
666
120k
BBQ
matthewcrist
86
9.5k
Thoughts on Productivity
jonyablonski
69
4.5k
Visualization
eitanlees
146
15k
Performance Is Good for Brains [We Love Speed 2024]
tammyeverts
7
630
Visualizing Your Data: Incorporating Mongo into Loggly Infrastructure
mongodb
44
9.4k
The Myth of the Modular Monolith - Day 2 Keynote - Rails World 2024
eileencodes
21
2.5k
Chrome DevTools: State of the Union 2024 - Debugging React & Beyond
addyosmani
3
320
Git: the NoSQL Database
bkeepers
PRO
427
64k
The Language of Interfaces
destraynor
156
24k
Building a Scalable Design System with Sketch
lauravandoore
460
33k
Java REST API Framework Comparison - PWX 2021
mraible
28
8.4k
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