混合ガウスモデル混合ガウスモデルは、複数のガウス分布を重ねあわせたものです。混合ガウスモデルは、ガウス分布1つ1つをデータの発生源であると考え、そこから生起したデータを1つの塊、すなわちクラスターと見ることで、クラスタリングに応用することができます。今回は混合ガウスモデルを用いたクラスタリングを、今年公開された確率プログラミングライブラリであるedwardを使って実装してみます(と言っても、サンプルを少しいじっただけだが)。クラスタリングの結果はじめに混合ガウスモデルを用いたクラスタリングが、どのような結果を出してくれるのかを見てしまいたいと思います。以下がその結果を表す図です。このデータは実際には5つのガウス分布から生起させたものであり、各データ点が色分けされて真ん中の図で表してあります。こんな色分けができるのは、人工的なデータだからであり、元々データの発生源を知っているからです。本来は左の図のデータが出てきた時、これがいくつのクラスターに分かれるのか(すなわちデータ発生源のガウス分布がいくつあるのか)ということは分かりません。右は混合ガウス分布を使ってクラスタリングを行った結果です。5つのクラスターを捉えられているのが分かります(ただし色の対応に意味はありません)。ここで注目すべきなのは、まず学習は教師なしで行われるということ(クラスタリングなので当然ですが)。仮定した混合ガウスモデルは、10個のガウス分布があると仮定していることです。重みで足し合わされているモデルということになります。ここで以下が満たされていなければなりません。自体を確率と見なすためです。推定することで、各データ点が個々のどの分布から生起したのかを確率で表すことができるようになります。それにより、各データ点を確率が高いガウス分布から生起したと見なすことでクラスタリングが可能になります。どのクラスタであるのかをハードに決めてしまうのではなく、確率という形で表現しているため、あまりにも信頼の薄いデータに対しては保留してしまうなどの対処も可能になります。確率的なモデルの学習は、数式はかなり難しそうに見えてしまうため、概要だけ述べます。本来データはある特定の分布から生成したはずであり、それを表現する潜在変数を導入します。