Metodo di Nystroem per l'approssimazione del kernel


12

Ho letto del metodo Nyström per l'aproximation del kernel di basso rango. Questo metodo è implementato in scikit-learn [1] come metodo per proiettare campioni di dati su un'approssimazione di basso rango della mappatura delle caratteristiche del kernel.

Al meglio della mia conoscenza, dato un insieme di formazione e una funzione del kernel, che genera un'approssimazione a basso rango del kernel matrice applicando SVD per e . n × n K W C{Xio}io=1nn×nKWC

C = [ W K 21 ] W R l × lK=[WK21TK21K22] C=[WK21] ,WRl×l

Tuttavia, non capisco come l'approssimazione di basso rango della matrice Kernel possa essere utilizzata per proiettare nuovi campioni nello spazio approssimativo delle caratteristiche del kernel . I documenti che ho trovato (ad es. [2]) non sono di grande aiuto, poiché sono poco didattici.

Inoltre, sono curioso della complessità computazionale di questo metodo, sia nelle fasi di addestramento che di test.

[1] http://scikit-learn.org/stable/modules/kernel_approximation.html#nystroem-kernel-approx

[2] http://www.jmlr.org/papers/volume13/kumar12a/kumar12a.pdf

Risposte:


15

Deriviamo l'approssimazione di Nyström in modo da rendere più chiare le risposte alle vostre domande.

L'ipotesi chiave in Nyström è che la funzione del kernel sia di rango . (Supponiamo davvero che sia approssimativamente del rango m , ma per semplicità facciamo finta che sia esattamente il rango m per ora.) Ciò significa che qualsiasi matrice del kernel avrà rango al massimo m , e in particolare K = [ k ( x 1 , x 1 ) k ( x 1 , x n ) k ( x nmmmm è rangom. Quindi ci sonoautovalori diversi da zero, e possiamo scrivere la composizione genetica dicome con autovettori memorizzati in, di forma, e autovalori disposti in, unadiagonalematrice.

K=[K(X1,X1)...K(X1,Xn)K(Xn,X1)...K(Xn,Xn)],
mK K = U Λ U T U n × m Λ m × mmK
K=UΛUT
Un×mΛm×m

Quindi, scegliamo elementi, di solito in modo uniforme a caso ma possibilmente secondo altri schemi - tutto ciò che conta in questa versione semplificata è che sia di rango massimo. Una volta fatto, rietichettiamo nuovamente i punti in modo da finire con la matrice del kernel in blocchi: dove valutiamo ogni voce in (che è m × m ) e K 21 ( ( n - m ) × m ), ma non vogliamo valutare alcuna voce in K 22 .K 11 K = [ K 11 K T 21 K 21 K 22 ] , K 11mK11

K=[K11K21TK21K22],
K11m×mK21(n-m)×mK22

Ora, possiamo suddividere la composizione elettronica in base a questa struttura a blocchi: doveU1èm×meU2è(n-m)×m. Ma nota che ora abbiamoK11=U1ΛU T 1 . Quindi possiamo trovare

K=UΛUT=[U1U2]Λ[U1U2]T=[U1ΛU1TU1ΛU2TU2ΛU1TU2ΛU2T],
U1m×mU2(n-m)×mK11=U1ΛU1T e Λ componendo eigendecomponendo la matrice nota K 11 .U1ΛK11

Sappiamo anche che . Qui, sappiamo tutto in questa equazione tranne U 2 , quindi possiamo risolvere per ciò che autovalori implica: moltiplicare a destra entrambi i lati per ( Λ U T 1 ) - 1 = U 1 Λ - 1 per ottenere U 2 = K 21 U 1 Λ - 1 . Ora abbiamo tutto il necessario per valutare K 22 : K 22K21=U2ΛU1TU2(ΛU1T)-1=U1Λ-1

U2=K21U1Λ-1.
K22
K22=U2ΛU2T=(K21U1Λ-1)Λ(K21U1Λ-1)T=K21U1(Λ-1Λ)Λ-1U1TK21T=K21U1Λ-1U1TK21T(*)=K21K11-1K21T(**)=(K21K11-12)(K21K11-12)T.

In (*), abbiamo trovato una versione dell'incorporamento di Nyström che potresti aver visto semplicemente come definizione. Questo ci dice gli effettivi valori del kernel che stiamo imputando per il blocco .K22

In (**), vediamo che la matrice caratteristica , che è forma(n-m)×m, corrisponde a questi valori del kernel imputati. Se usiamoK1K21K11-12(n-m)×mper glimpunti, abbiamo un insieme dimdimensionale caratteristiche Φ=[K 1K1112mm Possiamo solo verificare rapidamente cheΦcorrisponde alla matrice del kernel corretta: ΦΦT

Φ=[K1112K21K11-12].
Φ
ΦΦT=[K1112K21K11-12][K1112K21K11-12]T=[K1112K1112K1112K11-12K21TK21K11-12K1112K21K11-12K11-12K21T]=[K11K21TK21K21K11-1K21T]=K.

mΦK

XΦ

φ(X)=[K(X,X1)...K(X,Xm)]K11-12.
X[K(X,X1)...K(X,Xm)]K21K21K11-12φ(X)K11K11K11-12=K1112ΦXnuovo
Φtest=Ktest,1K11-12.
m[KtrenoKtreno, di provaKprova, trenoKtest]mKtestK22


Sopra, abbiamo ipotizzato che la matrice del kernel fosse esattamente di grado m . Questo di solito non sarà il caso; per un kernel gaussiano, ad esempio, K è sempre di rango n , ma questi ultimi autovalori di solito scendono abbastanza rapidamente, quindi sarà vicino a una matrice di rango m , e le nostre ricostruzioni di K 21 o K test , 1 stanno andando essere vicini ai valori veri ma non esattamente gli stessi. Saranno ricostruzioni migliori quanto più si avvicina all'autospazio di K 11 a quello diKmKnmK21Ktest,1K11 complesso, motivo per cui la scelta deipunti m giustiè importante nella pratica.Km

Nota anche che se ha zero autovalori, puoi sostituire gli inversi con pseudoinversi e tutto funziona ancora; basta sostituire K 21 nella ricostruzione con K 21 K 11 K 11 .K11K21K21K11K11

Kmax(λio,10-12)


1
UNUΛUTUNUΣVTUN-12=VΣ-12VTUNUNVΣ-12VT=UΣVTVΣ-12VT=UΣ12VT=UN12

1
UΣ-12VT=K-12UVK11UΣVTVΣ-12UT=UΣ12UT

1
X-12=1/XVVT

1
Xm

1
XXRdXXK:X×XRφ:XRmK(X,Xio)m
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.