混合分布
Mixture Distribution ・ こんごうぶんぷ
複数の分布を重ね合わせた分布。集団に潜む部分集団をモデル化する
✦ 30秒で試す — 航海ふたこぶの山は、2つの集団が混ざった跡かもしれない全体の中央値は、どこに来る?予想してみる概要
混合分布は、複数の確率分布を重み付きで足し合わせた分布です。たとえばあるサービスの利用時間のヒストグラムを描いたら、山が2つある形(二峰性)だったとします。1つの分布ではこの形を表せませんが、「ライトユーザーの分布」と「ヘビーユーザーの分布」を6:4で混ぜた分布と考えれば自然に説明できます。混合分布は、このように「実は複数の部分集団(サブグループ)が混ざっているデータ」をモデル化する道具です。
生成の仕組みとして読むと分かりやすい分布です。まず重み(混合比率)に従ってどの成分に属するかをくじ引きで決め、次に選ばれた成分の分布から値を1つ生成する — この2段階の手続きが混合分布の定義そのものです。どの成分から来たかは観測されない「隠れた変数」であり、見えるのは混ざった後の値だけ、という点がこのモデルの核心です。
成分に正規分布を使ったものは混合ガウスモデル(GMM)と呼ばれ、クラスタリング・異常検知・音声認識など機械学習の広い場面で使われる、混合分布の代表選手です。
なぜ生まれたか
きっかけは19世紀末の生物学のデータでした。統計学者カール・ピアソンは、ナポリ湾のカニの甲羅の計測データの度数分布が正規分布からずれて非対称になっていることに気づき、「これは実は2つの種(あるいは進化しつつある2集団)が混ざっているのではないか」と考えました。1894年、彼は観測された分布を2つの正規分布の混合として分解する計算に挑み、これが混合分布の推定の最初の仕事になりました。目に見える1つの分布の裏に、見えない複数の集団を想定する — という発想の転換です。
以後この問題設定は「データからラベルなしで部分集団を見つけたい」というあらゆる場面に現れます。顧客データにセグメントのラベルは付いていませんし、音声データに「誰の声か」は書かれていません。単一の分布を当てはめると平均もばらつきも「どの集団のものでもない中途半端な値」になってしまう。混ざっていることをモデルに正直に組み込んだ混合分布は、この課題への正面からの答えです。ただしピアソンの方法(モーメント法で9次方程式を解く)は手計算では困難を極め、実用になったのは、1977年にデンプスター・レアード・ルービンがEMアルゴリズムとして一般的な形にまとめた推定法と、計算機が揃ってからでした。
詳細
成分の重ね合わせが作る形
混合分布の密度は、各成分の密度を混合比率で重み付けした和です。比率は合計1の確率で、「無作為に1人選んだときその人が成分kに属する確率」を表します。成分同士が離れていれば全体の分布は峰が複数あるマルチモーダルな形になり、近ければ峰は1つに融合して、非対称な形や裾の重い形になります。等分散・等重みの2つの正規分布なら、平均の差が標準偏差の2倍を下回ると峰は1つに融合します。つまり混合分布は多峰性だけでなく、単一の分布では出せない歪度や裾の重さを柔軟に表現する道具でもあり、「峰が1つだから集団も1つ」とは言えません。
図の谷のあたりに注目すると、混合分布の重要な教訓が見えます。全体の平均はちょうど2つの峰の間 — つまりデータがほとんど居ないあたり — に落ちることがあり、代表値としての平均が集団の誰も代表しなくなるのです。探索的データ分析でヒストグラムの峰の数を確かめる習慣は、この罠を避けるための第一歩でもあります。
所属確率 — ベイズで「どちらの集団か」を逆算する
観測値が得られたとき、「この値はどの成分から来たのか」は直接は分かりませんが、確率としてなら逆算できます。条件付き確率の考え方で、「成分kが選ばれ、かつこの値が出る」確率を全成分ぶん比べればよいのです(これはベイズの定理の適用そのものです)。この所属確率(負担率と呼ばれます)は、たとえば「利用時間8時間のこのユーザーは97%の確率でヘビーユーザー群」といったソフトな分類を与えます。峰から離れた点はほぼ確実にどちらかに属し、谷のあたりの点は五分五分になります。
各点を最も確率の高い成分に割り当てれば、GMMはクラスタリング手法になります。距離だけで硬く分けるk-means法と違い、クラスタごとの広がりや向き(多次元では多変量正規分布の共分散)まで考慮した柔らかい分類ができるのが持ち味です。
EMアルゴリズム — 鶏と卵を交互に解く
混合分布のパラメータ(各成分の平均・分散・比率)は、ふつう最尤推定で求めます。ところが尤度を直接最大化しようとすると鶏と卵の構造にぶつかります。各点の所属が分かれば成分ごとの平均やばらつきは簡単に計算できる。逆に成分のパラメータが分かれば所属確率は計算できる。しかしどちらも分からない — この行き詰まりを、両者を交互に計算して解くのがEMアルゴリズムです。
Eステップ(Expectation)で所属確率を見積もり、Mステップ(Maximization)でその所属確率を重みにして平均・分散・比率を計算し直す。この往復を繰り返すと、データへの当てはまり(尤度)が一歩ごとに下がらずに改善し、やがて止まります。ピアソンを苦しめた計算が、今では数行のコードで回る反復手続きになりました。
下の部品では、2つの山を自分の手でデータに合わせることも、EMに任せることもできます。頂上のつまみで平均と重み、肩のつまみで幅を動かし、「EM を1歩」を押して、所属確率(粒の色)の塗り直しと成分の移動が交互に起きる様子を見てください。「近い2集団」では、峰は1つなのに成分が2つに分かれることも確かめられます。
白い線(2つの山の和)をヒストグラムに重ねるゲームです。頂上のつまみで位置と重み、肩のつまみで幅を動かすか、「EM を1歩」を押してください。
灰色の棒 = データのヒストグラム。色の山 = 2つの成分(重み付き)、白い線 = その和(混合分布)。下の粒 = 各データ点(色 = どちらの成分から来たらしいか)
実務での使いどころと落とし穴
応用は幅広く、顧客セグメンテーション、話者識別(人ごとの声の特徴をGMMで表す)、画像の背景と前景の分離、そして「正常データの分布をGMMで学習し、どの成分から見ても確率が低い点を異常とみなす」異常検知などが定番です。外れ値の扱いに敏感な単一分布モデルの代わりに、外れ値専用の裾の広い成分を1つ足しておく、というロバスト化の技もあります。
一方で落とし穴もはっきりしています。第一に成分数は自動では決まらず、増やすほど当てはまりは必ず良くなるため、情報量規準(AICやBIC)などで複雑さと当てはまりのバランスを取る必要があります。第二にEMは初期値次第で局所解(そこそこ良いが最良ではない答え)に落ちるため、初期値を変えて複数回走らせるのが定石です。
第三に、混合分布の尤度には特異点があります。ある成分の平均をデータ点の1つにぴったり重ね、その成分の分散を0に近づけると、その点での密度が無限に大きくなり、尤度も際限なく大きくなってしまうのです。つまり「尤度が最大の解」は、1点に張り付いた無意味な成分という退化した答えになりえます。実装では分散に下限を設ける、分散に事前分布を置く(ベイズ化する)といった対策で、この崖に落ちないようにします。
第四に、ラベルスイッチングの問題があります。「成分1」と「成分2」の名前を入れ替えても混合分布はまったく同じなので、成分の番号には意味がありません。EMを走らせるたびに番号が入れ替わることがあり、とくにMCMCでベイズ推定すると、サンプリングの途中で番号が入れ替わって、成分1の平均の事後分布が2つの山にまたがる、といった混乱が起きます。「平均が小さいほうを成分1とする」のような順序の制約を置いて番号を固定するのが一般的な対処です。
最後に、統計的に見つかった成分が現実の集団と一致する保証はありません。分布の形は「2つの群が混ざっている」ことを示唆するだけで、その群が何者かを教えてくれるのはドメイン知識です。そもそも裾の重い単一の分布を、正規分布の混合で近似しているだけかもしれません。混合分布は部分集団の仮説を生成する強力な道具ですが、仮説の検証は別の仕事として残る — この線引きを忘れないことが、使いこなしの鍵になります。
試問
ふたこぶのヒストグラムは、2つの集団のデータが混ざったものです。これに2つの正規分布の山(成分)を重ねた「混合分布」を当てはめます。各山の頂上のつまみで位置と重み(その集団の割合)を、肩のつまみで幅を動かせます。自動で合わせるアルゴリズム(EM)のボタン「EM を1歩」「収束まで」には頼らず、つまみだけで合わせてください。
白い線(2つの山の和)をヒストグラムに重ねるゲームです。頂上のつまみで位置と重み、肩のつまみで幅を動かすか、「EM を1歩」を押してください。
灰色の棒 = データのヒストグラム。色の山 = 2つの成分(重み付き)、白い線 = その和(混合分布)。下の粒 = 各データ点(色 = どちらの成分から来たらしいか)
