TL

k-means・GMMとEMアルゴリズムの収束原理

なぜEMは反復のたびに必ず良くなるのか。混合ガウスの潜在変数モデルからEステップとMステップを導出し、対数尤度が単調増加する仕組みと、k-meansがその特殊例である理由まで腑に落ちます。

応用クラスタリングGMMEMアルゴリズムk-means潜在変数モデル最終更新: 2026-06-21
TL;DR要点だけ先に
  • 1.GMMは「各点がどのガウス成分から生まれたか」を潜在変数 z とする確率モデル。z が分からないので尤度を直接最大化できず、EMで近似事後 responsibility を介して反復的に解く。
  • 2.Eステップで responsibility γ を計算し、Mステップでパラメータを更新する。下界 Q を介して対数尤度が反復ごとに単調増加することが保証され、これがEMの収束原理。
  • 3.k-meansは「分散を 0 に飛ばし、responsibility を 0/1 のハード割り当てに退化させたGMM」。同じEMの骨格で、初期値に弱い弱点も k-means++ で緩和する。

ハードクラスタリングとソフトクラスタリング

クラスタリングは正解ラベルのない 教師なし学習 の代表で、データを似たもの同士のグループに分けます。割り当て方は二つに分かれます。ハードクラスタリングは各点をちょうど一つのクラスタへ排他的に割り当てます(k-means が典型)。ソフトクラスタリングは「クラスタ1に 0.7、クラスタ2に 0.3」のような所属確率を与えます(混合ガウスモデル=GMM が典型)。

二つのクラスタの中間にある点を、ハードは無理に片方へ押し込みますが、ソフトは「どちらとも言い切れない」不確実性を数値のまま保持します。GMM のこの所属確率を responsibility(負担率) と呼び、EM アルゴリズムの心臓部になります。

GMM:混合ガウスの潜在変数モデル

GMM はデータが K 個のガウス分布の重み付き和から生成されたと仮定します。観測点 x の密度は次の混合分布です。

p(x) = Σ_{k=1..K} π_k · N(x | μ_k, Σ_k)
       π_k ≥ 0,  Σ_k π_k = 1

π_k は混合係数(各成分の事前の選ばれやすさ)、N(x | μ_k, Σ_k) は平均 μ_k・共分散 Σ_k のガウス密度です。鍵になるのが潜在変数 z。各点 x_n には「どの成分から生まれたか」を表す one-hot ベクトル z_n(成分 k なら z_nk = 1)が裏に存在すると考えます。生成の流れは、まず z_nπ に従って引いて使うガウスを決め、次にその成分のガウスから x_n を引く、というものです。

p(z_nk = 1) = π_k
p(x_n | z_nk = 1) = N(x_n | μ_k, Σ_k)

もし z が観測できていれば、成分ごとに点を集めて平均・分散を計算するだけで済みます。問題は z が見えないこと。z を周辺化して消した対数尤度を直接最大化しようとすると、

log p(X) = Σ_n log( Σ_k π_k · N(x_n | μ_k, Σ_k) )

log の中に Σ_k の和が入り込み、各成分のパラメータが和の中で絡み合うため、∂/∂μ_k = 0 を解いても閉じた解になりません。見えない z が尤度最大化を直接解けなくしている——ここが EM の出発点です。

なぜ和の中の log が難しいのか

ガウス1個なら log N(...) の中で logexp が打ち消し合い、最尤推定は標本平均・標本分散という閉じた解になります。混合では log Σ_k (...) となり logexp の和の外に出るため、この打ち消しが起きません。EM は「z が分かっていれば閉じた解になる」という構造を、z の期待値で埋めて反復的に取り戻す方法だと捉えると本質が見えます。

EMアルゴリズム:E/Mステップの導出

EM は「z の事後分布を埋める E ステップ」と「埋めた z のもとでパラメータを更新する M ステップ」を交互に回します。

Eステップは、現在のパラメータのもとで各点の responsibility を計算します。これは z_nk = 1 の事後確率で、ベイズの定理そのものです。

γ_nk = p(z_nk = 1 | x_n)
     = π_k · N(x_n | μ_k, Σ_k) / Σ_j π_j · N(x_n | μ_j, Σ_j)

分子はその成分が x_n を説明する尤もらしさ、分母は全成分での正規化で、γ_nk は「点 n がクラスタ k にどれだけ所属するか」を表し Σ_k γ_nk = 1 を満たします。

Mステップは、この γ を重みとした重み付き最尤推定です。各点が γ_nk の割合だけ成分 k に属するソフトカウントとみなして更新します。

N_k = Σ_n γ_nk                                (成分 k の実効的な点数)
μ_k = (1/N_k) Σ_n γ_nk · x_n                  (responsibility 加重平均)
Σ_k = (1/N_k) Σ_n γ_nk · (x_n − μ_k)(x_n − μ_k)ᵀ
π_k = N_k / N                                (N は総点数)

形は通常のガウス最尤推定と同じで、違いは各点が 0/1 ではなく γ_nk ∈ [0,1] の重みで効く点だけです。E と M を交互に繰り返すと、対数尤度は反復のたびに改善していきます。

# GMM の EM(1反復)
# Eステップ:responsibility を計算
for n in range(N):
    dens = [pi[k] * gaussian(x[n], mu[k], Sigma[k]) for k in range(K)]
    gamma[n] = dens / sum(dens)        # 正規化して Σ_k = 1

# Mステップ:γ を重みにパラメータを更新
Nk = gamma.sum(axis=0)                  # 各成分の実効点数
for k in range(K):
    mu[k]    = (gamma[:, k] @ X) / Nk[k]
    Sigma[k] = weighted_cov(X, mu[k], gamma[:, k]) / Nk[k]
    pi[k]    = Nk[k] / N

なぜ対数尤度は単調増加するのか

EM の収束保証の核は、対数尤度の下界を作って押し上げるという変分推論の発想です。任意の分布 q(z) を使い、対数尤度を分解します。

log p(X | θ) = L(q, θ) + KL( q(z) ‖ p(z | X, θ) )
  L(q, θ) = Σ_z q(z) · log( p(X, z | θ) / q(z) )     ← 下界

KL ダイバージェンスは常に 0 以上なので、L(q, θ)log p(X | θ) の下界です。同じ下界の発想は VAE の ELBO と完全に共通で、EM はその離散・厳密版にあたります。ここで二つのステップを下界の言葉で読み替えると、単調増加が見えてきます。

ステップ何を固定し何を動かすか下界への効果
Eステップθ を固定し q を最適化q = p(z|X,θ) と選ぶと KL = 0 になり、下界 L が log p(X|θ) に等しくなる(下界がてっぺんに接する)
Mステップq を固定し θ を最大化L(q, θ) を θ について最大化。L が増えるので log p も少なくとも同じだけ増える

論理を順に追います。Eステップで q = p(z | X, θ_old) と選ぶと KL が 0 になり、下界が現在の対数尤度に接します(L = log p)。続くMステップで L(q, θ)θ について最大化すると、θ_new での下界は θ_old 以上です。新しい θ_new では KL が再び 0 以上に開くだけなので、

log p(X | θ_new) ≥ L(q, θ_new) ≥ L(q, θ_old) = log p(X | θ_old)

つまり反復ごとに対数尤度は決して減らない。これが EM の収束原理です。単調増加する数列は、上に有界でありさえすれば必ずある値に収束します(対数尤度の値そのものではなく、その収束を保証するのは単調性のほうです)。ただし GMM では密度値が 1 を超えうるため対数尤度は本質的には上に有界でなく、後述の特異点さえ避ければ実用上は停留点へ収束します。

単調増加は「大域最適への収束」ではない

EM が保証するのは対数尤度が下がらないことと、停留点(多くは局所最大)への収束だけで、大域最適は保証しません。尤度は複数の山を持つ非凸関数で、初期値次第で異なる局所解に落ちます。実務では初期値を変えて複数回回し、最も尤度の高い解を採るのが定石です。また成分の Σ_k が一点に潰れると尤度が発散する特異点もあり、共分散に下限を入れる正則化で防ぎます。

k-means は GMM の特殊例

k-means は一見まったく別の手法に見えますが、GMM を極限まで単純化したものです。次の制約を置きます。(1) 全成分の共分散を等方かつ等しい Σ_k = ε·I に固定、(2) 混合係数を一律 π_k = 1/K に固定、(3) ε → 0 の極限を取る。

このとき responsibility を見ると、ε → 0 でガウスが鋭く尖り、各点に最も近い中心の γ だけが 1、残りが 0 に飛びます。ソフト割り当てが 0/1 のハード割り当てに退化するのです。

要素GMM(ソフト)k-means(ハード極限)
割り当てresponsibility γ_nk ∈ [0,1]最近傍中心へ 0/1 の排他割り当て
Eステップベイズで γ を計算各点を最も近い重心に割り当て
Mステップγ 加重で μ, Σ, π を更新各クラスタの単純平均で重心を更新
共分散Σ_k を学習ε·I に固定(球状・等サイズを仮定)
目的関数対数尤度を最大化クラスタ内二乗和(SSE)を最小化

k-means の二つのステップ——「各点を最近傍重心へ割り当て」「重心を所属点の平均で更新」——は、まさに退化した E ステップと M ステップです。だから k-means も反復ごとに目的関数(クラスタ内二乗和)が単調に減り、有限ステップで収束します。EM の単調性の特殊例にほかなりません。逆に、k-means が球状で等サイズのクラスタを暗黙に仮定し細長い分布や密度差に弱いのは、共分散を ε·I に固定したことの直接の帰結です。

初期化が結果を決める:k-means++

EM も k-means も非凸な目的関数を解くため、初期値が最終解の質を大きく左右します。k-means の素朴な初期化(中心を一様ランダムに選ぶ)は、たまたま近い点ばかり選ぶと貧弱な局所解に落ちます。これを確率的に改善するのが k-means++ です。

1. 最初の中心 c_1 をデータ点から一様ランダムに1つ選ぶ
2. 残りの各中心は、既存中心までの最短距離 D(x)^2 に比例する確率で点を選ぶ
   (D(x) = 既存のどの中心からも遠い点ほど選ばれやすい)
3. K 個の中心が揃うまで 2 を繰り返す
4. 以降は通常の k-means(Lloyd 法)を回す

既存の中心から遠い点ほど次に選ばれやすくすることで、初期中心が空間に散らばり、クラスタを取りこぼしにくくなります。k-means++ は期待値で最適 SSE の O(log K) 倍以内という近似保証も持ちます。GMM の EM でも、まず k-means++ で重心を決め、それを各ガウスの初期平均にする初期化が広く使われます。

k の決め方とEMの実務

クラスタ数 K 自体は EM も k-means も最適化してくれません。エルボー法(SSE の減り方の折れ曲がり)やシルエット係数、GMM なら BIC・AIC(尤度と情報量規準 の罰則付き尤度)で外側から選びます。EM は初期値依存と局所解の問題を常に抱えるため、複数初期値での再試行(n_init)と、共分散の正則化はほぼ必須の実務作法です。

まとめ

GMM・k-means・EM は一本の論理でつながっています。GMM は「各点がどの成分から生まれたか」を潜在変数とする確率モデルで、その z が見えないため尤度を直接解けません。EM は responsibility を埋める E ステップとパラメータを更新する M ステップを交互に回し、下界を介して対数尤度を単調増加させます。k-means はこの GMM の分散を 0 に飛ばしたハード割り当ての特殊例で、同じ EM の骨格と初期値依存の弱点を持ち、それを k-means++ が緩和します。「見えない潜在変数を期待値で埋め、下界を押し上げて尤度を上げる」という EM の発想は、VAE や隠れマルコフモデルなど潜在変数モデル全般を貫く普遍的な道具です。

AI/機械学習 Article

k-means・GMMとEMアルゴリズムの収束原理を実務で読む

TL;DRは入口です。実際に選ぶ・使う段階では、何を解決するか、何と比較するか、導入後にどこで詰まるかまで見る必要があります。

解決すること

クラスタリング

比較で見る軸

難易度: advanced / カテゴリ: AI/機械学習 / タグ数: 5

導入後に効く点

Eステップで responsibility γ を計算し、Mステップでパラメータを更新する。下界 Q を介して対数尤度が反復ごとに単調増加することが保証され、これがEMの収束原理。

先に潰すリスク

用語だけ覚えても、設計・実装・運用でどこに効くかを確認しないと判断を誤る。

数字・仕様の読み方
難易度
advanced
カテゴリ
AI/機械学習
タグ数
5

判断チェックリスト

  • 自社の用途が「クラスタリング / GMM」に近いか確認する。
  • 強みである「GMMは「各点がどのガウス成分から生まれたか」を潜在変数 z とする確率モデル。z が分からないので尤度を直接最大化できず、EMで近似事後 responsibility を介して反復的に解く。」が本当に評価軸になるか確認する。
  • 注意点の「用語だけ覚えても、設計・実装・運用でどこに効くかを確認しないと判断を誤る。」を運用で吸収できるか確認する。
  • 公開値や仕様値は、対象プラン・対象機種・対象リージョンまで確認する。
  • 既存システム、ID、ネットワーク、監視、バックアップとの接続方法を先に洗い出す。
  • 小さく試してから、本番移行、権限設計、障害時手順、コスト監視を決める。

次に確認する観点

クラスタリングGMMEMアルゴリズムk-means潜在変数モデルクラスタリングGMMEMアルゴリズム
参考: 公式情報