混合ガウス・モデルとは

著者

Joshua Noble

Data Scientist

混合ガウス・モデルの定義

混合ガウス・モデル(GMM)は、データを複数のガウス分布の組み合わせとして表す確率モデルです。それぞれのガウス分布が固有の平均と分散を持ち、混合係数で重み付けされます。GMMは、データ・ポイントが単一の平均ではなくさまざまな中心の周りに自然にクラスター化される複雑なマルチモーダル分布を把握できるため、クラスター化や密度の推定によく使用されます。

「正規分布」とも呼ばれる単一のガウス分布は、さまざまな種類の自然現象を表しています。教室内の生徒の身長、新生児の体重、機械部品の動作寿命などは、多くの場合ガウス分布の形を取ります。

ただし、単一のガウス分布は、複数のデータクラスターを持つデータセットや、大きく偏っているデータや深いテールを持つデータセットのモデリングには適していません。このような場合はGMMの方が適している可能性があります。

GMMは教師なし学習を使用して、データが複数のガウス分布の組み合わせから生成されると想定する確率モデルを生成します。GMMでは、すべてのデータが単一の正規分布 (1つのガウス・モデル) から取得されると想定するのではなく、複数の正規分布があり、それぞれがデータセット内の異なる「クラスター 」または「下位集団」を表し、それぞれが独自の平均と分散を持っていると想定します。

例えば、学生の身長はバイモーダル分布になるが、学生の性自認は不明のままである、という例があります。または、機械部品であれば、部品が2つの異なるサプライヤーから製造され、一方がもう一方のサプライヤーよりも高品質の部品を製造しているという状況が考えられます。どちらの場合も、データ・ポイントが属する部分母集団、またその部分母集団の特徴を計算することが役立つと考えられます。

The DX Leaders

AI活用のグローバル・トレンドや日本の市場動向を踏まえたDX、生成AIの最新情報を毎月お届けします。登録の際はIBMプライバシー・ステートメントをご覧ください。

ご登録いただきありがとうございます。

ニュースレターは日本語で配信されます。すべてのニュースレターに登録解除リンクがあります。サブスクリプションの管理や解除はこちらから。詳しくはIBMプライバシー・ステートメントをご覧ください。

混合ガウス・モデルの仕組み

GMMには、クラスター以外にも多くの実世界でのアプリケーションがあります。セグメンテーション、密度推定、異常検知、パターン認識はすべてGMMによる近似が可能です。

明らかにガウス分布ではない、処理の難しい分布もあります。

非ガウス分布 非ガウス分布

この曲線の方程式を見つけるために多項式の適合や三角形の近似を使用する場合がありますが、GMMはより計算負荷の少ない堅牢な代替手段となります。この分布は、実際には次の3つの異なるガウス分布を組み合わせたものです。

前の分布は、3つのガウス分布に分解されます: 前の分布は、3つのガウス分布に分解されます:

GMMは、上記の分布を3つの異なるガウス分布に分解し、それぞれのパラメーターを計算します。上記の分布は単一次元ですが、GMMはより高次元の分布にも機能します。2つのガウス分布の2次元混合は、2つの異なる分布に分解できます。

等高線プロットを使用してプロットされた2次元ガウス 等高線プロットを使用してプロットされた2次元ガウス

 

クラスタリング・アルゴリズムとして使用する場合、混合モデルの各ガウスには以下の3つの重要なパラメーターがあります。

  • 平均ベクトル(μ):クラスターの中心。1次元分布では、これは単一の値ベクトルになります。n次元分布では、これはn値のベクトルになります。

  • 共分散行列(Σ):ガウス分布自体の広がり/形状。1次元分布では1つの値となり、n次元分布ではn×nの行列となります。

  • 混合重み(π): コンポーネントによってランダムに選択されたデータ・ポイントが生成される確率。これは実際にはガウス分布自体の特徴量ではなく、モデルでであり、さまざまなガウス分布を組み合わせて、それに適合するデータを表現するものです。

 

オフィスでミーティングをするビジネスチーム

IBMお客様事例

お客様のビジネス課題(顧客満足度の向上、営業力強化、コスト削減、業務改善、セキュリティー強化、システム運用管理の改善、グローバル展開、社会貢献など)を解決した多岐にわたる事例のご紹介です。

GMMの適合

GMMの目標は、モデル内の各ガウス分布のパラメーターと、それらの各データ・ポイントがどのガウス分布に属するかを推定することです。潜在変数(しばしばzと呼ばれます)は、モデル内のすべてのコンポーネントのうち、特定のデータ・ポイントを生成したガウス分布コンポーネントです。この変数は、モデルから学習できる隠れた(または観測されていない)変数であるため「潜在」変数と呼ばれます。

各点 xn に存在するのは、zn(nはコンポーネント数)、これは生成されたガウス分布ですxi(この場合の i はデータポイント数)。znはデータで観察されることはなく、ポイントxiのみが存在します。さらに、生成されたガウス分布コンポーネントがxi、これは観察できません。代わりに、モデルの期待値最大化アルゴリズムによって、可能なz値の分布を推測します。

各ガウス分布のコンポーネントは、混合係数によって重み付けされます。混合係数は、各分布がその特定のデータ・ポイントの位置にどの程度影響を与えるかの推定値を表します。クラスタリングシナリオでは、混合重みは各クラスターの相対的なサイズを反映します。GMMの処理:xの確率を見つけるために、最初の1つが以下に従ってランダムに1つのガウス分布を選択するとします。πk、このガウス分布から x を引き出します。ゆえに、p(x)はコンポーネント密度の混合です。xが多重平均に近い場合はμk、複数のガウス分布でそれが高い確率に割り当てられる可能性があり、その貢献度が累積していきます。完全なモデルは、これらのガウス確率分布の重み付けされた合計です。

数学的には、データ・ポイントの確率密度関数でxK コンポーネントを含む GMM では、次のとおりです。

 p(x)=k=1KπkN(xμk,Σk)

この分析結果では、

 πk:これは混合コンポーネントkの混合重みで、ガウスkがデータ・ポイントにどの程度寄与するかを推定したものです。

 N(xμk,Σk):はガウス分布で、以下が含まれます:

  •  μk平均ベクトル、ガウス分布の中心と考えられるものk
     
  •  Σk共分散行列、ガウス分布の「広がりと方向」を表現するものk     

最小確率密度はxこれはp(x)これがすべてのガウス分布の重み付けされた合計です。

期待値の最大化

GMMは、Eステップと呼ばれる各ガウス分布に属する確率を繰り返し割り当て、Mステップと呼ばれる各ガウス分布のパラメーターを更新する期待値最大化(EM)アルゴリズムを使用して適合を行う場合がほとんどです。

EMは、たとえばGMMの場合に、最尤推定(MLE)などのアルゴリズムを使用するのが困難な場合にパラメーターを推定するための強力な方法です。GMMでは、モデルはほぼ常に対数尤度関数を使用して適合されます。その対数尤度は非線形であり、分析的に最大化するのが困難であるため、MLEは直接最大化できないことを意味します。さらに、GMMには潜在変数(混合重み)がありますが、これらはデータ内で直接観測できないため、MLEはラベルを並べ替える際にこれらを発見できません。

もう1つのアプローチである確率的勾配降下法(SGD)では、基礎となる目的関数が微分可能であることが必要ですが、常にその条件が満たされるとは限りません。さらに、EMとは異なり、SGDは簡単に並列化できないため、大規模なデータにはかなりのリソースが必要となります。map-reduceなどのアプローチを使うEM並列化は、強力な最適化処理です。

これは、次の4つのステップで構成されています。

1. 初期化

EMアルゴリズムは、ランダム化された初期パラメーター値から始まり、観測データは推定可能なモデルからのものであると仮定します。GMMの実装の多くでは、K平均法、ランダム値、トレーニング・データからのサンプリングを使用した初期責任の設定など、さまざまな初期化から選択できます。

2. E-Step(期待ステップ)

事後確率を計算します。これは、コンポーネントに対するデータ・ポイントの「柔軟な割り当て」です。これは事実上、現在のパラメーターの推測を考慮すると、「各ガウス分布で各データ・ポイントをどれだけ所有しているか」という質問をします。

まず、各潜在変数の事後確率が観測データに基づいて計算されます。zi=k 、つまり xi が k 個のコンポーネントに属する確率は、ベイズの法則を使用して計算できます。

 P(Zi=kxi;θ)=p(xiZi=k;θ)P(Zi=k;θ)p(xi;θ)

次に、現在のパラメーター推定値を使用して、観測されたデータの対数尤度が計算されます。潜在変数の分布に関する期待される対数尤度は、次のように表すことができます。

 Q(θ,θold)=i=1nk=1Kγ(zik)log[wkN(xi;μk,Σk)]

関数Qは、各コンポーネントのすべてのデータポイントの対数尤度の重み付けされた合計であり、重みが責任を指します。対数尤度は、各コンポーネントの推定値を使用して、データ・ポイントがその分布から発生する可能性があることを計算します。これは、混合モデル全体の下での観察データの可能性とは異なります。代わりに、このQ関数は、観測されたデータと推定された潜在変数分布の両方に対して期待される対数尤度を表します。

3. Mステップ(最大化ステップ)

M-Stepにより、各ガウス分布の3つの異なる値が更新されます。

  • 平均更新は通常、次のように表されます。μknew 

  • 共分散行列の更新(通常、次のように表されます):Σknew 

  • 混合の重みの更新(通常、次のように表されます)wknew

次のステップでは、データを生成するモデルの対数尤度を最大化してモデル・パラメーターを更新します。モデルが優れているほど、この値は高くなります。

 μknew=i=1nγ(zik)xii=1nγ(zik)

つまり、次の新しい平均: k番目のコンポーネントは、すべてのデータ・ポイントの重み付け平均であり、重みは、これらのポイントがコンポーネントに属する確率です。k .

 Σknew=i=1nγ(zik)(xi-μknew)(xi-μknew)i=1nγ(zik)

これが表現するのは、次のコンポーネントの新しい共分散です:kは、コンポーネントの平均に対する各データ・ポイントの二乗誤差の重み付けされた平均で、この場合の重みはそのコンポーネントに割り当てられたポイントの確率です。

最後に、M-Stepは混合物の重みを更新します。

 wknew=1ni=1nγ(zik)

新しい重み:k番目のコンポーネントは、このコンポーネントに属するポイントの合計確率であり、ポイント数で正規化されます。n .

4. 収束

最後に、EMはモデルのパラメーターが安定し、収束していることを確認します。対数尤度やパラメーターの変化が設定されたしきい値を下回る場合、アルゴリズムは停止します。そうでない場合は、EMは収束に達するまでステップ2と3を繰り返します。

つまり、EMアルゴリズムは、繰り返し繰り返される2つのステップで構成されています。まず、Eステップでは各データ・ポイントのすべてのガウスにおける混合重みを計算します。次に、Mステップでは、更新された混合重みを使用して、各ガウスにおけるパラメーターを再推定します。次に、EMは対数尤度の変化を比較し、設定されたしきい値を下回っている場合は、収束したと仮定して反復を停止します。

GMM の比較

GMMは強力ですが、ガウス分布の仮定に依存しています。GMMでデータをうまく表現するには、クラスターが楕円形であり、クラスター全体の密度が滑らかである必要があります。非楕円形のクラスターや、非常に高密度でスパースなセクションを持つデータは、GMMではうまく表現できない場合があります。

クラスターに使用する場合、GMM はk-means クラスタリングに似ていますが、いくつかの重要な違いがあります。まず、各点を1つのクラスターに割り当てるK平均法とは異なり、GMMは各クラスターに属する確率を与えます。これは「ソフト・クラスタリング」と呼ばれます。クラスターは楕円形でも重なり合うこともできるため、GMMはより柔軟性が高く、クラスター境界における不確実性が増します。

2値データや分類データの場合、GMMはうまく機能しませんが、ベルヌーイ分布や多項分布を使用した同様のアプローチでデータにうまく適合できます。逆に、これらのタイプのモデルは、GMMがデータにうまく適合することが多い連続変数で構成されるデータには適合しません。

GMMはガウス分布のパラメーターを推定しようとするため、一部のデータはカーネル密度推定(KDE)などのノンパラメトリック手法を使用してより適切にモデル化されます。KDEは、クラスターや部分母集団の分布については仮定を行いません。代わりに、各データ・ポイントの小さなローカル・カーネルの密度を推定します。このアプローチは、データが特定の形状を仮定することなく複雑な分布で構成されている場合に有効です。

GMMの拡張は変分オートエンコーダ(VAE)であり、柔軟な潜在分布を学習する生成モデルです。VAEの全体的な目標は同じですが、EMを使用しません。VAEは、GMMが各データ・ポイントに混合重みを割り当てるのと同じ方法で、確率的エンコーダー/デコーダーフレームワークを使用して潜在表現を学習します。主な違いは、EMでは事後確率を計算できることを必要としているのに対し、VAEではそうでないため、はるかに柔軟に計算できることです。トレードオフは、VAEがより複雑で、トレーニングに時間がかかることが多いという点です。

GMMのユースケース

この解説は、GMMについて直感的な紹介を行っているため、クラスターに重点を置いていますが、GMMが役立つシナリオは他にもあります。特徴量エンジニアリング、異常検知、密度の推定はすべて、GMMが強力に発揮できる一般的なタスクです。

特徴量エンジニアリングXGBoostなどの一部の機械学習アルゴリズム では、モデルがさまざまな特徴量のインプット分布を学習できるようになりますが、他のアルゴリズムでは要件がより厳格になります。線形回帰、ロジスティック回帰、線形判別分析(LDA)、多変量ガウス分布では通常、特徴量が正規分布していることが想定されており、データが多峰性である場合は適切に機能しない可能性があります。マルチモダリティーに対処するのに役立つ分析的・視覚的な理由は他にもあり、GMMが役に立ちます。

教師なし分類:GMMはK平均法と似たような仕組みですが、出力がメトリクスであるK平均法とは異なり、クラスの帰属を確率論的に決定することができます。これは、分類にカスタムしきい値を必要とするユースケースや、確率的なアウトプットを必要とするユースケースに特にメリットがあります。

異常検知:多変量ガウス分布を使用して、1つ以上のガウス分布に従う確率の低いデータ・ポイントを特定できます。このようにして、GMMは2種類の異常データの発見に役立ちます。それは、母集団の外れ値である異常(例えば、データ入力ミス)と、独自のグループを形成する異常(クレジット・カード詐欺など)です。

GMMは、迅速にトレーニングでき、簡単に最適化できるさまざまなタスクに適したモデルです。処理に適したデータの種類に関してはいくつかの制限がありますが、さまざまな機械学習データサイエンスのタスクに役立ちます。

GMMの実装

Pythonでは、GMMをすばやく作成するための scikit-learnライブラリを利用できます。

from sklearn.datasets import make_blobs
from sklearn.mixture import GaussianMixture
from sklearn.metrics import accuracy_score

# create some clusters
X, y = make_blobs(n_samples=400, centers=3, cluster_std=0.75, random_state=0)

# fit the GMM
gmm = GaussianMixture(n_components=3).fit(X)

GMM クラスターの成果を視覚化します:

# predict the labels themselves
labels = gmm.predict(X)

# print the accuracy
print(f" Accuracy is {accuracy_score(y, labels)}")

# scatterplot the X values
plt.scatter(X[:, 0], X[:, 1], c=labels, s=40, cmap='viridis')

R では、モデルベースのクラスタリングを表す mclust というパッケージを使用して GMM を作成できます。

# Install and load the 'mclust' package
library(mclust)

# create a matrix of data from normal distributions
data <- rbind(matrix(c(rnorm(50, mean = 0, sd = 1), rnorm(50, mean = 1, sd = 1.25)), ncol=2),
              matrix(c(rnorm(50, mean = 4, sd = 1), rnorm(50, mean = 2, sd = 1.25)), ncol = 2),
              matrix(c(rnorm(50, mean = 8, sd = 1.25), rnorm(50, mean = 4, sd = 0.75)), ncol = 2))

# Perform GMM clustering, G represents the number of expected clusters
gmm_model <- Mclust(data, G = 3)  

# Get the cluster assignments
cluster_assignments <- predict(gmm_model)$classification

# Visualize the results
plot(data, col = cluster_assignments, main = "GMM Clustering Results")
points(gmm_model$parameters$mean, col = 1:3)

PythonとRのいずれにおいても、開発者はGMMのパラメーターとしてクラスターの数を指定するハイパーパラメーターを設定する必要があります。KNNと同様に、この数のクラスターを選択するための一般的なストラテジーは、異なる数のクラスターに対してモデルをトレーニングし、それぞれを比較することです。モデルの比較に最もよく使用されるメトリクスは次のとおりです。

シルエット係数: これはサンプルごとに定義され、2つのスコアで構成されます。サンプルと同じクラスター内の他のすべてのポイントの間の平均距離と、サンプルと次に最も近いクラスター内の他のすべてのポイントの間の平均距離です。

Jensen-Shannon: これは分布間のダイバージェンスを測定するもので、ほとんどの場合、最初にカルバック・ライブラーダイバージェンス、つまりサンプル全体の対数可能性比の平均を計算し、次に得られた2つのKLダイバージェンス値を平均することによって計算されます。分布の類似性の概念は、Jensen-Shannon(JS)測定基準で表されます。2つのGMM間のJS距離が小さければ小さいほど、それらのGMMはデータをどのように適合させるかについてより一致していることになる。

ベイズ情報量規準(BIC): これは、モデルが含むパラメータの数によってバランスされたデータをモデルがどれだけよく予測するかの推定値を与える。Kが小さすぎる場合、モデルの対数尤度が低く、BIC値が大きくなります。Kが大きすぎると、可能性は高くなる可能性がありますが、より大きな値に対するペナルティ(したがって 過学習)により、より大きなBIC値も作成されます。

赤池情報基準(AIC):
これはBICと非常によく似ていますが、パラメータの数に対してより小さなペナルティを計算します。

関連ソリューション
IBM watsonx.ai

AI開発者向けの次世代エンタープライズ・スタジオであるIBM watsonx.aiを使用して、生成AI、基盤モデル、機械学習機能をトレーニング、検証、チューニング、導入しましょう。わずかなデータとわずかな時間でAIアプリケーションを構築できます。

watsonx.aiをご覧ください。
人工知能ソリューション

業界をリードするIBMのAI専門知識とソリューション製品群を使用すれば、ビジネスにAIを活用できます。

AIソリューションはこちら
AIコンサルティングとサービス

AIの導入で重要なワークフローと業務を再構築し、エクスペリエンス、リアルタイムの意思決定とビジネス価値を最大化します。

AIサービスはこちら
次のステップ

AI開発ライフサイクル全体にわたる機能にワンストップでアクセスできます。使いやすいインターフェース、ワークフロー、業界標準のAPIやSDKを利用して、強力なAIソリューションを構築できます。

watsonx.aiの詳細はこちら デモを予約
関連ソリューション
IBM watsonx.ai

AI開発者向けの次世代エンタープライズ・スタジオであるIBM watsonx.aiを使用して、生成AI、基盤モデル、機械学習機能をトレーニング、検証、チューニング、導入しましょう。わずかなデータとわずかな時間でAIアプリケーションを構築できます。

watsonx.aiをご覧ください。
人工知能ソリューション

業界をリードするIBMのAI専門知識とソリューション製品群を使用すれば、ビジネスにAIを活用できます。

AIソリューションはこちら
AIコンサルティングとサービス

AIの導入で重要なワークフローと業務を再構築し、エクスペリエンス、リアルタイムの意思決定とビジネス価値を最大化します。

AIサービスはこちら
次のステップ

ビジネスに合わせて生成AIを確実に拡張できるように、IBM watsonxプラットフォームにあるIBMライブラリーの基盤モデルの詳細を学びましょう。

watsonx.aiの詳細はこちら AIソリューションはこちら