1. PCAのおさらい

誰も!詳細を教えてくれないのである!

ノイズ削減とかスペクトル特徴抽出とかミクセル分解の前処理とかで見かける画像解析手法にMNF (maximum noise fraction) 法というのがあります。

PCA(主成分分析)に似た手法で、ENVITNTmipsなどに実装されているということは知っていましたが、すぐ手に入る解説にはフワッとしたものが多い印象です。ならばと元論文[1] に遡ってみると、数式展開の詳細については「PCAみたいにやっていけば解けるよ!」との記述があるのみで私のような数学弱者はヴァァアア…となります。

同じようにヴァァアア…となった方と、どうせすぐ詳細を忘れるであろう私のために、備忘録を残します。

PCAのおさらい

まずここに変数x, y, zのデータ系列i = 1,2, ... nを並べた行列Dがあるとします。衛星画像でいえばx, y, zはたとえば各バンドのDN値とかです。iはたとえば画素に相当します[2]。前処理として、各変数の平均値をもとのデータから引いてあるものとします(中心化)。

PCAの目的のひとつは、変数x, y, zを組み合わせて、データのばらつきが最大となるような新しい変数(主成分)を作り出すことです [3]。そのために、まずは手元のデータのばらつきを評価することにします。xの分散、yの分散、zの分散、および互いの共分散を同時に評価するのに分散共分散行列Σが便利です。これは先ほどの中心化データDで表現でき、

です。x, y, zの線形結合で新しいベクトルq(主成分ベクトル)を作ったとき、このベクトル方向への各データの射影(主成分スコア)は

です。線形性から、この主成分スコアも中心化済みで、分散は二次形式

により計算できます。これを最大化するqを求めればよいです。ただし制約条件として、「主成分ベクトルのノルムは1」を課しておきましょう。そうしないと単に|q|→∞へ吹き飛ばせば勝利となりますので。

まとめると、解くべき問題は

です。

一般に関数 f(x1,x2, ...) = k(可変)が制約条件 g(x1,x2, ...) = 0 のもとで極値となる候補は、両者のグラフが接するです。そこではグラフの法線ベクトルfとgが互いに平行になるので、ある定数λが存在しf = λgです。より実践的には、関数 L(x1,x2, ..., λ) = f - λgをつくり、Lのxλでの偏微分を0と置くことで条件式を網羅できます。

普通にラグランジュの未定乗数法って言えよ、と思われた方はすいません。そうですラグランジュの未定乗数法です

ということで条件が出ました[4]。(1)は固有値問題で、要はもとのデータ系列Dの分散共分散行列Σの固有ベクトル(最大固有値に対応するもの)を求めれば、それが欲しかったqということです。

(2)は制約条件そのものです。ここで(1)の両辺に左からqTをかけますと

が出てきます。つまり(1)で求まる固有値は、対応する主成分スコアの分散を表すことになります。Σは対称行列なので、最大固有ベクトルにつづき、それぞれ直交する固有ベクトルが次元数分だけ得られ、それぞれが新しい(互いに独立な)主成分となります。固有値が大きいものから順に並べなおし、第1主成分、第2主成分…などと呼ばれるのが一般的です。

なお得られた固有ベクトルq1, q2, q3を横に並べた行列Q = [q1, q2, q3]を使って結果をまとめると

といわゆる対角化された状態になりますが、DQ=D[q1 q2 q3]は第1~第3までの主成分スコアを横に並べたものなので、左辺は主成分変換後のデータの分散共分散行列と解釈できます。対角成分(分散)が固有値に一致するのはすでにみたとおりですが、非対角成分が0であることから、異なる主成分スコアは互いに無相関であることも確認できます。ということで、PCAは特徴量を無相関化するときに使われたりするわけですね。

やり切った感がありますがこれはPCAのおさらいですので、一休みしてからMNFの導出を追ってみたいと思います。

[1] Green, A. A., Berman, M., Switzer, P., Craig, M. D., 1988, A transformation for ordering multispectral data in terms of image quality with implications for noise removal. IEEE Transactions on Geoscience and Remote Sensing, v. 26, no. 1, p. 65-74.

[2] このくらいの大きさが見やすいので変数(特徴空間)は3次元でやってますが、別にもっと次元が増えても同じことです。私だけかもしれませんがでかい行列を見るとなぜかイメージがわきづらくなるんですよね…。なおiを時間方向にとればいわゆるEOF解析ですね。

[3] ばらつきが大きいということはそれだけ情報量が多いということなので

[4] 二次形式のベクトル微分を使いました。