Qual è l'intuizione alla base del fatto che un SVM con un kernel gaussiano ha uno spazio di funzionalità dimensionale infinito?
Qual è l'intuizione alla base del fatto che un SVM con un kernel gaussiano ha uno spazio di funzionalità dimensionale infinito?
Risposte:
Questa risposta spiega quanto segue:
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:
(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 ) , dove i valori y ( i ) sono ± 1 . Vogliamo imparare una funzione di classificazione
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 ynel suo quartiere. Formalmente, abbiamo
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
Poiché è così piccolo, y ( x ( k ) ) ha sicuramente lo stesso segno di y ( k ) , e il classificatore raggiunge perfetta precisione sui dati di addestramento.
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):
dove è la mappatura dallo spazio dati allo spazio funzioni. Segue immediatamente che la y ( x ) funzione come funzione lineare nello spazio delle caratteristiche:
dove la funzione lineare è definita sui vettori dello spazio caratteristiche v as
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.
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!
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 .
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 È 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 .
Il prodotto interno nello spazio non è il normale prodotto a punti, ma un prodotto interno astratto basato sul kernel:
Con lo spazio delle caratteristiche definito in questo modo, è una mappatura X → V , portando ogni punto x alla "sezione kernel" in quel punto:
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!)
Questa risposta fornisce una bella spiegazione dell'algebra lineare, ma ecco una prospettiva geometrica, con intuizione e dimostrazione.
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 z. 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.
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 ) )è linearmente indipendente dai primi vettori Φ ( x ( i ) ) .
Prova per contraddizione. Supponiamo che
Ora prendi il prodotto interno su entrambi i lati con una arbitraria . Dall'identità ⟨ Φ ( z ) , Φ ( x ) ⟩ = K ( z , x ) , si ottiene
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.
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.
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 ) | |. Tuttavia, la geometria della sfera è piatta. Puoi leggere di più al riguardo in
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.
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 .
È noto che il kernel può essere scritto come (' ⋅ ' rappresenta il prodotto interno.) Dove Φ è una trasformazione (implicita e sconosciuta) in una nuova funzionalità spazio.
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.
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 ) . ( N è la dimensione del campione di addestramento).
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?
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.