動く混合ガウス分布(導出編)- 動く PRML シリーズ(1)
はじめに
混合ガウス分布 (Gaussian Mixture Model, GMM) は、多次元の特徴量を持つデータ点の集合を機械学習により分類するための重要な手法です。特に、GMM は応用範囲が広く、様々な手法の基礎となっているため、自ら更新式を導出するなどして特性をよく理解することが重要です。
本記事ではこれに加え、GMM の長所と短所を視覚的に確認する方法を提案し、実装します。GMM の更新式は「どう動くか」の説明にはなりますが、「長所と短所は何か」を直接教えてはくれません。たとえば、
- どんな初期値から、どんな収束値が得られるのか。(初期値に対する特性)
- 変な初期値を与えるとどうなるのか。(局所解頑健性)
- どれぐらいの速さで収束するのか。(収束性能)
といった疑問にこたえるためには、EM アルゴリズムの各イテレーションでの中間状態をグラフにプロットし、アニメーションとして見る必要があります。
本記事では、まず簡単に更新式を導出し、次に動く GMM の実装方法について詳しく説明します。実装編の最後に添付したソースコードを実際に動かしながら、本記事や PRML を読むのがオススメです。
生成モデル
N 個のデータ点で構成された観測データを考えます。個々のデータ点はそれぞれ、K 個あるクラスター(クラス)のいずれかに属していると仮定します。n 番目のデータ点が k 番目のクラスから生成されたことを、 であらわします。各データ点は多項分布で各クラスに割り当てられ、各クラス固有のガウス分布により観測値が生成されます。この観測モデルの尤度は、
と書けます。EM アルゴリズムの目標は、観測データにとって最も適切なモデルパラメータの組み合わせを、E-Step と M-Step という二種類の計算の繰り返しによって再帰的に推定することです。
E-Step
E-Step では、潜在クラス割り当ての期待値を、現在のパラメータの値に基づいて決定します。
M-Step
M-Step では、観測データ X と得られた期待値 E[Z] の同時分布を最大化するようにモデルパラメータを決定します。
以下では、 を と書きます。
クラス平均と分散(精度)の更新
完全データの対数尤度は
となり、これを で微分した結果を 0 と置くことで、 に対する次の更新式
を得ます。同様に、分散(精度)で偏微分することで、分散に対する次の更新式
を得ます。
多次元の場合は省略しますが、PRML の結果を引用すると
となります。