In che modo SVM può "trovare" uno spazio infinito di funzioni in cui la separazione lineare è sempre possibile?


36

Qual è l'intuizione alla base del fatto che un SVM con un kernel gaussiano ha uno spazio di funzionalità dimensionale infinito?


1
Non capisco davvero la domanda. Vuoi una spiegazione del perché il suo spazio caratteristica corrispondente è una dimensione infinita o un'interpretazione di ciò che significa l'iperpiano risultante?
Marc Claesen,

1
Non mi dispiacerebbe sentire entrambi!
user36162

5
Penso che questa sia una domanda interessante (+1)

Risposte:


39

Questa risposta spiega quanto segue:

  1. Perché una separazione perfetta è sempre possibile con punti distinti e un kernel gaussiano (di larghezza di banda sufficientemente piccola)
  2. Come questa separazione può essere interpretata come lineare, ma solo in uno spazio di caratteristiche astratte distinto dallo spazio in cui vivono i dati
  3. Come viene trovata la mappatura dallo spazio dati allo spazio funzioni. Spoiler: non è stato trovato da SVM, è implicitamente definito dal kernel che scegli.
  4. Perché lo spazio delle caratteristiche è infinito-dimensionale.

1. Raggiungere una separazione perfetta

Una separazione perfetta è sempre possibile con un kernel gaussiano (a condizione che due punti di classi diverse non siano mai esattamente uguali) a causa delle proprietà di localizzazione del kernel, che portano a un confine di decisione arbitrariamente flessibile. Per una larghezza di banda del kernel sufficientemente piccola, il limite della decisione sembrerà che tu abbia appena disegnato piccoli cerchi attorno ai punti ogni volta che sono necessari per separare gli esempi positivi e negativi:

Qualcosa come questo

(Credito: corso di apprendimento automatico online di Andrew Ng ).

Quindi, perché questo accade da una prospettiva matematica?

Considera l'installazione standard: hai un kernel gaussiano e dati di addestramento ( x ( 1 ) , y ( 1 ) ) , ( x ( 2 ) , y ( 2 ) ) , , ( x ( n ) ,K(x,z)=exp(||xz||2/σ2) dove i valori y ( i ) sono ± 1 . Vogliamo imparare una funzione di classificazione(x(1),y(1)),(x(2),y(2)),,(x(n),y(n))y(i)±1

y^(x)=iwiy(i)K(x(i),x)

Ora come faremo mai assegnare i pesi ? Abbiamo bisogno di spazi dimensionali infiniti e un algoritmo di programmazione quadratica? No, perché voglio solo dimostrare che posso separare perfettamente i punti. Quindi rendo σ un miliardo di volte più piccolo della separazione più piccola | | x ( i ) - x ( j ) | | tra due esempi di allenamento e ho appena impostato w i = 1 . Ciò significa che tutti i punti di formazione sono un miliardo di sigma a parte per quanto il kernel è interessato, e ogni punto controlla completamente il segno della ywiσ||x(i)x(j)||wi=1y^nel suo quartiere. Formalmente, abbiamo

y^(x(k))=i=1ny(k)K(x(i),x(k))=y(k)K(x(k),x(k))+iky(i)K(x(i),x(k))=y(k)+ϵ

dove un valore arbitrariamente minuscolo. Sappiamo ε è piccolo perché x ( k ) è un miliardo di sigma lontano da qualsiasi altro punto, quindi per tutti i k abbiamoϵϵx(k)ik

K(x(i),x(k))=exp(||x(i)x(k)||2/σ2)0.

Poiché è così piccolo, y ( x ( k ) ) ha sicuramente lo stesso segno di y ( k ) , e il classificatore raggiunge perfetta precisione sui dati di addestramento.ϵy^(x(k))y(k)

2. Apprendimento del kernel SVM come separazione lineare

Il fatto che ciò possa essere interpretato come "perfetta separazione lineare in uno spazio di caratteristiche di dimensione infinita" deriva dal trucco del kernel, che consente di interpretare il kernel come un prodotto interno in uno spazio di funzionalità (potenzialmente infinito-dimensionale):

K(x(i),x(j))=Φ(x(i)),Φ(x(j))

dove è la mappatura dallo spazio dati allo spazio funzioni. Segue immediatamente che la y ( x ) funzione come funzione lineare nello spazio delle caratteristiche:Φ(x)y^(x)

y^(x)=iwiy(i)Φ(x(i)),Φ(x)=L(Φ(x))

dove la funzione lineare è definita sui vettori dello spazio caratteristiche v asL(v)v

L(v)=iwiy(i)Φ(x(i)),v

Questa funzione è lineare in perché è solo una combinazione lineare di prodotti interni con vettori fissi. Nello spazio delle caratteristiche, il confine decisione y ( x ) = 0 è solo L ( v ) = 0 , il livello impostato di una funzione lineare. Questa è la definizione stessa di un iperpiano nello spazio delle caratteristiche.vy^(x)=0L(v)=0

3. Comprensione della mappatura e dello spazio delle funzioni

Nota: in questa sezione, la notazione riferisce a una serie arbitraria di n punti e non ai dati di allenamento. Questa è pura matematica; i dati di allenamento non figurano affatto in questa sezione!x(i)n

Metodi kernel mai realmente "trovare" o "calcolare" lo spazio funzione o la mappatura esplicitamente. I metodi di apprendimento del kernel come SVM non ne hanno bisogno per funzionare; hanno solo bisogno della funzione del kernel K .ΦK

Detto questo, è possibile scrivere una formula per . Lo spazio delle caratteristiche a cui Φ è mappato è un po 'astratto (e potenzialmente di dimensione infinita), ma essenzialmente la mappatura sta usando semplicemente il kernel per fare una semplice ingegneria delle caratteristiche. In termini di risultato finale, il modello che finisci per apprendere, usando i kernel non è diverso dall'ingegnerizzazione tradizionale delle funzioni comunemente applicata nella regressione lineare e nella modellazione GLM, come prendere il registro di una variabile predittiva positiva prima di inserirla in una formula di regressione. La matematica è per lo più solo lì per assicurarsi che il kernel funzioni bene con l'algoritmo SVM, che ha i suoi vantati vantaggi di scarsità e ridimensionamento bene su grandi set di dati.ΦΦ

Se sei ancora interessato, ecco come funziona. Essenzialmente prendiamo l'identità vogliamo attesa , e costruire uno spazio e prodotto interno tale che detiene per definizione. Per fare questo, definiamo uno spazio vettoriale astratto V dove ogni vettore è una funzione dallo spazio i dati vivono in, X , ai numeri reali R . Un vettore f in V è una funzione formata da una combinazione lineare finita di sezioni del kernel: f ( xΦ(x),Φ(y)=K(x,y)VXRfV È conveniente scrivere f in modo più compatto come f = n i = 1 α i K x ( i ) dove K x ( y ) = K ( x , y ) è una funzione che fornisce una "fetta" del kernel in x .

f(x)=i=1nαiK(x(i),x)
f
f=i=1nαiKx(i)
Kx(y)=K(x,y)x

Il prodotto interno nello spazio non è il normale prodotto a punti, ma un prodotto interno astratto basato sul kernel:

i=1nαiKx(i),j=1nβjKx(j)=i,jαiβjK(x(i),x(j))

Con lo spazio delle caratteristiche definito in questo modo, è una mappatura XV , portando ogni punto x alla "sezione kernel" in quel punto:ΦXVx

Φ(x)=Kx,whereKx(y)=K(x,y).

Puoi provare che è uno spazio interno del prodotto quando K è un kernel definito positivo. Vedi questo documento per i dettagli. (Complimenti a coppens per averlo sottolineato!)VK

4. Perché lo spazio delle caratteristiche è infinito-dimensionale?

Questa risposta fornisce una bella spiegazione dell'algebra lineare, ma ecco una prospettiva geometrica, con intuizione e dimostrazione.

Intuizione

Per ogni punto fisso , abbiamo una funzione di slice del kernel K z ( x ) = K ( z , x ) . Il grafico di K z è solo una protuberanza gaussiana centrata su zzKz(x)=K(z,x)Kzz. Ora, se lo spazio delle caratteristiche fosse solo di dimensione finita, ciò significherebbe che potremmo prendere una serie finita di protuberanze in una serie fissa di punti e formare qualsiasi protuberanza gaussiana altrove. Ma chiaramente non c'è modo di farlo; non puoi creare un nuovo urto dai vecchi dossi, perché il nuovo dosso potrebbe essere davvero molto lontano da quelli vecchi. Quindi, indipendentemente da quanti vettori di funzioni (dossi) abbiamo, possiamo sempre aggiungere nuovi dossi, e nello spazio delle caratteristiche questi sono nuovi vettori indipendenti. Quindi lo spazio delle caratteristiche non può essere di dimensione finita; deve essere infinito.

Prova

Usiamo l'induzione. Supponiamo di avere una serie arbitraria di punti tale che i vettori Φ ( x ( i ) ) siano linearmente indipendenti nello spazio delle caratteristiche. Ora trova un punto x ( n + 1 ) distinto da questi n punti, in effetti a un miliardo di sigma da tutti loro. Sosteniamo che Φ ( x ( n + 1 ) )x(1),x(2),,x(n)Φ(x(i))x(n+1)nΦ(x(n+1))è linearmente indipendente dai primi vettori Φ ( x ( i ) ) .nΦ(x(i))

Prova per contraddizione. Supponiamo che

Φ(x(n+1))=i=1nαiΦ(x(i))

Ora prendi il prodotto interno su entrambi i lati con una arbitraria . Dall'identità Φ ( z ) , Φ ( x ) = K ( z , x ) , si ottienexΦ(z),Φ(x)=K(z,x)

K(x(n+1),x)=i=1nαiK(x(i),x)

Qui è una variabile libera, quindi questa equazione è un'identità che afferma che due funzioni sono uguali. In particolare, afferma che un gaussiano centrato su x ( n + 1 ) può essere rappresentato come una combinazione lineare di gaussiani in altri punti x ( i ) . È ovvio dal punto di vista geometrico che non si può creare un dosso gaussiano centrato in un punto da una combinazione finita di dossi gaussiani centrati in altri punti, specialmente quando tutti quegli altri dossi gaussiani sono lontani un miliardo di sigmi. Quindi la nostra assunzione di dipendenza lineare ha portato a una contraddizione, come abbiamo iniziato a mostrare.xx(n+1)x(i)


6
La separazione perfetta è impossibile. Controesempio: (0,0, ClasssA), (0,0, ClassB). Buona fortuna a separare questo set di dati!
Anony-Mousse,

4
Questo è ... tecnicamente corretto, il miglior tipo di corretto! Avere un voto. Aggiungerò una nota nel post.
Paul,

3
(Penso che il tuo punto abbia senso se hai bisogno di una distanza minima tra campioni di classi diverse. Potrebbe valere la pena sottolineare che in questo scenario, l'SVM diventa un classificatore più vicino)
Anony-Mousse

1
Mi occupo solo del caso del set di allenamento finito, quindi c'è sempre una distanza minima tra i punti una volta che ci viene dato un set di allenamento con punti distinti con cui lavorare. n
Paul,

@Paul Per quanto riguarda la tua sezione 2, ho una domanda. Puoi essere il representer nei nostri RKHS per punto formazione x ( i ) e k x per arbitrario nuovo punto x in modo che y ( x ) = Σ i w i y ( i )k i , k x= Σ i w i y ( i ) k i ( x ) quindi la funzione kix(i)kxxy^(x)=iwiy(i)ki,kx=iwiy(i)ki(x)per qualcheziR. Per me questo è come la versione funzione di spazio di y dell'essere nello spazio colonnaXper la regressione lineare ed è dove la linearità viene veramente da. Questa descrizione sembra accurata? Sto ancora imparando molto questa roba RKHS. y^=izikiziRy^X
jld

12

La matrice kernel del kernel gaussiano ha sempre rango pieno per distinti . Ciò significa che ogni volta che aggiungi un nuovo esempio, il rango aumenta di 1 . Il modo più semplice per vederlo se si imposta σ molto piccolo. Quindi la matrice del kernel è quasi diagonale.x1,...,xm1σ

Il fatto che il rango aumenti sempre di uno significa che tutte le proiezioni nello spazio delle caratteristiche sono linearmente indipendenti (non ortogonali, ma indipendenti). Pertanto, ciascun esempio aggiunge una nuova dimensione a campata delle sporgenze Φ ( x 1 ) , . . . , Φ ( x m ) . Poiché è possibile aggiungere innumerevoli esempi infiniti, lo spazio delle caratteristiche deve avere dimensioni infinite. È interessante notare che tutte le proiezioni dello spazio di input nello spazio delle caratteristiche si trovano su una sfera, poiché | | Φ ( x ) | |Φ(x)Φ(x1),...,Φ(xm). Tuttavia, la geometria della sfera è piatta. Puoi leggere di più al riguardo in||Φ(x)||H²=k(x,x)=1

Burges, CJC (1999). Geometria e invarianza nei metodi basati sul kernel. In B. Schölkopf, CJC Burges e AJ Smola (a cura di), i progressi nei metodi del kernel supportano l'apprendimento vettoriale (pagg. 89-116). MIT Premere.


Ancora non lo capisco, ma ti sei comunque guadagnato un
voto

Vuoi dire, non capisci perché la geometria è piatta o perché è di dimensione infinita? Grazie per il voto.
fabee

Se ho 100 esempi, lo spazio delle mie funzioni è tridimensionale o già infinitamente dimensionale? Perché posso aggiungere "innumerevoli" infiniti esempi? Non è un infinito numerabile? Perché qui conta o non contabilità? Non ho ancora provato a pensare alla "sfera piatta": D Grazie per le tue spiegazioni!
stmax,

5
Spero che tu mi creda che ogni nuovo esempio è linearmente indipendente da tutti quelli precedenti (tranne per la stessa ). In R n non puoi farlo: ogni punto oltre n deve essere linearmente dipendente dagli altri. Per l'RKHS gaussiano, se hai 100 esempi diversi, si estendono su un sottospazio di 100 dimensioni dello spazio dimensionale infinito. Quindi l'intervallo è di dimensione finita, ma lo spazio delle caratteristiche in cui vivono è di dimensione infinita. L'infinito è numerabile, perché ogni nuovo punto in R n è una nuova dimensione e ci sono innumerevoli punti in R n . xRnnRnRn
fabee

@fabee: l'ho provato in un modo diverso, sembra che tu ne sappia molto, puoi dare un'occhiata alla mia risposta se l'ho trovata più o meno "giusta"?

5

Per lo sfondo e le notazioni rimando alla risposta Come calcolare il limite di decisione dai vettori di supporto? .

Quindi le caratteristiche nello spazio "originale" sono i vettori , il risultato binario y i{ - 1 , + 1 } e i moltiplicatori di Lagrange sono α i .Xioyio{-1,+1}αio

È noto che il kernel può essere scritto come (' ' rappresenta il prodotto interno.) Dove Φ è una trasformazione (implicita e sconosciuta) in una nuova funzionalità spazio.K(X,y)=Φ(X)Φ(y)Φ

Cercherò di dare una spiegazione 'intuitiva' di come sia , quindi questa risposta non è una prova formale, vuole solo dare una sensazione di come penso che funzioni . Non esitare a correggermi se sbaglio. La base per la mia spiegazione è la sezione 2.2.1 di questo pdfΦ

Devo "trasformare" il mio spazio delle caratteristiche (quindi la mia ) in un "nuovo" spazio delle caratteristiche in cui verrà risolta la separazione lineare.Xio

Per ogni osservazione , ho definire funzioni Phi; i ( x ) = K ( x i , x ) , quindi ho una funzione φ i per ogni elemento del mio campione di training. Queste funzioni Phi; i SPAN uno spazio vettoriale. Lo spazio vettoriale attraversato da ϕ i , annotalo V = s p a n ( ϕ i , i = 1 , 2 , ... N ) . ( NXioφio(X)=K(Xio,X)φioφioφioV=Spun'n(φio,io=1,2,...N)N è la dimensione del campione di addestramento).

VVφioi=1NγiϕiγiV={v=i=1Nγiϕi|(γ1,γ2,γN)RN}

(γ1,γ2,γN)vV

NVNϕiϕi(x)=K(xi,x)ϕV

ϕi(x)=K(xi,x)VN

V

Φ:xiϕi(x)=K(xi,x)

ΦΦxiVϕii

xiVi=1Nγiϕiγi

f(x)f(x)=iyiαiϕi(x)+bf(x)=0

f(x)ϕi f(x)=0Vγiγi=αiyi

yiαiV

V

Quindi i kernel sono una tecnica che consente a SVM di trasformare lo spazio delle tue funzionalità, vedi anche Cosa rende il kernel gaussiano così magico per PCA, e anche in generale?


+1 questo è solido. Ho tradotto questo materiale nel mio stile espositivo e l'ho aggiunto alla mia risposta.
Paul,

5

Sfortunatamente, la spiegazione di fcop è piuttosto errata. Prima di tutto dice "È noto che il kernel può essere scritto come ... dove ... è una trasformazione (implicita e sconosciuta) in un nuovo spazio di funzionalità". NON è sconosciuto. Questo è in effetti lo spazio a cui sono mappate le caratteristiche e questo è lo spazio che potrebbe essere di dimensione infinita come nel caso RBF. Tutto il kernel fa è prendere il prodotto interno di quel vettore di feature trasformato con un vettore di feature trasformato di un esempio di addestramento e applicare alcune funzioni al risultato. Quindi rappresenta implicitamente questo vettore di caratteristiche di dimensione superiore. Pensa di scrivere (x + y) ^ 2 invece di x ^ 2 + 2xy + y ^ 2 per esempio. Ora pensa a quale serie infinita è rappresentata implicitamente dalla funzione esponenziale ... lì hai il tuo spazio infinito di funzionalità.

Il modo giusto di pensare alle SVM è di mappare le tue funzionalità su uno spazio di dimensioni forse infinito che è implicitamente rappresentabile in un altro spazio di funzionalità "Kernel" di dimensioni finite la cui dimensione potrebbe essere grande quanto la dimensione del set di addestramento.

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.