La differenza dei kernel in SVM?


27

Qualcuno può dirmi la differenza tra i kernel in SVM:

  1. Lineare
  2. Polinomio
  3. Gaussiano (RBF)
  4. sigmoid

Perché, come sappiamo, il kernel viene utilizzato per mappare il nostro spazio di input nello spazio di funzionalità ad alta dimensionalità. E in quello spazio delle caratteristiche, troviamo il confine linearmente separabile.

Quando vengono utilizzati (a quali condizioni) e perché?

Risposte:


4

Il kernel lineare è quello che ti aspetteresti, un modello lineare. Credo che il kernel polinomiale sia simile, ma il confine è di un ordine definito ma arbitrario

(es. ordine 3: ).un'=B1+B2⋅X+B3⋅X2+B4⋅X3

RBF utilizza curve normali attorno ai punti dati e le somma in modo che il limite di decisione possa essere definito da un tipo di condizione di topologia come le curve in cui la somma è superiore a un valore di 0,5. (vedi questa foto )

Non sono sicuro di cosa sia il kernel sigmoid, a meno che non sia simile al modello di regressione logistica in cui una funzione logistica viene utilizzata per definire le curve in base a dove il valore logistico è maggiore di un valore (probabilità di modellazione), come 0,5 come il normale Astuccio.


Quindi, possiamo ottenere l'iperpiano separabile più sottile (confine), se usiamo il kernel lineare ?? e se usiamo il kernel polinomiale o RBF, l'hyperane (per polinomio) potrebbe essere un cerchio di classi raggruppate (per RBF) e curve ?? è giusto?? scikit-learn.org/stable/modules/svm.html
— user3378327

Ognuno dei kernals lavora per versioni ad alta dimensione dei rispettivi confini. Questo risponde alla tua domanda? Non sei limitato a tre dimensioni per qualsiasi kernel di cui sono a conoscenza.
— John Yetter,

Voglio solo chiarirlo. Quindi il limite usando il kernel lineare è lineare? Per RBF è come un cerchio di classe raggruppata ?? e per il polinomio, può essere curva in base al grado del polinomio ??
— user3378327

Non direi che RBF è un circolo di classe raggruppata. La mia comprensione è che applica una funzione basata su una distribuzione normale in ciascun punto di dati e somma queste funzioni. Quindi un confine è formato dalla curva che rappresenta un certo valore su quella funzione. Se qualcuno che ha contribuito a una libreria SVM potesse intervenire, ciò potrebbe aiutare. Penso che la tua comprensione degli altri due kernel sia corretta.
— John Yetter,

U ha detto che Linier Kernel è quello che mi aspettavo (per ottenere una classe separabile in modo sottile) usando Kernel. e usando il classificatore SVM, lo abbiamo chiamato LINIER SVM. Ma come se potessimo ottenere i dati separabili più piccoli senza alcun kernel in SVM. Come lo chiamiamo ?? Ancora Linier SVM o Non Linier SVM ??
— user3378327

11

Basandosi sulla conoscenza di base del lettore sui kernel.

K(X,Y)=XTY

K(X,Y)=(γ⋅XTY+r)d,γ>0

K(X,Y)=exp⁡(‖X-Y‖2/2σ2)exp⁡(-γ⋅‖X-Y‖2),γ>0

Kernel sigmoideo: che è simile alla funzione sigmoide nella regressione logistica.K(X,Y)=tanh⁡(γ⋅XTY+r)

Qui , e sono parametri del kernel.rdγ


3
Mentre le informazioni nella tua risposta sono corrette, non credo che risponda alla domanda qui sollevata, che è più verso quale sia la differenza pratica tra loro, cioè quando usare l'uno o l'altro.
— Firebug,

1
Sorprendentemente queste semplici definizioni sono difficili da trovare. Dovrebbero essere la prima cosa presentata quando si parla di differenze di kernel, eppure c'è un diffuso fallimento nel dichiararle.
— cammil,

Esiste una fonte ufficiale per questi? (Li ho testati e sembrano corretti, ma mi piacerebbe poterli citare.)
— Christian Eriksson

6

A questa domanda si può rispondere dal punto di vista teorico e pratico. Dal teorico secondo il teorema del pranzo libero, si afferma che non ci sono garanzie che un kernel funzioni meglio dell'altro. Questo è a priori che non sai mai né puoi scoprire quale kernel funzionerà meglio.

Dal punto di vista pratico consultare la seguente pagina:

Come selezionare il kernel per SVM?


1

Riflettendo su ciò che un kernel è "buono" o quando dovrebbe essere usato, non ci sono regole rigide e veloci.

Se il tuo classificatore / regressore funziona bene con un dato kernel, è opportuno, in caso contrario, considerare di passare a un altro.

Informazioni su come potrebbe funzionare il tuo kernel, in particolare se si tratta di un modello di classificazione, potrebbero essere acquisite esaminando alcuni esempi di visualizzazione, ad esempio https://gist.github.com/WittmannF/60680723ed8dd0cb993051a7448f7805

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.