Qual è la differenza tra rete neurale feed-forward e LSTM ? In che modo differiscono nella loro architettura?
Risposta
Una rete neurale feed-forward ha questo aspetto:
input -> livello nascosto 1 -> livello nascosto 2 -> … -> livello nascosto k -> output.
Ogni livello può avere un numero diverso di neuroni, ma questa è larchitettura .
Un LSTM (cella di memoria a lungo termine) è un tipo speciale di nodo allinterno di una rete neurale. Può essere inserito in una rete neurale feedforward, e di solito lo è . Quando ciò accade, la rete neurale feedforward viene chiamata LSTM (in modo confuso!).
Quindi come funziona un LSTM? Dai unocchiata alla mia risposta qui: Forget Layer in a Recurrent Neural Network (RNN) –
tl; dr: una cella LSTM ha tre porte, ognuna delle quali viene utilizzata per modulare il suo input in qualche modo: una porta di input, una porta di dimenticanza e una porta di uscita. Ha una “memoria” e unuscita che vengono modificate dalle porte. Cioè, allinterno di una singola cella LSTM:
(input stato cella precedente) -> (input & dimentica porte) -> (aggiorna stato cella)
(input & stato cella precedente & stato cella aggiornato) -> (porta di uscita)
Puoi impilare queste celle in molte configurazioni diverse. Quindi non esiste una singola “rete LSTM”, piuttosto un insieme di molte possibili architetture che possono essere costruite da questi nodi di base.
Spero che questo ti faccia iniziare!
Commenti
- Grazie mille per la tua risposta ma puoi aggiungere alcune immagini per migliorare la mia comprensione dellarchitettura
- Che dire della propagazione a ritroso nella rete di feed forward si verifica in feed forward network
- Ciao @codezcar, ci sono immagini dellLSTM nella mia risposta che ho collegato. Per una rete neurale feedforward, unimmagine è qui: medium.com/random-techpark/… Sì, tu può utilizzare la backpropagation per trovare i pesi ottimali in qualsiasi tipo di rete neurale (feed forward, LSTM, GRU, … qualsiasi cosa!).
Risposta
Come menzionato da Philipp, le reti con cicli di feedback aiutano a modellare il tempo nei dati.
Ti consigliamo di guardare questo per una panoramica di varie architetture NN: https://i.stack.imgur.com/LgmYv.png
Risposta
Le reti di feed forward sono reti in cui ogni nodo è connesso solo con i nodi del livello successivo. Non hanno connessioni “circolari”. I dati possono viaggiare solo dallinput alloutput senza loop. Esempi potrebbero essere Simple Layer Perceptron o Multilayer Perceptrion. Anche le reti neurali convoluzionali sono reti puramente feed-forward
In opposizione a che sono reti neurali ricorrenti. LSTM è una di quelle. Questi RNN possono anche essere collegati “lateralmente”. Ciò significa che i tuoi dati possono viaggiare non solo in avanti nel livello successivo ma anche verso altri nodi nello stesso livello o allindietro. Da unarchitettura punto di vista che significa che sebbene tu abbia una rete con forse un solo livello nascosto, ottieni “profondità” aggiungendo loop ai nodi in quel livello. Di solito questi rappresentano “tempo” nei dati.
Questa immagine mostra cosa intendo per “profondità” tramite cicli di feedback: https://en.wikipedia.org/wiki/Recurrent_neural_network#/media/File:Recurrent_neural_network_unfold.svg
Anche se tecnicamente nodo nellarchitettura del tuo livello, diventa sempre più profondo più loop aggiungi
Answer
Voglio discutere alcune intuizioni di alto livello dietro le reti LSTM. Ecco alcune domande per esplorare gli aspetti del perché :
- Perché / quando dovremmo utilizzare un LSTM su una rete neurale feed forward (FFNN)?
- Quali sono i pro e i contro degli LSTM e come si confrontano con FFNN?
- In cosa si differenziano dalle tradizionali reti neurali ricorrenti (RNN)?
Feed Forward Neural Networks (FFNN)
Consideriamo prima un FFNN standard con architettura:
Come probabilmente saprai, questo FFNN prende tre input, li elabora utilizzando lo strato nascosto e produce due output. Possiamo espandere questa architettura per incorporare più livelli nascosti, ma il concetto di base vale ancora: gli input arrivano, vengono elaborati in una direzione e vengono emessi alla fine.
Questo concetto è spiegato molto bene da altri articoli, quindi non entrerò nei dettagli.Il punto chiave è:
La condizione principale che separa FFNN dalle architetture ricorrenti è che gli input a un neurone devono provenire dal livello prima di quel neurone.
Recurrent Neural Networks (RNN)
Le reti neurali ricorrenti sono matematicamente abbastanza simili ai modelli FFNN. La loro principale differenza è che la restrizione posta su FFNN non viene più applicata:
Gli input a un neurone possono provenire da qualsiasi altro livello.
Vedrai spesso che questa architettura è spesso “raggruppata” in ununità ricorrente come la seguente:
Le unità “rotolate” che potresti vedere nei diagrammi di architettura possono quindi essere ingannevolmente piccolo. Quando li srotoli, la rete sarà spesso piuttosto profonda!
Memoria a lungo termine a breve termine (LSTM)
Gli LSTM sono un tipo speciale di RNN progettato per affrontare il problema del gradiente di fuga / esplosione.
Quando si allena un RNN tradizionale, la rete spesso soffre di gradienti che scompaiono / esplodono: lo srotolamento di ununità ricorrente si traduce in una rete molto profonda! Se si passa attraverso lalgoritmo di backpropagation utilizzando le tradizionali architetture RNN, i livelli precedenti diventeranno sempre meno significativi man mano che ci propaghiamo attraverso la rete. Ciò rende gli RNN tradizionali inclini a dimenticare le informazioni, in particolare i dati che appaiono molti passi temporali prima dellora corrente.
Un esempio di cella LSTM è illustrato come tale:
Questa struttura è simile alla tradizionale unità RNN srotolata, ma la differenza fondamentale con LSTM sono le porte: porta di ingresso, porta di uscita e porta dimenticata. La funzione di queste porte è ben descritta dai loro nomi:
- porta di ingresso controlla i dati che entrano nella cella
- dimentica la porta controlla la misura in cui i dati rimangono allinterno della cella
- output gate controlla loutput della cella tramite la funzione di attivazione
Questo post su GitHub IO è unottima introduzione alle basi degli LSTM. Svolge anche un lavoro straordinario nello spiegare lintuizione alla base della matematica di un LSTM.
Proprietà e un caso duso di esempio di RNN
I cicli di feedback prestano le reti neurali ricorrenti meglio alle sfide temporali. Il tempo è preso in considerazione nella loro architettura!
Esploriamo un esempio:
Forse stai usando una rete per prevedere la parola successiva in una frase. Supponiamo che ti vengano dati gli input:
Affamata, Alice guida al negozio più vicino per acquistare [previsione]
Una rete neurale ricorrente potrebbe dimenticare la prima parola “affamato” mentre un LSTM lo propagherebbe idealmente. Un LSTM utilizzerebbe quindi il contesto che ha sentito in precedenza nella frase per indovinare “cibo” mentre un RNN potrebbe indovinare tutto ciò che viene acquistato in un negozio, in particolare con una frase lunga o più frasi.
I meccanismi di gating che consentono questo tipo di memoria è spiegato bene da @StatsSorceress qui: Forget Layer in a Recurrent Neural Network (RNN) –
Gli RNN sono progettati per gestire sequenze. Questo può essere utilizzato per analizzare video (sequenze di immagini), scrittura / discorso (sequenze di parole) , ecc.
Gli LSTM sono progettati per far persistere le informazioni importanti nel tempo. Gli RNN spesso “dimenticano” nel tempo.
Gli FFNN sono sistemi senza memoria; dopo aver elaborato un input, dimenticano tutto di quellinput. Supponiamo, ad esempio, di addestrare un FFNN che accetta 5 parole come input e predice loutput successivo. Questo modello riceverebbe quindi linput dallesempio precedente:
il negozio più vicino a cui acquistare [previsione] .
Ciò sta chiaramente perdendo contesto e noi si otterrebbe un risultato scadente.
Ora, potresti chiederti, cosa succederebbe se realizzassimo un FFNN che richiede molti input in modo da includere la parola “fame” nei suoi input? In altre parole, non potremmo aumentare il numero di input a un FFNN per rappresentare sufficientemente i dati precedenti?
La risposta è sì, ma questo metodo è inefficiente e spesso poco pratico. Supponiamo, ad esempio, di dover ricordare il contesto di un intero paragrafo. Avremmo bisogno di un FFNN molto grande! Inoltre, come sappiamo quante parole indietro vogliamo come contesto? 20 sarebbero sufficienti? 30? 100? Larchitettura LSTM elimina completamente questi problemi consentendo alla rete di gestire una memoria temporanea. Questo problema è aggravato dalle difficoltà di elaborazione video perché ogni frame richiederà molti più input rispetto alle attività NLP.
Nota, tuttavia, che le unità LSTM sono intrinsecamente più complesse dal punto di vista computazionale delle unità di un FFNN, quindi addestrarle è spesso più difficile e richiede più tempo. Nonostante questi svantaggi, il loro successo nelle sfide relative ai dati temporali ne garantisce chiaramente luso su FFNN.