Interactive
k-means/GMM/EM可視化
k-means vs GMMタブでは、同じデータ・同じ初期重心からk-means(ハード割り当て)とGMM(ソフト割り当て、responsibility)を並走させます。 目的関数(SSE・対数尤度)が反復のたびに単調改善するというEMの収束原理を、実際の計算値で確認できます。初期化の効果タブでは、k-means++とランダム初期化をそれぞれ25回ずつ走らせ、最終的なクラスタ内二乗和(SSE)の分布を実測して比較できます。
同じ90点・同じ初期重心(k-means++で選択)から、k-means(ハード割り当て)とGMM(ソフト割り当て、responsibility加重)を並走させます。「次のステップ」で両方とも1反復(E→M)ずつ進みます。
反復 0
k-means(ハード割り当て)
SSE(クラスタ内二乗和)—
GMM(ソフト割り当て、responsibility)
対数尤度 log p(X)—
k-meansは各点を最も近い重心の色で塗りつぶす(0/1のハード割り当て)のに対し、GMMは3クラスタの色をresponsibilityで混ぜ合わせる(クラスタ境界の点は中間色になる)——記事の言う「k-meansは分散を0に飛ばしたGMMの特殊例」を色の違いとして体感できます。SSE(左)は反復のたびに減り続け、対数尤度(右)は反復のたびに増え続けます——どちらも一度も逆行しないことがグラフから確認できます。
すべてブラウザ内でk-means(Lloyd法)・GMMのEM・共分散行列の計算を実際に行っています。学習済みモデルは使っていません。
ここが分かる
- k-meansは各点を最も近い重心の色でハード(0/1)に塗るのに対し、GMMは3色をresponsibilityの重みで混ぜ合わせる——クラスタ境界の点が中間色になる様子を見れば、「k-meansは分散を0に飛ばしたGMMの特殊例」という記事の主張が色の違いとして体感できる。
- SSE(k-means)と対数尤度(GMM)は反復のたびに一度も逆行せず改善する——「次のステップ」を繰り返し押してスパークラインを伸ばすと、記事の言う「EMは下界を介して対数尤度を単調増加させる」ことを実際の数値の推移で確認できる。
- k-means++は外れクラスタを見落としにくい——5クラスタ+1つの外れクラスタというデータで50試行を比較すると、ランダム初期化は時々外れクラスタを取りこぼして悪い局所解(高いSSE)に落ちるのに対し、k-means++の試行は良いSSEに固まることが分布として見える。