ZCAホワイトニングとPCAホワイトニングの違いは何ですか?


60

ZCAホワイトニングと通常のホワイトニング(主成分をPCA固有値の平方根で除算して得られる)について混乱しています。私の知る限りでは、

xZCAwhite=UxPCAwhite,
ここでUはPCA固有ベクトルです。

ZCAホワイトニングの用途は何ですか?通常のホワイトニングとZCAホワイトニングの違いは何ですか?


2
「ニューラルネットワーク:取引の秘 "」によると、PCAとZCAはローテーションのみが異なります。
マーティントーマ

回答:


81

あなたの(中心)データに格納されているとするn×d行列Xd列の特徴(変数)及びn行のデータポイント。共分散行列は、聞かせてC=XX/nの列における固有ベクトル有するEとの対角線上に固有値Dように、C=EDE

WPCA=D1/2E

W=RWPCARE

WZCA=ED1/2E=C1/2.

XXA2A = W Z C AXAA=WZCA

PCAおよびZCAホワイトニング

左のサブプロットは、データとその主軸を示しています。分布の右上隅にある濃い色の濃淡に注意してください。方向を示しています。行は2番目のサブプロットに表示されます。これらはデータが投影されるベクトルです。ホワイトニング後(下)、分布は丸く見えますが、回転したように見えることに注意してください---暗いコーナーが北東側ではなく、東側になりました。行は、3番目のサブプロットに表示されます(直交していないことに注意してください!)。(下記)ホワイトニング後分布は、ラウンドになります、それはもともと同じように配向しています。もちろん、回転することにより、PCAホワイトニングデータからZCAホワイトニングデータを取得できます。W Z C A EWPCAWZCAE

「ZCA」という用語は、1996年ベルとセジュノフスキーで導入されたようです。独立成分分析のコンテキストで、「ゼロフェーズ成分分析」の略です。詳細については、こちらをご覧ください。ほとんどの場合、画像処理のコンテキストでこの用語に出くわしました。一連の自然な画像(特徴としてのピクセル、データポイントとしての各画像)に適用すると、主軸は周波数が増加するフーリエ成分のように見えます(下の図1の最初の列を参照)。したがって、それらは非常に「グローバル」です。一方、ZCA変換の行は非常に「ローカル」に見えます。2番目の列を参照してください。これは、ZCAがデータの変換を可能な限り少なくしようとしているためです。したがって、各行は元の基底関数(アクティブピクセルが1つだけの画像)の1つに近いほうがよいでしょう。そして、これは達成することが可能です、

1996年のベルとセジュノフスキでのPCAとZCA

更新

ZCAフィルターおよびZCAで変換された画像のその他の例は、Krizhevsky、2009、Learning of Layers of Features of Tiny Imagesに記載されています。@ bayerjの回答(+1)の例を参照してください。

これらの例は、PCAに比べてZCAのホワイトニングがいつ望ましいかについてのアイデアを与えていると思います。つまり、ZCA白色化された画像は通常の画像似ていますが、PCA 白色化された画像は通常の画像とはまったく異なります。これはたぶん、畳み込みニューラルネットワーク(Krizhevskyの論文などで使用)のようなアルゴリズムにとって重要です。このアルゴリズムは、隣接するピクセルを一緒に処理するため、自然画像のローカルプロパティに大きく依存します。他のほとんどの機械学習アルゴリズムでは、データがPCAまたはZCAでホワイトニングされているかどうかはまったく関係ありません。


ありがとう!質問があります。つまり、ZCAは基本的にアクセスを変更しますが、データの位置はほとんど変更しないということですか?(シェーディングエリアに基づいて)。また、ホワイトニングを行うときはいつでも、ZCAホワイトニングを行う必要がありますか?どのようにPCAwhiteningまたはZCAホワイトニングを使用することにしますか?
RockTheStar 14年

4
(1)あなたが何を意味するのか正確にはわかりませんが、私はそれをそのように言います:ZCAはデータセットを伸ばして球形にしますが、回転させないようにします(PCAはかなり多く回転させます)。(2)実際、ほとんどの場合、PCAまたはZCAホワイトニングを使用するかどうかは関係ないと思います。ZCAが望ましいと考えられる唯一の状況は、畳み込みニューラルネットワークの前処理です。私の答えの更新をご覧ください。
アメーバは、モニカの復活を14

5
PCAはフーリエ変換を行うようなもので、ZCAは(ゼロ位相)線形フィルターを適用して、変換、乗算、逆変換を行うようなものです。したがって、各ピクセルでのフィルターのインパルス応答があります。操作に関係する「コンポーネント」は同じです。Eの列は「主要コンポーネント」です。つまり、Wコンポーネントの行も呼び出すことができますが、同じ「主要コンポーネント」が関係しており、ZCAを適用すると元のドメインに戻りますが、PCAでは信号を「再構築」する必要があります。
DIVIDEBYZERO

1
@dividebyzeroを最後のコメントに+1します。これは貴重な視点だと思います。いずれにせよ、私は(リンクされた論文から取られた)私の最後の図の意味が今明確であることを望みます。
アメーバは、モニカーを復活させる

1
@learningそのページにPCAホワイト画像は表示されません!それらは、「PCA次元縮小画像」、つまりPCAによる再構成を表示しますが、PCA投影自体は表示しません。
アメーバは、モニカを復活させる

23

共分散行列の固有値分解所与 固有値の対角行列であります、通常のホワイトニングでは、共分散行列が対角の空間にデータを変換します。 (表記の乱用もあります。)つまり、に従ってデータを変換することにより、共分散を対角化することができ

X¯X¯T=LDLT
D=diag(λ1,λ2,,λn)X =
D1L1X¯X¯TLTD1=D1L1LDLTLTD1=I
X~=D1L1X.

これは、PCAによる通常のホワイトニングです。現在、ZCAは何か異なることを行います。小さなイプシロンを固有値に追加し、データを変換し直します。 ZCAの前後のCIFARデータセットの写真を次に示します。

X~=L(D+ϵ)1L1X.

ZCAの前:

ZCAの前

ZCAの後ϵ=0.0001

ZCA 1e-4の後

ZCAの後ϵ=0.1

.1を使用したZCAの後

ビジョンデータの場合、高周波データは通常、低い固有値がまたがる空間に存在します。したがって、ZCAはこれらを強化する方法であり、エッジの視認性などを高めます


1
逆にする前にイプシロンを追加する必要はありませんか?固有値がゼロに近い場合に反転を安定させるために追加されただけだと思います。したがって、実際にZCAホワイトニングに追加するのが理にかなっている場合は、PCAホワイトニングにも追加するのが理にかなっています。
アメーバは2014

はい、逆の前に、ありがとう。これは通常SVDを使用して実際に行われるため、反転の安定化が必要かどうかはまったくわかりません。
バイエルジ14年

効果を示す別の写真を追加しました。
バイエルジ14年

2
+1、しかし、私はさらに多くの問題と質問があります。(1)イプシロンについて私が意味したのは、イプシロンがZCAに固有ではなく、PCAホワイトニングにも使用できるということです。(2)SVDに関するあなたのコメントを理解しているかどうかはわかりません:SVDかどうか、特異値を反転する必要があるため、イプシロンが必要です。(3)PCAホワイトニング変換はであり、逆方向に記述したため、2番目の式の計算が間違っています...(4)素敵な数字、どこにありますかから?(5)ZCAホワイトニングがPCAホワイトニングよりも望ましい状況を知っていますか?D1/2L
アメーバは2014

(1)同意しました。しかし、それが何を意味するのか直感的ではありません。(2)私の分解の知識はここでは不完全ですが、特異共分散行列の古典的な反転行列は失敗するが、特異共分散を引き起こすデータ行列のSVDは失敗しないと仮定しました。(3)ありがとう、修正します。(4)私のコードから:)(5)過剰な表現(例えば、GainShape K-Means、Auto encoders、RICA)を与える多くのアルゴリズム、および/または機能のPCA代数的独立性のような同様の仕事をする多くのアルゴリズムでは、私はこれについて難しい知識はありません。
バイエルジ14年
弊社のサイトを使用することにより、あなたは弊社のクッキーポリシーおよびプライバシーポリシーを読み、理解したものとみなされます。
Licensed under cc by-sa 3.0 with attribution required.