Support Vector Machines è ancora considerato "all'avanguardia" nella sua nicchia?


58

Questa domanda è in risposta a un commento che ho visto su un'altra domanda.

Il commento riguardava il programma del corso di Machine Learning su Coursera e sulla falsariga di "SVM non sono usati così tanto al giorno d'oggi".

Ho appena terminato da solo le lezioni pertinenti e la mia comprensione degli SVM è che sono un algoritmo di apprendimento robusto ed efficiente per la classificazione e che quando usano un kernel hanno una "nicchia" che copre il numero di funzionalità forse da 10 a 1000 e numero di campioni di addestramento forse da 100 a 10.000. Il limite per i campioni di addestramento è perché l'algoritmo di base ruota attorno all'ottimizzazione dei risultati generati da una matrice quadrata con dimensioni basate sul numero di campioni di addestramento, non sul numero di caratteristiche originali.

Anche il commento che ho visto fa riferimento ad alcuni cambiamenti reali dal momento che il corso è stato realizzato, e in tal caso, qual è quel cambiamento: un nuovo algoritmo che copre anche il "punto debole" di SVM, CPU migliori che significano che i vantaggi computazionali di SVM non valgono tanto ? O è forse opinione o esperienza personale del commentatore?

Ho provato a cercare, ad esempio, "sono macchine vettoriali di supporto fuori moda" e non ho trovato nulla che sottintendesse che sarebbero state abbandonate a favore di qualsiasi altra cosa.

E Wikipedia ha questo: http://en.wikipedia.org/wiki/Support_vector_machine#Issues . . . il principale punto critico sembra essere la difficoltà di interpretare il modello. Il che rende SVM perfetto per un motore di previsione black-box, ma non così buono per generare intuizioni. Non lo vedo come un grosso problema, solo un'altra cosa minore da prendere in considerazione quando si sceglie lo strumento giusto per il lavoro (insieme alla natura dei dati di formazione e attività di apprendimento, ecc.).



6
Non capisco - non è una domanda che dovrebbe essere pubblicata su CrossValidated? Continuo a essere confuso su ciò che accade tra DataScience e CrossValidated.
fnl

@fnl: svms ha una certa concorrenza come classificatori di soluzioni ingegnerizzate meno matematicamente "pure", quindi penso che DataScience sia in una posizione migliore per fare il confronto qui. Anche se condivido la tua confusione!
Neil Slater,

Risposte:


47

SVM è un potente classificatore. Ha dei bei vantaggi (che immagino fossero responsabili della sua popolarità) ... Questi sono:

  • Efficienza: solo i vettori di supporto svolgono un ruolo nel determinare il limite di classificazione. Tutti gli altri punti del set di allenamento non devono essere memorizzati.
  • Il cosiddetto potere dei kernel: con i kernel appropriati è possibile trasformare lo spazio delle caratteristiche in una dimensione superiore in modo che diventi linearmente separabile. La nozione di kernel funziona con oggetti arbitrari su cui è possibile definire alcune nozioni di somiglianza con l'aiuto di prodotti interni ... e quindi gli SVM possono classificare oggetti arbitrari come alberi, grafici ecc.

Ci sono anche alcuni svantaggi significativi.

  • Sensibilità dei parametri: le prestazioni sono altamente sensibili alla scelta del parametro di regolarizzazione C, che consente una certa varianza nel modello.
  • Parametro aggiuntivo per il kernel gaussiano: il raggio del kernel gaussiano può avere un impatto significativo sulla precisione del classificatore. In genere è necessario eseguire una ricerca sulla griglia per trovare parametri ottimali. LibSVM ha un supporto per la ricerca in griglia.

Gli SVM appartengono generalmente alla classe di "Macchine per kernel sparse". I vettori sparsi nel caso di SVM sono i vettori di supporto che vengono scelti dal criterio del margine massimo. Altre macchine vettoriali sparse come la Rilevanza vettoriale pertinente (RVM) funzionano meglio di SVM. La figura seguente mostra una prestazione comparativa dei due. Nella figura, l'asse x mostra i dati monodimensionali da due classi y = {0,1}. Il modello di miscela è definito come P (x | y = 0) = Unif (0,1) e P (x | y = 1) = Unif (.5,1.5) (Unif indica una distribuzione uniforme). 1000 punti sono stati campionati da questa miscela e un SVM e un RVM sono stati usati per stimare il posteriore. Il problema di SVM è che i valori previsti sono lontani dalle vere probabilità del log.

RVM vs. SVM

Un classificatore molto efficace, oggi molto popolare, è la Foresta casuale . I principali vantaggi sono:

  • Un solo parametro da mettere a punto (ovvero il numero di alberi nella foresta)
  • Non completamente sensibile ai parametri
  • Può essere facilmente esteso a più classi
  • Si basa su principi probabilistici (massimizzare il guadagno di informazioni reciproche con l'aiuto di alberi decisionali)

4
Non intendo essere eccessivamente critico, ma gli SVM NON sono efficienti. Nella maggior parte dei casi presentano una complessità cubica, motivo per cui si stanno verificando molte eliminazioni graduali.
indico,

2
sì, i metodi di convergenza standard prendono O (n ^ 3) ... ma penso di aver visto da qualche parte (potrebbe essere dalla home page di T. Joachims) che è stato ridotto a O (n ^ 2)
Debasis

4
@indico per la maggior parte dei problemi pratici la complessità dell'allenamento SVM è più vicina al quadratico. La SMO cubica di Platt è fuori uso da un po 'di tempo. È ancora troppo alto per insiemi di dati veramente grandi, ma non è così male come si vede. SVM lineare è altamente efficiente, con complessità sublineare.
Marc Claesen,

Altri vantaggi degli SVM: 1) Il loro funzionamento interno può essere ben immaginato da persone che non hanno familiarità con l'analisi dei dati. [e, in misura minore: 2) Se è richiesto un feedback interattivo in tempo reale da parte di un esperto (non di scienza dei dati), le SVM lineari possono essere un'opzione più rapida - con conseguente migliore formazione da parte degli esperti.]
tsttst

2
Le foreste casuali hanno in genere altri iperparametri, come il numero massimo di funzioni per albero e la profondità massima. Vale anche la pena notare che le SVM sono facili da mettere in produzione in ambienti con risorse limitate: non hanno bisogno di molta memoria per assegnare un punteggio al modello.
David Anderson,

8

Nel rispondere a questa domanda una distinzione significativa fare è se stiamo parlando di lineare Support Vector Machines o non lineare , che è, kernelized Support Vector Machines.

SVM lineari

Gli SVM lineari sono entrambi in teoria e praticano modelli molto validi quando i tuoi dati possono essere spiegati da relazioni lineari delle tue caratteristiche. Sono superiori rispetto ai metodi classici come la regressione lineare (ovvero i minimi quadrati) perché sono robusti , nel senso che piccole perturbazioni nei dati di input non producono cambiamenti significativi nel modello. Ciò si ottiene cercando di trovare la linea (iperpiano) che massimizza i margini tra i punti dati. È stato dimostrato che questo iperpiano con margine massimo offre garanzie sulla capacità di generalizzazione del modello rispetto a punti dati invisibili, una proprietà teorica di cui mancano altri metodi di apprendimento automatico.

Le SVM lineari sono anche interpretabili come qualsiasi altro modello lineare, poiché ogni funzione di input ha un peso che influenza direttamente l'output del modello.

Anche gli SVM lineari sono molto veloci da addestrare, mostrando tempi di allenamento sublineari per set di dati molto grandi. Ciò si ottiene facendo uso di tecniche stocastiche di discesa gradiente, molto alla moda degli attuali metodi di apprendimento profondo.

SVM non lineari

Gli SVM non lineari sono ancora modelli lineari e vantano gli stessi vantaggi teorici, ma utilizzano il cosiddetto trucco del kernel per costruire questo modello lineare su uno spazio allargato. Il risultato visibile è che il modello risultante può prendere decisioni non lineari sui dati. Poiché è possibile fornire un kernel personalizzato che codifica somiglianze tra i punti dati, è possibile utilizzare la conoscenza dei problemi per focalizzare tale kernel nelle parti rilevanti del problema. Fare questo in modo efficace, tuttavia, può essere difficile, quindi in generale quasi tutti usano il kernel gaussiano plug-and-play.

Le SVM non lineari sono parzialmente interpretabili, in quanto ti dicono quali dati di allenamento sono rilevanti per la previsione e quali no. Ciò non è possibile per altri metodi come foreste casuali o reti profonde.

Sfortunatamente gli SVM non lineari sono lenti. L'algoritmo all'avanguardia è l' ottimizzazione minima sequenziale , che mostra prestazioni quadratiche, ed è ampiamente implementato attraverso la libreria LIBSVM in una serie di librerie di machine learning, incluso scikit-learn.

Popolarità di questi metodi

È vero che le SVM non sono così popolari come una volta: questo può essere verificato cercando su Google documenti di ricerca o implementazioni per SVM vs foreste casuali o metodi di apprendimento profondo. Tuttavia, sono utili in alcune impostazioni pratiche, specialmente nel caso lineare.

Inoltre, tieni presente che a causa del teorema del pranzo gratuito, nessun metodo di apprendimento automatico può essere dimostrato superiore a qualsiasi altro problema. Mentre alcuni metodi funzionano meglio in generale, troverai sempre set di dati in cui un metodo non così comune otterrà risultati migliori.

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.