logo logo

April 11, 2019 03:38

正規化相互情報量(Normalized Mutual Information)

正規化相互情報量とは?

  • Normalized Mutual Informationなので、標準化相互情報量とか規格化相互情報量などの訳揺れはあるかもしれない。
  • 文字通り相互情報量の尺度を0~1の範囲に正規化し、相互情報量同士の比較などを容易にできるようにするもの。正解がある場合のクラスタリング性能の評価指標などとして活用できる。
  • 例えば手書き数字のデータセットであるMNISTを5とか20のクラスターに分割したとして、そこから本来の10クラスの分割がどの程度うまくできるかなどを客観的に評価する指標として使える。

定義

2つの確率変数の集合を$X, Y$とする。正規化の方法がひとつではないので、いくつかの定義が考えられる。例えば幾何平均で正規化を行う場合、
$$\text{NMI} \equiv \frac{I(X;Y)}{\sqrt{H(X)H(Y)}},$$
となるし、算術平均を採用した場合、
$$\text{NMI} \equiv \frac{2I(X;Y)}{H(X)+H(Y)},$$
などと定義することも可能である。また相互情報量$I(X;Y)$は
$$I(X;Y) \equiv H(X) + H(B) - H(A,B),$$
であるし、情報エントロピー$H$の定義は
$$H(X) \equiv -\sum _{x \in X} p(x)\log{p(x)}$$
である。対数の底は以下自然対数として統一する。また確率変数が連続値である場合は離散和を積分和に拡張すればよい。

性質

上で定義したNMIはどれも0~1の範囲に収まる。正であることはエントロピーの非負性から明らかなので、最大でも1であり、それは2つの確率変数の関係が決定的に定まりうる場合であることを示す。

定義から2つの確率変数の順番に対して対称なので、一般性を失わずに$H(X) \geq H(Y)$とする。また相互情報量を次のように変形しておくと、議論が明白である。
$$I(X;Y) = H(X)+H(Y) - \sum _{x,y \in X,Y}p(x,y)\ln{p(x,y)}$$
$$= H(X)+H(Y)-\sum _{x \in X} p(x)\ln{p(x)} - \sum _{x,y \in X,Y}p(x,y)\ln{p(y|x)}$$
$$= H(Y) - H(Y|X)$$
ここで同時分布について$p(x,y) = p(y|x)p(x)$という置換を用いた。するとNMIについて
$$\text{NMI} \leq 1 - \frac{H(Y|X)}{H(Y)} \leq 1$$
となる。等号成立を確認すると、
$$H(Y|X) = 0 \leftrightarrow p(x,y) = 0 \text{ or } p(y|x) = 1$$
であるが、これは$y$が$x$に対して決定的に決まる場合ということになる。算術平均の場合も全く同様の議論が成り立つ。

scikit-learnでの実装

  • sklearn.metrics.normalizedmutualinfo_scoreに実装があるので、簡単に計算することができる。
  • ver0.20では引数を明示しない場合、デフォルトで幾何平均(上の最初の定義)が採用される。ver0.22以降ではデフォルトが算術平均(上の2つ目の定義)になるようだ。