Percezione multistrato vs rete neurale profonda


16

Questa è una questione di terminologia. A volte vedo che le persone si riferiscono a reti neurali profonde come "percetroni multistrato", perché? Un percettrone, mi hanno insegnato, è un classificatore a singolo strato (o regressore) con un'uscita di soglia binaria che utilizza un modo specifico di allenamento dei pesi (non di sostegno). Se l'output del perctron non corrisponde all'output target, aggiungiamo o sottraggiamo il vettore di input ai pesi (a seconda che il perctron abbia fornito un falso positivo o un falso negativo). È un algoritmo di apprendimento automatico piuttosto primitivo. La procedura di addestramento non sembra generalizzare a un caso a più livelli (almeno non senza modifiche). Una rete neurale profonda viene addestrata tramite backprop che utilizza la regola della catena per propagare i gradienti della funzione di costo attraverso tutti i pesi della rete.

Quindi, la domanda è. Un "percettrone multistrato" è la stessa cosa di una "rete neurale profonda"? In tal caso, perché viene utilizzata questa terminologia? Sembra essere inutilmente confuso. Inoltre, supponendo che la terminologia sia in qualche modo intercambiabile, ho visto la terminologia "perceptron multistrato" solo quando mi riferivo a una rete feed-forward composta da strati completamente collegati (nessun livello convoluzionale o connessioni ricorrenti). Quanto è ampia questa terminologia? Si userebbe il termine "perceptron multistrato" quando si fa riferimento, ad esempio, a Inception net? Che ne dite di una rete ricorrente che utilizza i moduli LSTM utilizzati nella PNL?


1
Rete neurale profonda = rete neurale con> 1 strato nascosto, MLP rientra in questa categoria.
Tim

è solo un rebranding. Le MLP sono state pubblicizzate negli anni '90 e soppiantate dagli SVM, quindi è necessario chiamarle in modo diverso negli anni 2000. il suggerimento è che dnn ha più livelli, ma non una differenza così grande, ad esempio Le Net [MLP / CNN] (1998) 2 convoluzionale 2 completamente connesso. alexnet = DNN (2012) 5 convoluzionale e 3 completamente connessi.
seanv507,

Le SVM si basano sulla salita a gradiente, le ANN si basano sulla discesa a gradiente, quindi non hanno soppiantato le ANN. Le SVM erano ipervendute e abusate perché gli studenti laureati non sapevano nulla delle ANN. Per eseguire SVM, gli studenti hanno appena preso i pacchetti R e hanno finito. Ma per le ANN, hai bisogno di un intero semestre per capirle da una prospettiva di metodi numerici, non da una prospettiva linguistica interpretativa (cioè schiaffi del codice insieme).
JoleT,

Risposte:


21

Si può considerare il percettrone multi-strato (MLP) come un sottoinsieme di reti neurali profonde (DNN), ma spesso sono usati in modo intercambiabile in letteratura.

L'ipotesi che i percettroni siano nominati in base alla loro regola di apprendimento non è corretta. La classica "regola di aggiornamento perceptron" è uno dei modi in cui può essere utilizzato per addestrarlo. Il rifiuto precoce delle reti neurali fu proprio per questo motivo, poiché la regola di aggiornamento percettrone era incline a svanire ed esplodere gradienti, rendendo impossibile addestrare reti con più di un livello.

L'uso della retro-propagazione nelle reti di allenamento ha portato all'utilizzo di funzioni alternative di attivazione di schiacciamento come tanh e sigmoid .

Quindi, per rispondere alle domande,

la domanda è. Un "percettrone multistrato" è la stessa cosa di una "rete neurale profonda"?

MLP è un sottoinsieme di DNN. Mentre DNN può avere loop e MLP sono sempre feed-forward, ovvero

Un percettrone multistrato (MLP) è un grafico aciclico finito

perché viene utilizzata questa terminologia?

Molte delle terminologie utilizzate nella letteratura scientifica hanno a che fare con le tendenze del tempo e hanno preso piede.

Quanto è ampia questa terminologia? Si userebbe il termine "perceptron multistrato" quando si fa riferimento, ad esempio, a Inception net? Che ne dite di una rete ricorrente che utilizza i moduli LSTM utilizzati nella PNL?

Quindi, sì inizio, rete convoluzionale, resnet ecc. Sono tutti MLP perché non esiste un ciclo tra le connessioni. Anche se esiste una connessione di scelta rapida che salta i livelli, purché sia ​​in avanti, può essere definita percezione multistrato. Tuttavia, LSTM o Vanilla RNN ecc. Hanno connessioni cicliche, quindi non possono essere chiamate MLP ma sono un sottoinsieme di DNN.

Questa è la mia comprensione delle cose. Perfavore, correggimi se sbaglio.

Link di riferimento:

/cs/53521/what-is-difference-between-multilayer-perceptron-and-multilayer-neural-network

https://en.wikipedia.org/wiki/Multilayer_perceptron

https://en.wikipedia.org/wiki/Perceptron

http://ml.informatik.uni-freiburg.de/former/_media/teaching/ss10/05_mlps.printer.pdf


1
solo per curiosità: ho pensato che la regressione logistica fosse una tecnica di regressione perché si stima la probabilità di appartenenza alla classe 1, anziché alla classe. In quanto tale, non mi sembra una tecnica di classificazione (il ricercatore / analista deve decidere un limite di probabilità per classificarlo in base alla regressione logistica).
IWS,

@IWS hai ragione. Vari utenti su questo sito hanno ripetutamente sottolineato che la regressione logistica è un modello per la stima della probabilità (condizionale), non un classificatore. Vedi ad esempio qui .
DeltaIV

1
Modificata la risposta da correggere Ad esempio, "regressione logistica" è una tecnica di classificazione e, per così dire, non dovrebbe essere definita come "regressione" . Il link condiviso da @DeltaIV rende molto chiaro il motivo per cui è una regressione e non un classificatore.
m1cro1ce,

8

Buona domanda: nota che nel campo del Deep Learning le cose non sono sempre ben definite e chiaramente definite come nell'apprendimento statistico (anche perché c'è molto clamore), quindi non aspettarti di trovare definizioni rigorose come in Matematica. Comunque, il perceptron multistrato è una specifica architettura di rete neurale feed-forward, in cui si accumulano più livelli completamente connessi (quindi, nessun livello di convoluzione), dove le funzioni di attivazione delle unità nascoste sono spesso un sigmoide o un tanh. I nodi del livello di output solitamente hanno funzioni di attivazione softmax (per classificazione) o funzioni di attivazione lineare (per regressione). Le architetture MLP tipiche non sono "profonde", ovvero non abbiamo molti livelli nascosti. Di solito hai, diciamo, da 1 a 5 livelli nascosti. Queste reti neurali erano comuni negli anni '80,

Ora, con Deep Neural Network intendiamo una rete che ha molti livelli (19, 22, 152, ... persino > 1200 , anche se è certamente molto estremo). Nota che

  • non abbiamo specificato l'architettura della rete, quindi potrebbe essere feed-forward, ricorrente, ecc.
  • non abbiamo specificato la natura delle connessioni, quindi potremmo avere livelli completamente connessi, livelli convoluzionali, ricorrenza, ecc.
  • "molti" livelli, certamente, non è una definizione rigorosa.

32×32+32×10=134411584pesi. Questo è un NN minuscolo per gli standard di oggi. Tuttavia, quando si continua ad addestrarlo su un set di dati adeguatamente ampio, si scopre che il tasso di convergenza è rallentato enormemente. Ciò non è solo dovuto al maggior numero di pesi, ma anche al problema del gradiente che svanisce : la propagazione all'indietro calcola il gradiente della funzione di perdita moltiplicando gli errori su ogni livello e questi piccoli numeri diventano esponenzialmente più piccoli più sono i livelli aggiunti. Pertanto, gli errori non si propagano (o si propagano molto lentamente) lungo la rete e sembra che l'errore sul set di allenamento smetta di diminuire con le epoche di allenamento.

E questa era una piccola rete: le profonde reti neurali convoluzionali chiamate AlexNet avevano 5 strati ma 60 milioni di pesi ed è considerata piccola dagli standard di oggi! Quando hai così tanti pesi, allora qualsiasi set di dati è "piccolo" - anche ImageNet, un set di dati usato per la classificazione, ha "solo" circa 1 milione di immagini, quindi il rischio di overfitting è molto più grande che per una rete poco profonda.

Il Deep Learning può quindi essere inteso come l'insieme di strumenti che vengono utilizzati nella pratica per addestrare reti neurali con un gran numero di strati e pesi, ottenendo un basso errore di generalizzazione. Questo compito pone più sfide che per le reti più piccole. Puoi sicuramente costruire un Perceptron multistrato profondo e addestrarlo - ma (a parte il fatto che non è l'architettura ottimale per molte attività in cui viene utilizzato Deep Learning oggi) probabilmente utilizzerai strumenti che sono diversi da quelli utilizzati quando si utilizzavano le reti "superficiale". Ad esempio, potresti preferire le unità di attivazione ReLU a sigmoid o tanh, perché attenuano il problema del gradiente di fuga.


La precedente risposta di m1cro1ce afferma che una conv-net (come il principio) può anche essere classificata come MLP, mentre si specifica che un MLP non può avere livelli convoluzionali (e sembra che tu stia insinuando che la scelta delle funzioni di attivazione funzioni anche influenza ciò che può essere chiamato un MLP o no?). Esiste un accordo in letteratura (o all'interno della comunità ML) su cosa significhi esattamente MLP e cosa non significa? Se qualcuno mi dicesse "Voglio che tu costruisca un MLP per l'attività X" cosa mi limiterò a fare?
enumaris,

@enumaris non sei limitato dalla legge a fare qualsiasi cosa. L'ultima volta che ho controllato, era ancora legale costruire una CNN e chiamarla MLP. Ovviamente rifiuterei un tale documento / poster / qualunque cosa, ma sono io e non posso parlare per l'intera comunità DL che non è esattamente famosa per il suo uso rigoroso della terminologia. Ad ogni modo, la mia definizione: rete neurale feed-forward con layer completamente connessi e almeno alcune funzioni di attivazione non lineari (altrimenti, indipendentemente da quanti layer, è sempre equivalente a una rete lineare a layer singolo) è la stessa che puoi trovare in .. .
DeltaIV

... Wikipedia . Nota la linea nella sezione dei livelli "Poiché le MLP sono completamente connesse [..]". Questo esclude le CNN. Puoi trovare la stessa definizione (feed-forward, completamente connesso, almeno i livelli nascosti hanno funzioni di attivazione non lineari) in questo libro . Per quanto riguarda le funzioni di attivazione, non mi sembra assolutamente implicare nulla. Ho appena detto che le MLP di solito hanno funzioni di attivazione tanh o sigmoid, ma non è obbligatorio.
DeltaIV,

Vorrei contrassegnare una di queste 2 risposte come risposta accettata, ma poiché forniscono risposte contrastanti, vorrei sapere quale risposta è quella più comunemente trovata in letteratura o nella comunità ML.
enumaris,

@enumaris il titolo della tua domanda è "Perceptron multi-layer vs rete neurale profonda", e ti chiedi se a "multi-layer perceptron" the same thing as a "deep neural network": a questa domanda è stata data una risposta dettagliata, sia nella mia sia nella risposta di m1cro1ce. Ora stai ponendo la domanda "le CNN sono un sottoinsieme di MLP?" - i siti Stack Exchange hanno una politica di una domanda per posta .
DeltaIV,

0

Voglio aggiungerlo secondo quanto ho letto da molti post:

Ci sono molte diverse architetture attraverso DNN come: MLP (Multi-Layer Perceptron) e CNN (Convolutional Neural Networks). Quindi diversi tipi di DNN progettati per risolvere diversi tipi di problemi.

MLPs è il tipo classico di NN che viene utilizzato per:

  • Set di dati tabulari (contengono dati in un formato colonnare come in una tabella di database).
  • Classificazione / regressione, previsione pbs.

Le MLP sono molto e possono essere generalmente utilizzate per inclinare la mappatura da in put a output.

Ma puoi provare per altri formati come i dati di immagine come punto di confronto della linea di base per confermare che altri modelli sono più adatti.

CNN progettati per mappare i dati di immagine su una variabile di output. è usato per:

  • Dati immagine,
  • classificazione / predizione di regressione pbs,

Funziona bene con i dati che hanno relazioni spaziali .

È tradizionalmente usato per i dati 2D ma può essere usato per i dati 1D, le CNN raggiungono lo stato dell'arte su alcuni pbs 1D.

Devi prima "definire chiaramente" ciò che intendi risolvere come problema (con quale tipo di dati lavorare, problema di classificazione / regressione ... ecc.) Per sapere quale tipo di architettura usare.

Puoi fare riferimento a quei link che mi sono stati così utili per capire di più su questi concetti :).

Spero che questa aggiunta sia utile: p.

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.