Was ist der Unterschied zwischen ZCA-Whitening und PCA-Whitening?

59

Ich bin verwirrt über das ZCA-Weißmachen und das normale Weißmachen (das durch Teilen der Hauptkomponenten durch die Quadratwurzeln der PCA-Eigenwerte erhalten wird). Soweit ich weiss,

wo U PCA Eigenvektoren sind.

xZCAwhite=UxPCAwhite,
U

Was sind die Verwendungen von ZCA-Bleaching? Was sind die Unterschiede zwischen normalem Bleaching und ZCA-Bleaching?

RockTheStar
quelle
2
Laut "Neuronalen Netzen: Tricks des Handels" unterscheiden sich PCA und ZCA nur durch eine Rotation.
Martin Thoma

Antworten:

80

n×dXdnC=XX/nEDC=EDE

WPCA=D1/2E

W=RWPCARE

WZCA=ED1/2E=C1/2.

XXA2XAA=WZCA

PCA- und ZCA-Bleaching

Das linke Unterdiagramm zeigt die Daten und ihre Hauptachsen. Beachten Sie die dunkle Schattierung in der oberen rechten Ecke der Verteilung: Sie kennzeichnet die Ausrichtung. Die Zeilen von werden in der zweiten Teilzeichnung angezeigt: Dies sind die Vektoren, auf die die Daten projiziert werden. Nach dem Aufhellen (unten) sieht die Verteilung rund aus. Beachten Sie jedoch, dass sie auch gedreht aussieht. Die dunkle Ecke befindet sich jetzt auf der Ostseite und nicht auf der Nordostseite. Die Zeilen von werden im dritten angezeigt (beachten Sie, dass sie nicht orthogonal sind!). Nach dem Aufhellen (unten) sieht die Verteilung rund aus und ist wie ursprünglich ausgerichtet. Natürlich kann man von PCA-Weißdaten zu ZCA-Weißdaten gelangen, indem man mit rotiert .WPCAWZCAE

Der Begriff "ZCA" scheint in Bell und Sejnowski 1996 eingeführt worden zu seinim Kontext der unabhängigen Komponentenanalyse und steht für "Nullphasen-Komponentenanalyse". Siehe dort für weitere Details. Höchstwahrscheinlich sind Sie im Rahmen der Bildverarbeitung auf diesen Begriff gestoßen. Es stellt sich heraus, dass bei Anwendung auf eine Reihe natürlicher Bilder (Pixel als Merkmale, jedes Bild als Datenpunkt) die Hauptachsen wie Fourier-Komponenten mit zunehmenden Frequenzen aussehen (siehe erste Spalte in Abbildung 1 unten). Sie sind also sehr "global". Andererseits sehen Zeilen der ZCA-Transformation sehr "lokal" aus, siehe die zweite Spalte. Dies liegt genau daran, dass ZCA versucht, die Daten so wenig wie möglich zu transformieren, und daher sollte jede Zeile näher an einer der ursprünglichen Basisfunktionen liegen (dh Bilder mit nur einem aktiven Pixel). Und dies ist möglich zu erreichen,

PCA und ZCA in Bell und Sejnowski 1996

Aktualisieren

Weitere Beispiele für ZCA-Filter und mit ZCA transformierte Bilder finden Sie in Krizhevsky, 2009, Lernen mehrerer Ebenen von Features aus kleinen Bildern , siehe auch Beispiele in der Antwort von @ bayerj (+1).

Ich denke, diese Beispiele geben eine Vorstellung davon, wann die ZCA-Aufhellung der PCA vorzuziehen sein könnte. Und zwar noch ZCA-geweißt Bilder normale Bilder ähneln , während PCA-geweißt diejenigen , nichts wie normale Bilder aussehen. Dies ist wahrscheinlich wichtig für Algorithmen wie Faltungsnetzwerke (wie sie beispielsweise in Krizhevskys Arbeit verwendet werden), die benachbarte Pixel gemeinsam behandeln und sich daher stark auf die lokalen Eigenschaften natürlicher Bilder stützen. Für die meisten anderen Algorithmen für maschinelles Lernen sollte es absolut irrelevant sein, ob die Daten mit PCA oder ZCA weiß werden.

Amöbe sagt Reinstate Monica
quelle
Vielen Dank! Ich habe eine Frage: Also bedeutet das, dass ZCA im Grunde genommen den Zugriff ändert, aber die Position der Daten nicht wesentlich ändert? (basierend auf Ihrem Beschattungsbereich). Bedeutet das auch, dass wir ZCA-Bleaching durchführen sollten, wenn wir Bleaching durchführen? Wie würden wir uns für PCA-Whitening oder ZCA-Whitening entscheiden?
RockTheStar
4
(1) Ich weiß nicht genau, was Sie meinen, aber ich würde es so sagen: ZCA streckt den Datensatz, um ihn kugelförmig zu machen, versucht aber, ihn nicht zu drehen (während PCA ihn ziemlich oft dreht). (2) Ich denke tatsächlich, dass es in den meisten Fällen egal ist, ob Sie PCA- oder ZCA-Bleaching verwenden. Die einzige Situation, die ich mir vorstellen kann, in der ZCA vorzuziehen ist, ist die Vorverarbeitung für Faltungs-Neuronale Netze. Bitte sehen Sie ein Update zu meiner Antwort.
Amöbe sagt Reinstate Monica
5
Die PCA ist wie eine Fourier-Transformation, die ZCA wie eine Transformation, Multiplikation und Rücktransformation unter Anwendung eines (Null-Phasen-) Linearfilters. Was wir dort sehen, ist die Filterimpulsantwort bei jedem Pixel. Die "Komponenten", die an der Operation beteiligt sind, sind dieselben, die Spalten von E, die die "Hauptkomponenten" sind ... Ich meine, Sie können auch die Zeilen von W-Komponenten aufrufen, aber ich denke, es ist wichtig zu verstehen, dass Es handelt sich um dieselben "Hauptkomponenten", und wenn Sie die ZCA anwenden, befinden Sie sich wieder in der ursprünglichen Domäne, während Sie mit der PCA das Signal "rekonstruieren" müssen.
Dividebyzero
1
@dividebyzero +1 zu deinem letzten Kommentar, ich halte das für eine wertvolle Perspektive. Auf jeden Fall hoffe ich, dass die Bedeutung meiner letzten Figur (die dem verlinkten Papier entnommen ist) jetzt klar ist.
Amöbe sagt Reinstate Monica
1
@learning Auf dieser Seite werden keine PCA-weißen Bilder angezeigt! Sie zeigen "PCA-dimensionsreduzierte Bilder", dh Rekonstruktionen über PCA, aber nicht PCA-Projektionen selbst.
Amöbe sagt Reinstate Monica
23

Bei gegebener Komposition einer Kovarianzmatrix ist wobei die Diagonalmatrix der Eigenwerte Beim normalen Bleaching werden die Daten in einen Raum umgewandelt, in dem die Kovarianzmatrix diagonal ist: (mit einigem Missbrauch der Notation.) Das heißt, wir können die Kovarianz diagonalisieren, indem wir die Daten nach transformieren

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

Dies ist ein gewöhnliches Aufhellen mit PCA. Jetzt macht ZCA etwas anderes - es addiert ein kleines Epsilon zu den Eigenwerten und transformiert die Daten zurück. Hier einige Bilder aus dem CIFAR-Datensatz vor und nach ZCA.

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

Vor dem ZCA:

vor ZCA

Nach ZCA mitϵ=0.0001

nach ZCA 1e-4

Nach ZCA mitϵ=0.1

nach ZCA mit .1

Bei Bilddaten befinden sich Hochfrequenzdaten normalerweise in dem von den niedrigeren Eigenwerten aufgespannten Raum. Daher ist ZCA eine Möglichkeit, diese zu stärken, was zu sichtbareren Kanten usw. führt.

bayerj
quelle
1
Sollte das Epsilon nicht hinzugefügt werden, bevor invers genommen wird? Ich denke, es wird einfach hinzugefügt, um die Inversion im Fall von Eigenwerten nahe Null zu stabilisieren. Wenn es also sinnvoll ist, es für das ZCA-Whitening hinzuzufügen, ist es auch sinnvoll, es für das PCA-Whitening hinzuzufügen.
Amöbe sagt Reinstate Monica
Ja, vor der Umkehrung, danke. Da dies in der Praxis normalerweise mit SVD durchgeführt wird, weiß ich nicht, ob eine Stabilisierung der Inversion überhaupt erforderlich ist.
Bayerj
Ich habe ein weiteres Bild hinzugefügt, um den Effekt zu zeigen.
Bayerj
2
+1, aber ich habe eine Reihe weiterer Trottel und Fragen. (1) Was ich mit epsilon gemeint habe, ist, dass es nicht spezifisch für ZCA ist, sondern auch für die PCA-Aufhellung verwendet werden kann. (2) Ich bin mir nicht sicher, ob ich Ihren Kommentar zu SVD verstehe: SVD oder nicht, man muss singuläre Werte invertieren, daher wird Epsilon benötigt. (3) PCA-Whitening-Transformation ist , Sie haben es umgekehrt geschrieben, und dies macht die Berechnung in der zweiten Formel falsch ... (4) Schöne Zahlen, wo sind sie? von? (5) Wissen Sie, in welchen Situationen ZCA-Aufhellung der PCA-Aufhellung vorzuziehen ist und warum? D1/2L
Amöbe sagt Reinstate Monica
(1) vereinbart. Ich habe jedoch keine Ahnung, was das bedeutet. (2) Mein Zerlegungswissen ist hier unvollständig, aber ich nahm an, dass eine klassische Inversionsmatrix auf einer singulären Kovarianzmatrix versagen wird, während SVD auf einer Datenmatrix, die zu einer singulären Kovarianz führt, dies nicht tun wird. (3) Danke, wir werden das Problem beheben. (4) Aus meinem Code :) (5) Ich gehe davon aus, dass für viele Algorithmen, die übervollständige Darstellungen liefern (z. B. GainShape K-Means, Auto-Encoder, RICA) und / oder einen ähnlichen Job wie die algebraische PCA-Unabhängigkeit der Features schaden, aber Ich habe keine genauen Kenntnisse darüber.
Bayerj