Kernel PCA con kernel lineare equivale a PCA standard?


17

Se nel kernel PCA scelgo un kernel lineare , il risultato sarà diverso dal normale PCA lineare ? Le soluzioni sono fondamentalmente diverse o esiste qualche relazione ben definita?K(x,y)=xy

Risposte:


27

Riepilogo: kernel PCA con kernel lineare è esattamente equivalente al PCA standard.

Sia la matrice di dati centrata di dimensione con variabili in colonne e punti dati in righe. Quindi la matrice di covarianza è data da , i suoi autovettori sono assi principali e gli autovalori sono varianze PC. Allo stesso tempo, si può considerare la cosiddetta matrice Gram della dimensioneÈ facile vedere che ha gli stessi autovalori (cioè varianze di PC) fino al fattore n-1 , e i suoi autovettori sono componenti principali ridimensionati in base alla norma unitaria. N × P D N D × P XX / ( n - 1 ) X X N × N n - 1XN×DDND×DXX/(n1)XXN×Nn1

Questo era un PCA standard. Ora, nel kernel PCA consideriamo alcune funzioni ϕ(x) che mappano ogni dato puntando a un altro spazio vettoriale che di solito ha una maggiore dimensionalità Dnew , forse anche infinito. L'idea del kernel PCA è quella di eseguire il PCA standard in questo nuovo spazio.

Poiché la dimensionalità di questo nuovo spazio è molto ampia (o infinita), è difficile o impossibile calcolare una matrice di covarianza. Tuttavia, possiamo applicare il secondo approccio alla PCA delineato sopra. In effetti, la matrice Gram sarà ancora della stessa dimensione N \ volte gestibile N×N. Gli elementi di questa matrice sono dati da ϕ(xi)ϕ(xj) , che chiameremo funzione del kernel K(xi,xj)=ϕ(xi)ϕ(xj) . Questo è ciò che è noto come il trucco del kernel : in realtà non è mai necessario calcolare ϕ() , ma solo K() . Gli autovettori di questa matrice Gram saranno i componenti principali nello spazio target, quelli a cui siamo interessati.

La risposta alla tua domanda ora diventa ovvia. Se , la matrice Gram del kernel si riduce a che è uguale alla matrice Gram standard e quindi i componenti principali non cambieranno.X XK(x,y)=xyXX

Un riferimento molto leggibile è Scholkopf B, Smola A e Müller KR, analisi dei componenti principali del kernel, 1999 , e nota che, ad esempio, nella Figura 1 si riferiscono esplicitamente al PCA standard come quello che utilizza il prodotto dot come funzione del kernel:

kernel PCA


erano quelle foto nella tua risposta? Da qualche libro?
Pinocchio,

@Pinocchio, la figura è tratta da Scholkopf et al. carta, referenziato e collegato nella mia risposta.
ameba dice di reintegrare Monica il

"È facile vedere che ha gli stessi autovalori (cioè varianze di PC) fino al fattore n − 1 " - questo non significherebbe che allora non sono completamente equivalenti? Diciamo che ho una matrice con n = 10 campioni, d = 200 dimensioni. Nel PCA standard sarei in grado di proiettare i dati su 199 dimensioni se volessi, ma nel PCA del kernel con kernel lineare posso solo fino a 10 dimensioni.
Cesar,

1
@Cesar, no, se hai n = 10 campioni, la matrice di covarianza avrà un grado 10-1 = 9 e il PCA standard troverà solo 9 dimensioni (oltre al PCA del kernel). Vedi qui: stats.stackexchange.com/questions/123318 .
ameba dice di reintegrare Monica il

Ricevo file non trovato per il link di riferimento di Scholkopf B, Smola A e Müller KR.
bibbia,

5

Oltre alla bella risposta dell'ameba, esiste un modo ancora più semplice di vedere l'equivalenza. Ancora una volta è la matrice di dati di dimensioni N × D con variabili in colonne e punti di dati in righe. Serie PCA corrisponde alla frequenza di un valore singolare decomposizione della matrice con i componenti principali di . La decomposizione del valore singolare del kernel lineare ha gli stessi vettori singolari sinistri e quindi gli stessi componenti principali.XN×DN X = U Σ V U X X X = U Σ 2 U DNX=UΣVUXXX=UΣ2U


Per quanto riguarda la PCA standard, pensavo che ci tenessimo, per quanto riguarda l'SVD della matrice di covarianza, quindi non capisco davvero quanto sia rilevante l'SVD di X, puoi per favore espandere?
m0s,

@ m0s Per PCA, ci preoccupiamo della composizione elettronica della matrice di covarianza che di solito eseguiamo dal SVD della matrice di dati (centrata).
MrDrFenner,

1

Mi sembra che un KPCA con kernel lineare dovrebbe essere lo stesso del semplice PCA.

La matrice di covarianza da cui otterrai gli autovalori è la stessa:

linearKPCAmatrix=1lj=1lK(xj,xj)=1lj=1lxjxjT=PCAmatrix

Puoi controllare con maggiori dettagli qui .


3
La tua risposta è corretta nello spirito, ma la formula sembra confusa. KPCA funziona con la matrice Gram , non con la matrice di covarianza (per molti kernel non lineari è in realtà impossibile calcolare la matrice di covarianza poiché lo spazio target ha una dimensionalità infinita). Vedi pagina 2 della carta che citi. K(xi,xj)
ameba dice Reinstate Monica il
Utilizzando il nostro sito, riconosci di aver letto e compreso le nostre Informativa sui cookie e Informativa sulla privacy.
Licensed under cc by-sa 3.0 with attribution required.