Differenza tra SVM e percettrone


29

Sono un po 'confuso con la differenza tra un SVM e un percettrone. Vorrei provare a sintetizzare la mia comprensione qui, e non esitate a correggere dove sbaglio e compilare ciò che ho perso.

  1. Il Perceptron non tenta di ottimizzare la "distanza" di separazione. Finché trova un iperpiano che separa i due set, è buono. SVM d'altra parte cerca di massimizzare il "vettore di supporto", cioè la distanza tra due punti campione opposti più vicini.

  2. L'SVM tenta in genere di utilizzare una "funzione del kernel" per proiettare i punti di campionamento su uno spazio ad alta dimensione per renderli separabili linearmente, mentre il percettrone assume che i punti di campionamento siano separabili linearmente.


Risposte:


18

Mi sembra giusto. Le persone a volte usano anche la parola "Perceptron" per riferirsi all'algoritmo di allenamento insieme al classificatore. Ad esempio, qualcuno mi ha spiegato questo nella risposta a questa domanda . Inoltre, non c'è nulla che ti impedisca di usare un kernel con il perctron, e questo è spesso un miglior classificatore. Vedi qui per alcune diapositive (pdf) su come implementare il perceptron del kernel.

La principale differenza pratica tra un perctron (kernel) e SVM è che i perctroni possono essere allenati online (cioè i loro pesi possono essere aggiornati man mano che nuovi esempi arrivano uno alla volta) mentre gli SVM non possono esserlo. Vedi questa domanda per informazioni sulla possibilità di addestrare SVM online. Quindi, anche se un SVM è di solito un miglior classificatore, i perctroni possono ancora essere utili perché sono economici e facili da riqualificare in una situazione in cui arrivano costantemente nuovi dati di allenamento.


3
Le SVM possono essere addestrate online. Da una duplice soluzione è possibile ottenere il corrispondente corrispondente e da questo si aggiornano i pesi in modo stocastico.
Firebug,


4

SVM:

minw2+Ci=1n(1yi(wxi+w0))+
Perceptron
mini=1n(yi(wxi+w0))+

Possiamo vedere che SVM ha quasi lo stesso obiettivo del percettrone regolarizzato L2.

w2

Perché perceptron consente l'aggiornamento online? Se vedi la regola di aggiornamento della discesa gradiente per la perdita della cerniera (la perdita della cerniera viene utilizzata sia da SVM che da perctron),

wt=wt1+η1Ni=1NyixiI(yiwtxi0)

Poiché tutti gli algoritmi di apprendimento automatico possono essere visti come la combinazione della funzione di perdita e dell'algoritmo di ottimizzazione.

Perceptron non è altro che perdita della cerniera (funzione di perdita) + discesa gradiente stocastica (ottimizzazione)

wt=wt1+yy+1xt+1I(yt+1wtxt+10)

E SVM può essere visto come perdita di cerniera + regolarizzazione l2 (perdita + regolarizzazione) + programmazione quadratica o altri algoritmi di ottimizzazione più elaborati come SMO (ottimizzazione).


-1

Perceptron è la generalizzazione di SVM in cui SVM è il percettrone con stabilità ottimale. Quindi hai ragione quando dici che perceptron non cerca di ottimizzare la distanza di separazione.

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.