Quali sono i vantaggi delle reti neurali artificiali rispetto alle macchine vettoriali di supporto? [chiuso]


381

ANN (Artificial Neural Networks) e SVM (Support Vector Machines) sono due strategie popolari per l'apprendimento automatico e la classificazione supervisionati. Spesso non è chiaro quale sia il metodo migliore per un determinato progetto, e sono certo che la risposta è sempre "dipende". Spesso viene utilizzata una combinazione di entrambi insieme alla classificazione bayesiana.

Queste domande su StackOverflow sono già state poste per quanto riguarda ANN vs SVM:

Classificazione ANN e SVM

qual è la differenza tra ANN, SVM e KNN nella mia domanda di classificazione

Supportare la macchina vettoriale o la rete neurale artificiale per l'elaborazione del testo?

In questa domanda, vorrei sapere in particolare quali aspetti di una ANN (in particolare, un Perceptron multistrato) potrebbero rendere desiderabile l'utilizzo su un SVM? Il motivo per cui lo chiedo è perché è facile rispondere alla domanda opposta : Support Vector Machines sono spesso superiori alle ANN perché evitano due principali punti deboli delle ANN:

(1) Le ANN spesso convergono su minimi locali piuttosto che minimi globali, il che significa che a volte essenzialmente "manca il quadro generale" (o manca la foresta per gli alberi)

(2) Le ANN spesso sovrautilizzano se l'allenamento dura troppo a lungo, il che significa che per una data sequenza, una ANN potrebbe iniziare a considerare il rumore come parte della sequenza.

Le SVM non soffrono di nessuno di questi due problemi. Tuttavia, non è prontamente evidente che gli SVM debbano essere un sostituto totale degli ANN. Quindi quali specifici vantaggi ha una RNA rispetto a una SVM che potrebbe renderla applicabile a determinate situazioni? Ho elencato i vantaggi specifici di un SVM rispetto a un ANN, ora mi piacerebbe vedere un elenco di vantaggi ANN (se presenti).


61
Purtroppo questo probabilmente verrà chiuso o spostato presto, ma adoro la domanda. Non vorrei niente di meglio che vedere una serie di risposte ponderate a questo.
duffymo,

10
Immagino che la maggior parte delle risposte a questa domanda siano speculative o basate su prove, perché ci sono pochissime garanzie teoriche sul potere di queste macchine. Ad esempio (se ricordo bene), non è noto se una rete neurale feed-forward n-layer sia più potente di una rete a 2 layer. Quindi, come possiamo dire che uno è meglio dell'altro in linea di principio se non comprendiamo nemmeno le relazioni tra lievi variazioni dello stesso modello?
JeremyKun,

13
È chiuso per non essere molto costruttivo ... Lol!
erogol

65
Adoro che StackOverflow cerchi di mantenere alta la qualità delle domande e delle risposte. Odio che StackOverflow imponga questo con un'ascia anziché un bisturi. C'è una differenza tra chiedere "come faccio HTML stuffz?" e una domanda specifica del dominio che sarebbe difficile trovare una risposta altrove. C'è una ragione per cui ha 140 voti, ma è considerato "non costruttivo". Domande come questa sono l' epitome di costruttivo. Certamente molto di più di molti di quelli che vedo ogni giorno che rientrano ordinatamente nel formato Domande e risposte, pur essendo inutili per quasi tutti tranne che per chi lo chiede.
Chase Ries,

20
Questo è ovviamente costruttivo. Non riesco a capire perché sarebbe chiuso. Richiede situazioni specifiche in cui l'utilizzo di un algoritmo presenta vantaggi rispetto all'uso di un algoritmo alternativo. Non è una cosa ragionevole da chiedere?
Rab,

Risposte:


137

A giudicare dagli esempi che fornisci, presumo che per ANN si intendono le reti feed-forward multistrato (in breve reti FF), come i percettroni multistrato, perché sono in diretta concorrenza con le SVM.

Un vantaggio specifico che questi modelli hanno sugli SVM è che le loro dimensioni sono fisse: sono modelli parametrici , mentre gli SVM non sono parametrici. Cioè, in una ANN hai un mucchio di livelli nascosti con dimensioni da h 1 a h na seconda del numero di funzioni, oltre a parametri di polarizzazione e quelli che compongono il modello. Al contrario, un SVM (almeno un kernel) è costituito da una serie di vettori di supporto, selezionati dalla serie di addestramento, con un peso per ciascuno. Nel peggiore dei casi, il numero di vettori di supporto è esattamente il numero di campioni di addestramento (sebbene ciò si verifichi principalmente con piccoli set di addestramento o in casi degeneri) e in generale la sua dimensione del modello si ridimensiona in modo lineare. Nell'elaborazione del linguaggio naturale, i classificatori SVM con decine di migliaia di vettori di supporto, ciascuno con centinaia di migliaia di funzionalità, non sono inauditi.

Inoltre, l'addestramento online delle reti FF è molto semplice rispetto all'adattamento SVM online e la previsione può essere un po 'più veloce.

EDIT : tutto quanto sopra riguarda il caso generale degli SVM con kernel. Le SVM lineari sono un caso speciale in quanto sono parametriche e consentono l'apprendimento online con semplici algoritmi come la discesa gradiente stocastica.


12
Un altro motivo può essere trovato in questo documento: yann.lecun.com/exdb/publis/pdf/bengio-lecun-07.pdf . In breve, l'autore afferma che le "architetture profonde" possono rappresentare comportamenti / funzioni "intelligenti" ecc. In modo più efficiente rispetto alle "architetture poco profonde" come le SVM.
alfa,

1
A parte questo, il deep learning perde un po 'i "vantaggi" qui forniti per le MLP (dimensione fissa, formazione più semplice). Non sono sicuro che questi vantaggi ne valgano la pena, comunque.
Muhammad Alkarouri,

6
@MuhammadAlkarouri: l'apprendimento profondo è un insieme piuttosto ampio di tecniche, ma quelle con cui ho familiarità mantengono il vantaggio che i modelli sono parametrici (dimensioni fisse).
Fred Foo,

Due commenti: il punto di addestramento online è vero, ma esiste una variante di classificatori simili a SVM appositamente progettati per l'apprendimento online, chiamati MIRA (un tipo di classificatore passivo-aggressivo) per i quali gli aggiornamenti sono banali. In secondo luogo, vale la pena sottolineare che molte reti neurali possono essere formulate come SVM attraverso il trucco del kernel.
Ben Allison,

1
@FredFoo anche ANN può essere bloccato nei minimi locali in cui le macchine vettoriali di supporto non sono soggette a questo problema.
turista

62

Un ovvio vantaggio delle reti neurali artificiali rispetto alle macchine vettoriali di supporto è che le reti neurali artificiali possono avere un numero qualsiasi di output, mentre le macchine vettoriali di supporto ne hanno solo uno. Il modo più diretto per creare un classificatore n-ary con macchine vettoriali di supporto è creare n macchine vettoriali di supporto e formare ciascuna di esse una per una. D'altra parte, un classificatore n-ary con reti neurali può essere addestrato in una volta sola. Inoltre, la rete neurale avrà più senso perché è un tutt'uno, mentre le macchine vettoriali di supporto sono sistemi isolati. Ciò è particolarmente utile se le uscite sono correlate.

Ad esempio, se l'obiettivo fosse classificare le cifre scritte a mano, dieci macchine vettoriali di supporto farebbero. Ogni macchina vettoriale di supporto riconoscerebbe esattamente una cifra e non riconoscerebbe tutte le altre. Dal momento che ogni cifra scritta a mano non può contenere più informazioni della sua classe, non ha senso cercare di risolverlo con una rete neurale artificiale.

Tuttavia, supponiamo che l'obiettivo fosse quello di modellare l'equilibrio ormonale di una persona (per diversi ormoni) in funzione di fattori fisiologici facilmente misurabili come il tempo trascorso dall'ultimo pasto, la frequenza cardiaca, ecc ... Dal momento che questi fattori sono tutti correlati, neuronali artificiali la regressione della rete ha più senso del supporto della regressione della macchina vettoriale.


18
In realtà, esistono vere formulazioni multiclasse della macchina vettoriale di supporto (vedi i documenti di Crammer & Singer). Credo che LibSVM contenga un'implementazione di questi.
Fred Foo,

3
Tuttavia, addestrare un SVM multiclasse non è così semplice e le prestazioni sembrano essere migliori nell'approccio OVA rispetto all'approccio AVA.
crodriguezo,

3
"Non ha senso provare a risolverlo con una rete neurale artificiale" È possibile utilizzare una rete neurale per risolvere la classificazione delle cifre scritte a mano. L'ho fatto come un compito hw per una lezione. Il livello di output contiene le probabilità di tutte le cifre. La classe con la più alta probabilità è usata come ipotesi. Ho avuto un tasso di precisione del 94%.
user3266824

Intendi creare n numero di classificatori SVM 1 contro N-1 rispetto a NN per creare n uscite. SVM sembra essere più lento in questo modo?
mskw,

@ user3266824 Bene, quella citazione non è andata bene.
esegui DOSrun il

46

Una cosa da notare è che i due sono in realtà molto correlati. Le SVM lineari sono equivalenti alle NN a singolo strato (cioè, percettroni) e le NN a più strati possono essere espresse in termini di SVM. Vedi qui per alcuni dettagli.


18

Se vuoi usare un kernel SVM devi indovinare il kernel. Tuttavia, le ANN sono approssimatori universali con la sola ipotesi da fare è la larghezza (precisione dell'approssimazione) e l'altezza (efficienza dell'approssimazione). Se si progetta correttamente il problema di ottimizzazione, non si adatta in modo eccessivo (consultare la bibliografia per un adattamento eccessivo). Dipende anche dagli esempi di addestramento se eseguono una scansione corretta e uniforme dello spazio di ricerca. La scoperta di larghezza e profondità è oggetto della programmazione di numeri interi.

Supponiamo di avere funzioni limitate f (.) E approssimatori universali limitati su I = [0,1] con intervallo di nuovo I = [0,1] ad esempio che sono parametrizzati da una sequenza reale di supporto compatto U (., A) con la proprietà con cui esiste una sequenza di sequenze

lim sup { |f(x) - U(x,a(k) ) | : x } =0

e disegni esempi e test (x,y)con una distribuzione D attiva IxI.

Per un supporto prescritto, quello che fai è trovare il migliore in modo tale

sum {  ( y(l) - U(x(l),a) )^{2} | : 1<=l<=N } is minimal

Lascia a=aache questa sia una variabile casuale !, lo è quindi l'over-fitting

utilizzo medio D and D^{N} of ( y - U(x,aa) )^{2}

Lasciami spiegare perché, se selezioni in modo aatale che l'errore sia minimizzato, allora per un raro set di valori hai la misura perfetta. Tuttavia, poiché sono rari, la media non è mai 0. Si desidera ridurre al minimo il secondo sebbene si abbia un'approssimazione discreta a D. E tenere presente che la lunghezza del supporto è gratuita.


14

Una risposta qui mi manca: perceptron multi-layer è in grado di trovare una relazione tra le caratteristiche. Ad esempio, è necessario nella visione artificiale quando viene fornita un'immagine non elaborata all'algoritmo di apprendimento e ora vengono calcolate funzionalità sofisticate. In sostanza i livelli intermedi possono calcolare nuove funzionalità sconosciute.


12

Dovremmo anche considerare che il sistema SVM può essere applicato direttamente a spazi non metrici, come l'insieme di grafici o stringhe etichettati. In effetti, la funzione interna del kernel può essere generalizzata correttamente praticamente a qualsiasi tipo di input, a condizione che sia soddisfatto il requisito di definitività positiva del kernel. D'altro canto, per poter utilizzare una RNA su una serie di grafici etichettati, è necessario prendere in considerazione procedure di incorporamento esplicito.


6
Nella mia mente, la costruzione di un kernel sensibile e la costruzione di un incorporamento metrico sensato sono ugualmente problematici. Quindi questo è solo un commento sul fatto che potrebbero esserci kernel più vari delle metriche, ma non lo compro davvero. ohli.de/download/papers/Deza2009.pdf
JeremyKun
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.