Cosa rende il kernel gaussiano così magico per PCA e anche in generale?


67

Stavo leggendo del kernel PCA ( 1 , 2 , 3 ) con kernel gaussiani e polinomiali.

  • In che modo il kernel gaussiano separa apparentemente eccezionalmente bene qualsiasi tipo di dati non lineari? Si prega di fornire un'analisi intuitiva, oltre a una matematicamente coinvolta, se possibile.

  • Qual è una proprietà del kernel gaussiano (con ideal ) che altri kernel non hanno? Vengono in mente reti neurali, SVM e reti RBF.σ

  • Perché non mettiamo la norma attraverso, diciamo, un PDF di Cauchy e ci aspettiamo gli stessi risultati?

1
+1. Ottima domanda che ho quasi trascurato, perché non aveva un tag [pca]! Modificato ora.
ameba dice di reintegrare Monica il

4
Buona domanda. Mi chiedo se la risposta potrebbe essere "oh sì, anche molti altri kernel funzionerebbero bene ma il gaussiano è ben noto / facile"
Stumpy Joe Pete,

@StumpyJoePete Non credo sia una risposta così banale. Quale altro parametro di localizzazione della distribuzione è anche la sua media? Quale parametro di scala di altre distribuzioni è anche la sua varianza? Quale altra distribuzione è così universalmente intuitiva? Sicuramente non la distribuzione di Cauchy - non ha nemmeno ha una media!
Shadowtalker

3
@ssdecontrol Sono felice di essere smentito; Ho valutato sia la domanda che una delle risposte: penso solo che la mia risposta noiosa, sincera, deflazionistica sia un buon default che una vera risposta dovrebbe confutare.
Stumpy Joe Pete,

Penso che questo possa aiutare: stats.stackexchange.com/questions/168051/…

Risposte:


54

Penso che la chiave della magia sia la fluidità. La mia lunga risposta che segue è semplicemente quella di spiegare questa fluidità. Potrebbe essere o meno una risposta che ti aspetti.

Risposta breve:

Dato un kernel definito positivo , esiste il suo corrispondente spazio di funzioni . Le proprietà delle funzioni sono determinate dal kernel. Si scopre che se è un kernel gaussiano, le funzioni in sono molto fluide. Quindi, una funzione appresa (ad es. Una funzione di regressione, componenti principali in RKHS come nel kernel PCA) è molto fluida. Di solito il presupposto della fluidità è ragionevole per la maggior parte dei set di dati che vogliamo affrontare. Questo spiega perché un kernel gaussiano è magico.H k HkHkH

Risposta lunga per cui un kernel gaussiano offre funzioni fluide:

Un kernel definito positivo definisce (implicitamente) un prodotto interno per il vettore funzione costruito dall'input , e è uno spazio di Hilbert. La notazione indica un prodotto interno tra e . Per il nostro scopo, puoi immaginare come il solito spazio euclideo ma possibilmente con un numero infinito di dimensioni. Immagina il solito vettore infinitamente lungo comek ( x , y ) = φ ( x ) , φ ( y ) H φ ( x ) x H φ ( x ) , φ ( y ) φ ( x ) φ ( y ) H ϕ ( x ) = ( ϕ 1 ( xk(x,y)k(x,y)=ϕ(x),ϕ(y)Hϕ(x)xHϕ(x),ϕ(y)ϕ(x)ϕ(y)H H f ( x ) = f , φ ( x ) f ( x ) f x φ ( x ) f ( x ) kϕ(x)=(ϕ1(x),ϕ2(x),). Nei metodi del kernel, è uno spazio di funzioni chiamato riproduzione dello spazio di Hilbert del kernel (RKHS). Questo spazio ha una proprietà speciale chiamata `` proprietà riproducente '' che è quella . Questo dice che per valutare , prima costruisci un vettore di funzione (infinitamente lungo come menzionato) per . Quindi costruisci il tuo vettore di caratteristiche per indicato da (infinitamente lungo). La valutazione di è data prendendo un prodotto interno dei due. Ovviamente, in pratica, nessuno costruirà un vettore infinitamente lungo. Dato che ci preoccupiamo solo del suo prodotto interno, valutiamo direttamente direttamente il kernelHf(x)=f,ϕ(x)f(x)fxϕ(x)f(x)k. Bypassare il calcolo di funzioni esplicite e calcolare direttamente il suo prodotto interno è noto come "trucco del kernel".

Quali sono le caratteristiche?

Continuavo a dire caratteristiche senza specificare quali fossero. Dato un kernel , le funzionalità non sono uniche. Ma è determinato in modo univoco. Per spiegare la fluidità delle funzioni, consideriamo le funzionalità di Fourier. Supponiamo un kernel invariante di traduzione , che significa , cioè il kernel dipende solo dalla differenza dei due argomenti. Il kernel gaussiano ha questa proprietà. Lascia che denoti la trasformata di Fourier di .k φ ( x ) , φ ( y ) k k ( x , y ) = k ( x - y ) k kϕ1(x),ϕ2(x),kϕ(x),ϕ(y)kk(x,y)=k(xy)k^k

In questo punto di vista di Fourier, le caratteristiche di sono date da . Questo sta dicendo che la rappresentazione della caratteristica della tua funzione è data dalla sua trasformata di Fourier divisa per la trasformata di Fourer del kernel . La rappresentazione della funzione di , che è è dove . Si può dimostrare che la proprietà riproduttiva è valida (un esercizio per i lettori).f : = (, f l / ffkxφ(x)(,f:=(,f^l/k^l,)fkxϕ(x)i=(,k^lexp(ilx),)i=1

Come in ogni spazio di Hilbert, tutti gli elementi appartenenti allo spazio devono avere una norma finita. Consideriamo la norma quadrata di un :fH

fH2=f,fH=l=f^l2k^l.

Quindi quando questa norma è finita, cioè appartiene allo spazio? È quando scende più velocemente di modo che la somma converga. Ora, la trasformata di Fourier di un kernel gaussianoff^l2k^l k(x,y)=exp(xy2σ2)

è un altro gaussiano in cui diminuisce esponenzialmente velocemente con . Quindi, se deve trovarsi in questo spazio, la sua trasformata di Fourier deve scendere anche più velocemente di quella di . Ciò significa che la funzione avrà effettivamente solo alcuni componenti a bassa frequenza con pesi elevati. Un segnale con solo componenti a bassa frequenza non si `` muove '' molto. Questo spiega perché un kernel gaussiano ti dà una funzione regolare.k^llfk

Extra: che dire di un kernel Laplace?

Se consideri un kernel di Laplace , la sua trasformata di Fourier è una distribuzione di Cauchy che scende molto più lentamente dell'esponenziale funzione nella trasformata di Fourier di un kernel gaussiano. Ciò significa che una funzione avrà più componenti ad alta frequenza. Di conseguenza, la funzione fornita da un kernel Laplace è `` più ruvida '' di quella fornita da un kernel gaussiano.k(x,y)=exp(xyσ)f

Qual è una proprietà del kernel gaussiano che altri kernel non hanno?

Indipendentemente dalla larghezza gaussiana, una proprietà è che il kernel gaussiano è `` universale ''. Intuitivamente, questo significa, data una limitata continuo funzione (arbitraria), esiste una funzione tale che e sono vicini (nel senso di fino alla precisione arbitraria necessaria. Fondamentalmente, questo significa che il kernel gaussiano fornisce funzioni che possono approssimare arbitrariamente bene le funzioni "belle" (limitate, continue). I kernel gaussiani e di Laplace sono universali. Un kernel polinomiale, ad esempio, non lo è.gfHfg)

Perché non mettiamo la norma attraverso, diciamo, un PDF di Cauchy e ci aspettiamo gli stessi risultati?

In generale, puoi fare tutto ciò che ti piace purché il risultante sia definito positivo. La definizione positiva è definita come per tutti , e tutti (set di numeri naturali) . Se non è definito positivo, allora non corrisponde a uno spazio interno del prodotto. Tutta l'analisi si interrompe perché non hai nemmeno uno spazio di funzioni come menzionato. Tuttavia, potrebbe funzionare empiricamente. Ad esempio, il kernel tangente iperbolico (vedere il numero 7 in questa pagina )ki=1Nj=1Nk(xi,xj)αiαj>0αiR{xi}i=1NNNkH

k(x,y)=tanh(αxy+c)

che ha lo scopo di imitare le unità di attivazione sigmoidea nelle reti neurali, è solo definito positivo per alcune impostazioni di e . Tuttavia è stato riferito che funziona in pratica.αc

Che dire di altri tipi di funzionalità?

Ho detto che le funzionalità non sono uniche. Per il kernel gaussiano, un altro set di funzionalità è dato dall'espansione di Mercer . Vedere la sezione 4.3.1 del famoso quaderno gaussiano . In questo caso, le caratteristiche sono polinomi di Hermite valutati in .ϕ(x)x


2
Non ho ancora intenzione di assegnare la generosità, ma sono tentato di assegnarla a questa risposta, perché è molto mirata alla domanda e fa confronti espliciti con altri kernel
Shadowtalker,

Finalmente questa domanda ha avuto un'ottima risposta! (+1) Sono stato brevemente confuso dalla notazione che hai usato qui: - e nei seguenti paragrafi. Una notazione più esplicita sarebbe più chiara separando una funzione agisce sullo spazio originale e un vettore , dove è funzionale? A proposito, quali funzioni sono garantite per essere "riprodotte" dalla "proprietà riproduttiva"? Tutti? Continuo? Liscio? f(x)=f,ϕ(x)f(x)=Ψ(f),ϕ(x)f()Ψ(f)HΨ()
ameba dice di reintegrare Monica l'

@amoeba In letteratura, le persone non distinguono una rappresentazione di e la funzione stessa. Se necessario, a volte usano per la rappresentazione e per una funzione. Tutte le funzioni nello spazio hanno la proprietà riproducente. Smooth o no, che è specificato dal kernel. :)fff()H
wij,

Aggiornato il post. Aggiunto un po 'di più sul kernel tanh.
wij,

Hmmm, penso di essere confuso qui. Iniziamo con uno spazio vettoriale , in cui i punti di dati vivono. Poi scegliamo una definita positiva kernel . Quindi affermiamo che il Teorema 1 sostiene: può essere realizzato come un prodotto punto su un certo spazio di Hilbert , tale che , dove . Va bene. E ora dici che qualsiasi funzione agisce su può essere realizzata come un prodotto scalare della sua rappresentazioneXxk(,):X×XRkHk(x,y)=ϕ(x),ϕ(y)ϕ:XHf(x)XfHcon ? È giusto? ϕ(x)
ameba dice di reintegrare Monica l'

18

Farò del mio meglio per rispondere a questa domanda non perché sono un esperto dell'argomento (piuttosto il contrario), ma perché sono curioso del campo e dell'argomento, combinato con l'idea che potrebbe essere una buona esperienza educativa . Comunque, ecco il risultato della mia breve ricerca amatoriale sull'argomento.

TL; DR : Considererei il seguente passaggio del documento di ricerca "La connessione tra operatori di regolarizzazione e kernel di supporto" come la risposta breve a questa domanda:

I kernel gaussiani tendono a fornire buone prestazioni in base a presupposti di scorrevolezza generali e dovrebbero essere considerati soprattutto se non è disponibile alcuna conoscenza aggiuntiva dei dati.

Ora, una risposta dettagliata (al meglio della mia comprensione; per i dettagli matematici, si prega di utilizzare i riferimenti).

Come sappiamo, l' analisi dei componenti principali (PCA) è un approccio molto popolare alla riduzione della dimensionalità , da solo e per la successiva classificazione dei dati: http://www.visiondummy.com/2014/05/feature-extraction-using-pca . Tuttavia, in situazioni in cui i dati portano dipendenze non lineari (in altre parole, inseparabili linearmente ), l'APC tradizionale non è applicabile (non funziona bene). In questi casi, è possibile utilizzare altri approcci e il PCA non lineare è uno di questi.

Approcci, in cui PCA si basa sull'uso della funzione kernel, di solito viene indicato, usando un termine ombrello "kernel PCA" ( kPCA ). L'uso del kernel con funzione di base radiale (RBF) gaussiana è probabilmente la variante più popolare. Questo approccio è descritto in dettaglio in più fonti, ma mi piace molto una spiegazione eccellente di Sebastian Raschka in questo post sul blog . Tuttavia, pur menzionando la possibilità di utilizzare le funzioni del kernel, oltre all'RBF gaussiano, il post si concentra su quest'ultimo grazie alla sua popolarità. Questo bel post sul blog , che introduce approssimazioni del kernel e trucco del kernel , menziona un'altra ragione possibile per la popolarità del kernel gaussiano per PCA: la dimensionalità infinita.

Ulteriori approfondimenti sono disponibili in diverse risposte su Quora. In particolare, la lettura di questa eccellente discussione rivela diversi punti su potenziali motivi della popolarità del kernel gaussiano, come segue.

  • I kernel gaussiani sono universali :

I kernel gaussiani sono kernel universali, ovvero il loro uso con un'adeguata regolarizzazione garantisce un predittore globale ottimale che minimizza gli errori di stima e approssimazione di un classificatore.

  • I kernel gaussiani sono circolari (il che porta alla summenzionata dimensionalità infinita?)
  • I chicchi gaussiani possono rappresentare "terreni molto diversi"
  • Il seguente punto, a sostegno della conclusione principale di cui sopra, è meglio espresso citando l'autore:

Il kernel gaussiano RBF è molto popolare e crea un buon kernel predefinito soprattutto in assenza di conoscenze specialistiche su dati e dominio perché in qualche modo prende anche il kernel polinomiale e lineare. I kernel lineari e i kernel polinomiali sono un caso speciale del kernel gaussiano RBF. I kernel gaussiani RBF sono modelli non parametrici, il che significa essenzialmente che la complessità del modello è potenzialmente infinita perché il numero di funzioni analitiche è infinito.

  • I kernel gaussiani sono ottimali (sulla scorrevolezza , leggi di più qui - stesso autore):

Un kernel gaussiano è solo un filtro passa banda; seleziona la soluzione più fluida. [...] Un kernel gaussiano funziona meglio quando la somma infinita di derivati ​​di alto ordine converge più velocemente - e questo accade per le soluzioni più fluide.

Infine, ulteriori punti da questa bella risposta :

  • I kernel gaussiani supportano modelli infinitamente complessi
  • I kernel gaussiani sono più flessibili

APPUNTI:

Il punto di cui sopra sul fatto che il kernel gaussiano sia una scelta ottimale , specialmente quando non esiste alcuna conoscenza preliminare dei dati, è supportato dalla seguente frase di questa risposta CV :

In assenza di conoscenze specialistiche, il kernel della funzione di base radiale crea un buon kernel predefinito (una volta stabilito che si tratta di un problema che richiede un modello non lineare).

Per coloro che sono curiosi delle differenze non essenziali tra il kernel gaussiano RBF e il kernel gaussiano standard, questa risposta potrebbe essere interessante: https://stats.stackexchange.com/a/79193/31372 .

Per coloro che sono interessati a implementare kPCA per piacere o per affari, questo bel post sul blog potrebbe essere utile. È scritto da uno degli autori (creatori?) Di Accord.NET , un framework open source .NET molto interessante per analisi statistiche, apprendimento automatico, elaborazione dei segnali e molto altro.


5
Apprezzo e applaudo lo sforzo messo nel comporre questa risposta, ma allo stesso tempo devo dire che cita da molte fonti che non sono molto autorevoli e che forniscono solo questo tipo di spiegazioni generali ondulate a mano che potrebbero essere corrette ma potrebbero anche essere completamente falso. Quindi il kernel RBF è un kernel isotropico stazionario con uno spazio di Hilbert che riproduce una dimensione infinita. Buono! Ci sono altri kernel con queste proprietà? Se è così, perché RBF sarebbe meglio di tutti loro? In effetti, esiste un supporto empirico all'affermazione che RBF supera questi concorrenti?
ameba dice di reintegrare Monica il

@amoeba: grazie per le belle parole. Per quanto riguarda le fonti che ho usato, hai in parte ragione: è un mix e alcune fonti sono solo opinioni. Tuttavia, alcune fonti (ovvero i post del blog) citano essi stessi documenti solidi. A questo punto, ero più attratto dalla qualità di una spiegazione piuttosto che dal suo rigore. Per quanto riguarda le tue domande, mi sto preparando ad affrontarle in seguito. Ho bisogno di leggere un po 'più di teoria. Ho già compilato fonti con supporto empirico, ma ho bisogno di più tempo per la loro sistematizzazione (e un po 'di sonno :).
Aleksandr Blekh,

1
Ho la sensazione che il gaussiano abbia la massima entropia tra le distribuzioni simmetriche reali gioca un ruolo nel tuo primo punto sulla buona prestazione sotto assunzione generale
Shadowtalker

2
Anche @AleksandrBlekh è una raccolta fantastica. La gente strilla su Quora ma non è meno autorevole del collegamento a un'altra risposta qui
shadowtalker

@ssdecontrol: grazie per le belle parole. Sono contento che siamo sulla stessa pagina sull'argomento. Ho alcune informazioni aggiuntive per rispondere al commento di amoeba, quindi guarda questo spazio, se sei interessato.
Aleksandr Blekh,

8

Lasciami inserire i miei due centesimi.

Il modo in cui penso ai kernel gaussiani è come classificatore dei vicini più vicini in un certo senso. Quello che fa un kernel gaussiano è che rappresenta ogni punto con la distanza da tutti gli altri punti nel set di dati. Ora pensa ai classificatori con confini lineari o polinomiali, i limiti sono limitati a determinate forme. Tuttavia, quando guardi il vicino più vicino, il confine può praticamente prendere qualsiasi forma. Questo è il motivo per cui pensiamo al kernel gaussiano anche come non parametrico, ovvero adattare il confine in base ai dati. Un altro modo di pensare è il kernel gaussiano che si adatta alla forma locale in una regione, simile a come un vicino più vicino regola il confine localmente osservando la distanza da altri punti della regione locale.

Non ho un argomento matematico per questo, ma penso che il fatto che il kernel gaussiano sia effettivamente mappato su uno spazio di dimensioni infinite ha qualcosa a che fare con il suo successo. Per i kernel lineari e polinomiali, i prodotti punto sono presi in spazi di dimensioni finite; quindi sembra più potente fare le cose in uno spazio più ampio. Spero che qualcuno abbia una migliore comprensione di queste cose. Ciò significa anche che se possiamo trovare altri kernel con spazi dimensionali infiniti, dovrebbero anche essere abbastanza potenti. Sfortunatamente, non conosco nessuno di questi kernel.

Per il tuo ultimo punto, penso che Cauchy pdf o qualsiasi altro pdf che in qualche modo misura la distanza da altri punti dovrebbe funzionare altrettanto bene. Ancora una volta, non ho una buona argomentazione matematica per questo, ma la connessione con il vicino più vicino rende questo plausibile.

Modificare:

Ecco alcune idee su come pensare a un classificatore che utilizza i kernel gaussiani come classificatori più vicini. Innanzitutto, pensiamo a cosa fa un classificatore del vicino più vicino. In sostanza, un classificatore adiacente più vicino è un classificatore standard che utilizza le distanze tra i punti come input. Più formalmente, immagina di creare una rappresentazione di caratteristiche per ciascun punto nel set di dati calcolando la sua distanza da tutti gli altri punti. Sopra, è una funzione di distanza. Quindi, ciò che fa un classificatore adiacente più vicino è predire l'etichetta di classe per un punto in base a questa rappresentazione di caratteristiche ed etichette di classe per i dati. doveϕixi

ϕi=(d(xi,x1),d(xi,x2),,d(xi,xn))
d
pi=f(ϕi,y)
pi è la previsione per il punto dati e è un vettore di etichette di classe per .xiyx1,x2,,xn

Il modo in cui penso ai kernel è che fanno una cosa simile; creano una rappresentazione caratteristica di ciascun punto usando i suoi valori del kernel con altri punti nel set di dati. Simile al caso del vicino più vicino, più formalmente sarebbe Ora la connessione con il vicino più vicino è abbastanza ovvia; se la nostra funzione del kernel è una misura correlata alle misure della distanza che utilizziamo nei classificatori vicini più vicini, il nostro classificatore basato sul kernel sarà simile al modello vicino più vicino.

ϕi=(k(xi,x1),k(xi,x2),,k(xi,xn))

Nota: i classificatori che formiamo usando i kernel non funzionano direttamente con queste rappresentazioni , ma penso che sia quello che fanno implicitamente.ϕi


L'interpretazione dei vicini più vicini è interessante. Pensi di poterci espandere un po '? Penso di averlo capito ma non sono sicuro di averlo fatto.
Shadowtalker

@ssdecontrol Ho aggiunto alcuni commenti; Spero siano di aiuto.
Goker

6

Il motivo è che la dimensione VC per i kernel gaussiani è infinita e, quindi, dati i valori corretti per i parametri (sigma), possono classificare correttamente un numero arbitrariamente grande di campioni.

Gli RBF funzionano bene perché assicurano che la matrice sia al massimo. L'idea è che e i termini off-diagonali possano essere arbitrariamente ridotti diminuendo il valore di . Si noti che il kernel corrisponde a un prodotto punto nello spazio delle funzionalità. In questo spazio delle caratteristiche, la dimensione è infinita (considerando l'espansione in serie dell'esponenziale). Si potrebbe quindi vedere questo come proiettare quei punti in diverse dimensioni in modo da poterli separare.K(xi,xj)K(xi,xi)>0σ

Consideriamo invece il caso dei kernel lineari, che possono frantumare solo quattro punti sul piano.

Puoi dare un'occhiata a questo documento , anche se è molto tecnico. Uno dei libri standard sulle SVM dovrebbe rendere questo concetto più accessibile.


1
"Gli RBF funzionano bene perché assicurano che la matrice sia al massimo": questo vale per ogni funzione del kernel (Mercer) valida (compresa quella lineare), quindi non sono sicuro di come spieghi -performance dell'RBF. K(xi,xj)
user603

2
Oltre a ciò che @ user603 ha appena scritto: ci sono altri kernel popolari con dimensione VC infinita (dimensione dello spazio target)? Se è così, sono buoni come RBF?
ameba dice di reintegrare Monica il

2
La dimensione VC non è una proprietà di un insieme di classificatori, non la proprietà di un kernel?
wij,

2
@ user603: questo non è vero. I kernel Mercer richiedono solo che la matrice del kernel sia semidefinita positiva; possono essere singolari. Ad esempio, il kernel lineare in effetti fornisce matrici di kernel singolari se è nel tuo insieme di punti. (Naturalmente, la maggior parte dei kernel sono definiti in modo strettamente positivo e quindi questa non è una proprietà particolarmente distintiva del RBF gaussiano.)xi=0
Dougal
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.