k平均法による減色処理に混合ガウスモデルを適用してもうまくいかない

 こんにちは。データサイエンスチームのtmtkです。
 この記事は、NHN テコラス DATAHOTEL:確率統計・機械学習・ビッグデータを語る Advent Calendar 2017 25日目の記事です。

k平均法と混合ガウスモデル

 k平均法(k-means)混合ガウスモデルはどちらもクラスタリングアルゴリズムの一つです。下図のように、与えられたデータを教師ラベルなしで分類することができます。混合ガウスモデルでは学習モデルのパラメータに分散共分散行列が入っているため、クラスタの広がりの大小に差があるクラスタ間でもうまくクラスタリングできることが知られています。

Comparing different clustering algorithms on toy datasets — scikit-learn 0.19.1 documentation より作成)

k平均法と減色処理

 k平均法によって画像の減色処理をすることができます。具体的には、画像の各画素をRGBの3次元ベクトルだとみなして、k平均法を適用し、各クラスタの中心のRGB値にマッピングします。
 最初のハリネズミの写真で具体的にやってみましょう。まず、色の分布を(R, G, B)の3次元空間にプロットしてみます。
plot of colors
背景の白、ハリネズミの茶色と黒色、サンタ帽の白が表示されています。
 これをk平均法で3色にクラスタリングし、プロットしてみます。
plot of kmeans colors
白、茶色、赤色の3色にクラスタリングされます。
 最後に、この元の色をクラスタリングされた色に変換します。
3colors hed
最初の写真が白、茶色、赤色の3色のみで表現できました。

k平均法と混合ガウスモデルによる減色処理

 ところで、k平均法といえば、クラスタリングアルゴリズムには混合ガウスモデルもあります。混合ガウスモデルで同じことをやるとどうなるのでしょうか。やってみます。
3colors hed gm
なんだかおかしいですね。境界部分がカクカクしています。JPEG圧縮の際のノイズが反映されてしまっているようです。どうしてこのようなことが起こるのでしょうか。
 混合ガウスモデルで色をクラスタリングしたものをプロットしてみると、原因がわかります。
plot of gm colors
k平均法によるクラスタリング結果のプロットと比べてみると、白のクラスタの広がりが非常に小さくなっていることがわかります(図の青色の丸で囲った部分)。白色が分散の非常に小さなクラスタをつくってしまっているため、JPEGの圧縮ノイズのような微小な色の変化にもクラスタリングの結果に影響してしまい、境界部分がカクカクした結果が得られてしまったのだと考えられます。
 このように、減色処理に混合ガウスモデルを適用すると、モデルのパラメータに分散が入っているという混合ガウスモデルの特徴が、欠点として現れてしまうことがあります。

混合ガウスモデルの問題点

 k平均法と混合ガウスモデルの比較のために最初に出した画像を振り返ってみます。
gm problem
よく見ると、青いクラスタの右側に緑色のクラスタに属する点が一つだけあります(赤い丸で囲った部分)。これも、青色のクラスタの広がりが緑色のクラスタの広がりに比べて小さいために起こる現象で、k平均法ではおこりえない現象です。
 混合ガウスモデルでは、このように、「あるクラスタが別のクラスタをまたいで存在してしまう(クラスタの存在する領域が凸でなくなってしまう)」ことがあります。減色処理にクラスタリングを適用する場合、この性質は望ましくありません。というのも、「ある色が、緑色か青色かといえば青色に近いが、青色ではなく緑色としてクラスタリングされてしまう」といったようなことは、減色処理では起こってほしくないからです。
 減色処理に適用するクラスタリングアルゴリズムは、混合ガウスモデルよりもk平均法のほうが適切であるといえます。

まとめ

 k平均法と混合ガウスモデルの2つの方法で減色処理をしました。クラスタの広がりの大小を表現できる混合ガウスモデルの柔軟性が、減色処理ではかえって欠点として現れてしまうことがあります。
 クラスタリングアルゴリズムを選定する際には、モデルやアルゴリズムの特性を理解し、適用対象にあったものを選定することが大切です。

参考文献

  • 機械学習概論 講義テキスト
    • 86ページからk平均法による減色処理の解説があります
  • C.M.ビショップ『パターン認識と機械学習』
    • 下巻第9章にk平均法による画像の減色処理の話題があります

画像の出典

あなたにおすすめの記事