続・わかりやすい パターン認識
第12章ディリクレ過程混合モデルによるクラスタリング
12.1 ディリクレ過程混合モデルとその学習法
自己紹介
• Twitter : @aich_08_
•所属組織 : 匿名知的集団ホクソエム(ピンク担当)
•職種 : コンサル
•趣味 : トレーニング,登山
⇒ 全然痩せない・・・・orz
2
ラテアートではなく, ただのカプチーノだよ。
これまでのおはなし
• 第11章では、分割の確率モデルの具体例として,
ホップの壺モデルと中華料理店過程(Chinese restaurant
process : CRP)を取り上げた.
• この2モデルの分割ルールは,
ディリクレ分布を無限次元に拡張することで導出できることを確認した.
・ 第12章では,クラスタ数が未知の場合のクラスタリング方法として,
ディリクレ過程混合モデルによるクラスタリングを紹介する.
・ ディリクレ過程混合モデルでは,クラスタ数 𝑐 はディリクレ過程により決定される.
3
これまでのおはなし(つづき)
表記のおさらい(p. 214)
パターン集合 : 𝐱 = {𝐱1, … , 𝐱𝑛}
パターン集合 𝐱 に対応するクラスタ集合 : 𝐬 = {𝑠1, … , 𝑠𝑛}
各クラスタに対するパラメータ : 𝜽 = {𝜽1, … , 𝜽𝑐}
4
ディリクレ過程混合モデルによる生成モデル
• ディリクレ過程混合モデルによる生成モデルは以下のように
記される.ここで,𝛼 は集中度パラメータ, 𝐺0(𝜽)は基底分布を表す.
5
CRPに基づくディリクレ過程混合モデル
• 中華料理店過程(Chinese Restaurant Process : CRP)によるディリクレ過程混合モデルの生成プロセスは以下のように記される.
• ここで、CPR(𝛼)は集中度パラメータ 𝛼 のCPRを、 𝛽は𝐺0 𝛉 ハイパーパラメーを表す.
6
生成モデルに対する学習
• いま、生成モデルからある観測パターン 𝐱 が得られたとする.
• 以下に示される事後分布を最大化することにより,クラスタ 𝐬 およびパラメータ 𝛉 を決定する.
■ 所属クラスタとパラメータを決定する場合
7
生成モデルに対する学習(つづき)
■ 所属クラスタのみを決定する場合
→ 𝐬 = {𝑠1, … , 𝑠𝑛} の可能なすべての組合せを評価するのは,その組合せが膨大ゆえ,直接求めるのは困難である(テキスト p.215, 問題 2)
⇒ ギブスサンプリング(A.5 参照)
8
この問題に対するギブスサンプリングの考え方
① 𝑛 個のパターンのうち,任意の1コ 𝐱𝑘を選択し,これを最後に入力されたパターンとみなす.
② 当該パターンの所属クラスタ 𝑠𝑘を未定とみなし,確率的に決定されるクラスタを,当該パターンの新たな所属クラスタとして更新する.
③ ①,②の操作を 𝑛 個すべてのパターンについて繰り返すことにより,確率分布𝑃(𝑠1, … , 𝑠𝑛|𝐱1, … , 𝐱𝑛, 𝛉) に従う 𝑠1, … , 𝑠𝑛 が得られる.
9
ディリクレ過程混合モデルにおける ギブスサンプリングの更新式の導出
10
• 更新式の導出に先立ち,𝐬 から 𝑠𝑘 を除いた集合 𝐬−𝑘および 𝐱 から 𝐱𝑘 を除いた集合 𝐱−𝑘を定義する.
ディリクレ過程混合モデルにおける ギブスサンプリングの更新式の導出(つづき)
• ギブスサンプリングにより 𝑠𝑘 を確率的に生成するためには,𝐱−𝑘,𝐬−𝑘,𝜽 が既知の下で 𝐱𝑘 が与えられたときに,𝑠𝑘 = 𝜔𝑖となる事後確率を計算すれば良い.
11
•所属クラスタとパラメータを決定する方法,式(11.5)の解法を示す.
• まず,この場合の更新式(12.10)の計算方法を整理する.
•右辺の第1項は,既存クラスタである場合 𝑠𝑘 = 𝜔𝑖 ,新規クラスタである場合 𝑠𝑘 = 𝜔𝑛𝑒𝑤 それぞれについて以下のように書き換えられる.
クラスタリング法 1 : 所属クラスタとそのパラメータの決定
12
•式(12.10)の右辺の第2項は,式(11.42)から以下で書き換えられる.
• ここで,𝑛𝑖′ は 𝑘 番目のパターンを除く,すべてのパターンのうち,クラ
スタ 𝜔𝑖 に所属するパターンの数を表す.
クラスタリング法 1 : 所属クラスタとそのパラメータの決定(つづき)
13
• 式(12.11),(12.12),(12.13)を式(12.10)に代入することにより,次式を得る.
⇒ パターン 𝐱𝑘 の所属クラスタを更新するためには,式(12.14)の上段を現時点のクラスタ総数 𝑐 に渡り計算し,下段の計算と合わせて正規化することにより,𝑠𝑘 = 𝜔𝑖 ,𝑠𝑘 = 𝜔𝑛𝑒𝑤 となる事後確率を各々計算する.そして,その結果を用いて 𝑠𝑘 の値を決定する.
クラスタリング法 1 : 所属クラスタとそのパラメータの決定(つづき)
14
•以上の操作により, 𝑠1, … , 𝑠𝑛 の値が決まれば,事前分布𝐺0(𝛉) およびクラスタ 𝜔𝑖 に所属するパターン対する尤度 𝑝(𝜽𝑖|{𝐱𝑘; 𝐱𝑘 ∈ 𝜔𝑖 })を用いて,ベイズの定理により次式を得,この事後分布に基づいて 𝑐 個のクラスタのパラメータ 𝜽𝑖(𝑖 = 1, … , 𝑛) を確率的に決定し,更新する.
クラスタリング法 1 : 所属クラスタとそのパラメータの決定(つづき)
15
•以上の操作(所属クラスタの更新,パラメータの更新)を繰り返し実行し,式(11.4)の事後分布が最大となったときの 𝐬, 𝛉 の値が最適解である.
クラスタリング法 1 : 所属クラスタとそのパラメータの決定(つづき)
16
クラスタリング法 1 のアルゴリズム
入力 : 𝑛 個の観測パターン 𝐱1, … , 𝐱𝑛
出力 : 各観測パターンの所属クラスタを表す潜在変数の値 𝑠1, … , 𝑠𝑛,
総クラスタ数 𝑐,
クラスタのパラメータ 𝜽1, … , 𝜽𝑐.
17
クラスタリング法 1 のアルゴリズム(つづき)
Step 1 : 初期設定
•潜在変数 𝑠1, … , 𝑠𝑛 を初期化する.
このときのクラスタ数を 𝑐 とし,クラスタ 𝜔𝑖 に所属する
パターンの数を 𝑛𝑖 とする(𝑖 = 1, … , 𝑐).
• クラスタパラメータ 𝜽1, … , 𝜽𝑐 を初期化する.
•事後確率の最大値 𝑃𝑚𝑎𝑥 ← 0 と初期化する.
18
クラスタリング法 1 のアルゴリズム(つづき)
Step 2 : 所属クラスタの更新
以下を𝑘 = 1, … , 𝑛に対して実行する.
• パターン 𝐱𝑘 の所属クラスタ 𝑠𝑘 ( = 𝜔𝑗 と仮定する)を更新するため, 𝐱𝑘 を現在の所属クラスタから除外し, 𝑛𝑗 ← 𝑛𝑗 − 1 とする.
• これにより 𝑛𝑗 = 0 となり,空きクラスタが発生した場合は,このからクラスタを除去すべく, 𝑐 ← 𝑐 − 1 とするとともに, 𝑗 以降のクラスタインデックスを全て一つ減らす.また,それに対応するパラメータのインデックスも更新する.
• 式(12.14) を用いて 𝑠𝑘 の値を確率的に決定する.具体的には, 𝑠𝑘 = 𝜔𝑖 𝑖 = 1, … , 𝑐 に 対して式(12.14)の右辺上段の式を計算し, 𝑠𝑘 = 𝜔𝑛𝑒𝑤 に対して下段の式を計算する.これら(𝑐 + 1)個の値の比の確率で 𝑠𝑘 を決定する.また, 𝑠𝑘 = 𝜔𝑛𝑒𝑤なら, 𝑛𝑐+1 ← 1とするとともに, 𝑐 ← 𝑐 + 1として総クラスタ数を更新する.
19
クラスタリング法 1 のアルゴリズム(つづき)
Step 3 : 各クラスタのパラメータの更新
• Step 2で得た 𝐬 = {𝑠1, … , 𝑠𝑛} の値に基いて,式(12.15)により,各クラスタのパラメータ 𝜽𝑖を確率的に決定し,更新する.
20
クラスタリング法 1 のアルゴリズム(つづき)
Step 4: 事後確率最大化
•現時点での 𝐬 = {𝑠1, … , 𝑠𝑛} ,および 𝜽1, … , 𝜽𝑐 の値を用いて式(11.4)により,事後確率 𝑣 を計算する.具体的には,ベイズの定理より次式(12.16)を計算すればよい. 𝑃(𝐬) は式(11.11)のイーウェンスの抽出公式で計算する.
21
クラスタリング法 1 のアルゴリズム(つづき)
Step 4: 事後確率最大化(つづき)
•以下の処理を行う.
(1) 𝑣 > 𝑃𝑚𝑎𝑥 なら,以下の更新を行い,
・ 𝑃𝑚𝑎𝑥 ← 𝑣
・ 𝐬 ← {𝑠1, … , 𝑠𝑛}
(2) それ以外なら,これまでの𝑃𝑚𝑎𝑥および 𝐬 をそのまま保持する.
22
クラスタリング法 1 のアルゴリズム(つづき)
Step 5: 終了判定
•以上の処理を繰り返し, 𝑃𝑚𝑎𝑥の更新されない状態が十分継続した場合,ギブスサンプリングの処理を打ち切り, 𝐬,𝜽,および現時点のクラスタ総数 𝑐 を出力して終了する.さもなければ,Step 2に戻る.
23
•所属クラスタのみを決定する方法,式(11.7)の解法を示す.
• まず、この場合の更新式(12.10)の計算方法を整理する.
•式(12.8),(12.9),(12.10)から 𝜽 を削除することにより次式を得る.
クラスタリング法 2 : 所属クラスタのみ決定
24
•式(12.17)右辺の第1項は,次式で計算できる.
• ここで,事後確率 𝑝(𝜽𝑖|𝐱−𝑘) はベイズの定理より次式となる.
クラスタリング法 2 : 所属クラスタのみ決定(つづき)
25
• ここで,𝐱−𝑘 のうち 𝜔𝑖 に所属しないパターンは 𝜽𝑖 に依存しないので,
•式(12.19)に代入すると,次式を得る.
クラスタリング法 2 : 所属クラスタのみ決定(つづき)
26
• 𝑠𝑘 = 𝜔𝑛𝑒𝑤 のとき,式(12.21)は次式になる.
•一方,更新式(12.17)の右辺の第2項 𝑃(𝑠𝑘|𝐬−𝑘) は ,式(12.13)により求まる.
クラスタリング法 2 : 所属クラスタのみ決定(つづき)
27
•以上を整理すると,次式を得る.
⇒ パターン 𝐱𝑘 の所属クラスタを更新するためには,式(12.23)の上段を現時点のクラスタ総数 𝑐 に渡り計算し,下段の計算と合わせて正規化することにより,𝑠𝑘 = 𝜔𝑖 ,𝑠𝑘 = 𝜔𝑛𝑒𝑤 となる事後確率を各々計算する.そして,その結果を用いて 𝑠𝑘 の値を決定する.
クラスタリング法 2 : 所属クラスタのみ決定(つづき)
28
クラスタリング法 2 のアルゴリズム
入力 : 𝑛 個の観測パターン 𝐱1, … , 𝐱𝑛
出力 : 各観測パターン所属クラスタを表す潜在変数の値 𝑠1, … , 𝑠𝑛,
総クラスタ数 𝑐
29
クラスタリング法 2 のアルゴリズム(つづき)
Step 1 : 初期設定
•潜在変数 𝑠1, … , 𝑠𝑛 を初期化する.
このときのクラスタ数を 𝑐 とし,クラスタ 𝜔𝑖 に所属する
パターンの数を 𝑛𝑖 とする(𝑖 = 1, … , 𝑐).
•事後確率の最大値 𝑃𝑚𝑎𝑥 ← 0 と初期化する.
30
クラスタリング法 2 のアルゴリズム(つづき)
Step 2 : 所属クラスタの更新
以下を𝑘 = 1, … , 𝑛に対して実行する.
• パターン 𝐱𝑘 の所属クラスタ 𝑠𝑘 ( = 𝜔𝑗 と仮定する)を更新するため, 𝐱𝑘 を現在の所属クラスタから除外し, 𝑛𝑗 ← 𝑛𝑗 − 1 とする.
• これにより 𝑛𝑗 = 0 となり,空きクラスタが発生した場合は,このからクラスタを除去すべく, 𝑐 ← 𝑐 − 1 とするとともに, 𝑗 以降のクラスタインデックスを全て一つ減らす.また,それに対応するパラメータのインデックスも更新する.
• 式(12.23) を用いて 𝑠𝑘 の値を確率的に決定する.具体的には, 𝑠𝑘 = 𝜔𝑖 𝑖 = 1, … , 𝑐 に 対して式(12.23)の右辺上段の式を計算し, 𝑠𝑘 = 𝜔𝑛𝑒𝑤 に対して下段の式を計算する.これら(𝑐 + 1)個の値の比の確率で 𝑠𝑘 を決定する.また, 𝑠𝑘 = 𝜔𝑛𝑒𝑤なら, 𝑛𝑐+1 ← 1とするとともに, 𝑐 ← 𝑐 + 1として総クラスタ数を更新する.
31
クラスタリング法 2 のアルゴリズム(つづき)
Step 3: 事後確率最大化
•現時点での 𝐬 = {𝑠1, … , 𝑠𝑛} の値を用いて式(11.6)により,事後確率 𝑣 を計算する.具体的には,ベイズの定理より次の式(12.24)を計算すればよい. 𝑃(𝐬) は式(11.11)のイーウェンスの抽出公式で計算する.
32
クラスタリング法 2 のアルゴリズム(つづき)
Step 3: 事後確率最大化(つづき)
•以下の処理を行う.
(1) 𝑣 > 𝑃𝑚𝑎𝑥 なら,以下の更新を行い,
・ 𝑃𝑚𝑎𝑥 ← 𝑣
・ 𝐬 ← {𝑠1, … , 𝑠𝑛}
(2) それ以外なら,これまでの𝑃𝑚𝑎𝑥および 𝐬 をそのまま保持する.
33
クラスタリング法 2 のアルゴリズム(つづき)
Step 4: 終了判定
•以上の処理を繰り返し, 𝑃𝑚𝑎𝑥の更新されない状態が十分継続した場合,ギブスサンプリングの処理を打ち切り, 𝐬 および現時点のクラスタ総数 𝑐 を出力して終了する.さもなければ,Step 2に戻る.
34
35
ご清聴ありがとうございました!!!