Was sind die Vorteile von Kernel-PCA gegenüber Standard-PCA?

17

Ich möchte einen Algorithmus in einem Artikel implementieren, der Kernel-SVD zum Zerlegen einer Datenmatrix verwendet. Ich habe also Materialien über Kernelmethoden und Kernel-PCA usw. gelesen. Aber es ist für mich immer noch sehr dunkel, besonders wenn es um mathematische Details geht, und ich habe ein paar Fragen.

  1. Warum Kernelmethoden? Oder was sind die Vorteile von Kernelmethoden? Was ist der intuitive Zweck?

    Geht man davon aus, dass ein viel größerer dimensionaler Raum in realen Problemen realistischer ist und die nichtlinearen Beziehungen in den Daten im Vergleich zu Nicht-Kernel-Methoden aufdecken kann? Den Materialien zufolge projizieren Kernel-Methoden die Daten auf einen hochdimensionalen Merkmalsraum, müssen den neuen Merkmalsraum jedoch nicht explizit berechnen. Stattdessen ist es ausreichend, nur die inneren Produkte zwischen den Bildern aller Datenpunktpaare im Merkmalsraum zu berechnen. Warum also auf einen höherdimensionalen Raum projizieren?

  2. Im Gegenteil, SVD reduziert den Merkmalsraum. Warum machen sie das in verschiedene Richtungen? Kernel-Methoden suchen nach einer höheren Dimension, während SVD nach einer niedrigeren Dimension sucht. Für mich klingt es komisch, sie zu kombinieren. Laut dem Artikel , den ich lese ( Symeonidis et al. 2010 ), kann die Einführung von Kernel-SVD anstelle von SVD das Problem der Datensparsamkeit lösen und die Ergebnisse verbessern.

Bildbeschreibung hier eingeben

Aus dem Vergleich in der Abbildung können wir sehen, dass KPCA einen Eigenvektor mit einer höheren Varianz (Eigenwert) als PCA erhält, nehme ich an? Da KPCA für die größte Differenz der Projektionen der Punkte auf den Eigenvektor (neue Koordinaten) ein Kreis und PCA eine gerade Linie ist, erhält KPCA eine höhere Varianz als PCA. Bedeutet dies, dass KPCA höhere Hauptkomponenten als PCA erhält?

Tyler 主 傲 国 国
quelle
3
Mehr ein Kommentar als eine Antwort: KPCA ist Spectral Clustering sehr ähnlich - in einigen Einstellungen ist es sogar dasselbe. (siehe zB cirano.qc.ca/pdf/publication/2003s-19.pdf ).
Entschuldige die späte Antwort. Ja, Ihre Antwort ist sehr aufschlussreich.
Tyler 傲 傲 国 主

Antworten:

23

PCA (als Dimensionsreduktionstechnik) versucht, einen niedrigdimensionalen linearen Unterraum zu finden, auf den die Daten beschränkt sind. Es kann jedoch sein, dass die Daten auf einen nichtlinearen Teilraum mit geringer Dimension beschränkt sind . Was wird dann passieren?

Schauen Sie sich diese Abbildung aus Bishops Lehrbuch "Mustererkennung und maschinelles Lernen" an (Abbildung 12.16):

Kernel-PCA aus Bishops ML-Buch

Die Datenpunkte hier (links) befinden sich größtenteils entlang einer Kurve in 2D. PCA kann die Dimensionalität nicht von zwei auf eins reduzieren, da die Punkte nicht entlang einer geraden Linie liegen. Dennoch liegen die Daten "offensichtlich" um eine eindimensionale nichtlineare Kurve. Also, während PCA ausfällt, muss es einen anderen Weg geben! Tatsächlich kann Kernel-PCA diese nichtlineare Mannigfaltigkeit finden und feststellen, dass die Daten tatsächlich nahezu eindimensional sind.

Dazu werden die Daten in einen höherdimensionalen Raum abgebildet. Dies kann in der Tat wie ein Widerspruch aussehen (Ihre Frage Nr. 2), ist es aber nicht. Die Daten werden in einen höherdimensionalen Raum abgebildet, erweisen sich dann jedoch als in einem niedrigerdimensionalen Unterraum davon liegend. Sie erhöhen also die Dimensionalität, um sie verringern zu können.

Die Essenz des "Kernel-Tricks" ist, dass man den höherdimensionalen Raum nicht explizit betrachten muss, so dass dieser möglicherweise verwirrende Sprung in der Dimensionalität völlig verdeckt ausgeführt wird. Die Idee bleibt jedoch gleich.

Amöbe sagt Reinstate Monica
quelle
Gute Antwort. Nur eine Folgefrage. Sie sagten, wenn die Datenpunkte nicht linear sind (siehe Abbildung oben), funktioniert PCA nicht und PCA für den Kernel ist erforderlich. Aber woher wissen wir überhaupt, ob die Datenpunkte für Datensätze mit mehr als 4 Merkmalen nicht linear sind (der Fall der realen Welt). Um solche Daten zu visualisieren, müssen wir die Dimensionalität reduzieren, was bedeutet, dass wir PCA verwenden, um die Dimensionalität zu reduzieren, was falsch wäre, da Daten möglicherweise nicht linear sind, und wir verwenden normale PCA zur Visualisierung.
Woher
Danke, @user. Ich denke, das hängt von der Anwendung von PCA / kPCA ab. Wenn es beispielsweise als Vorverarbeitungsschritt für einen Klassifizierungs-, Regressions- oder Clustering-Algorithmus angewendet wird, kann anhand der Leistung dieses nachfolgenden Algorithmus beurteilt werden, wie gut PCA im Vergleich zu kPCA abschneidet.
Amöbe sagt Reinstate Monica
1
Vielen Dank @amoeba. Aber ich schätze, ich wollte fragen, ob wir kPCA verwenden müssen, wenn die Daten nicht linear sind. Woher weiß man dann, ob die Daten nicht linear sind, wenn nicht? von Funktionen ist mehr als 3 ?. Wir können uns das nicht vorstellen, ohne die Dimensionen zu erreichen, und dann ist es wie ein
Henne-
2
@Baktaawar Wenn Sie maschinelles Lernen betreiben, visualisieren Sie nicht, sondern lassen Sie Ihr Modell es selbst lernen. Fügen Sie im Grunde genommen einen KPCA-Schritt in Ihre innere Resampling-Schleife ein und testen Sie die Kernel als Parameter, einschließlich des linearen Kernels und aller anderen, die Sie sich leisten können.
Firebug