Care este diferența dintre rețea neuronală feed-forward și LSTM În ce se deosebesc prin arhitectura lor?

Răspuns

O rețea neuronală feed-forward arată astfel:

intrare -> stratul ascuns 1 -> stratul ascuns 2 -> … -> stratul ascuns k -> ieșire.

Fiecare strat poate avea un număr diferit de neuroni, dar aceasta este arhitectura .

O LSTM (celulă de memorie pe termen scurt) este un tip special de nod dintr-o rețea neuronală. Poate fi introdus în o rețea neuronală avansată și, de obicei, este . Când se întâmplă acest lucru, rețeaua neuronală feedforward este denumită LSTM (confuz!).

Deci, cum funcționează un LSTM? Aruncați o privire la răspunsul meu aici: Uitați stratul într-o rețea neuronală recurentă (RNN) –

tl; dr: o celulă LSTM are trei porți, fiecare dintre ele fiind utilizată pentru a-și modula intrarea într-un fel: o poartă de intrare, o poartă de uitare și o poartă de ieșire. Are o „memorie” și o ieșire care sunt modificate de porți. Adică într-o singură celulă LSTM:

(input starea celulei anterioare) -> (input & uită porțile) -> (actualizează starea celulei)

(input & starea celulei anterioare & starea celulei actualizată) -> (poarta de ieșire)

Puteți stiva aceste celule în mai multe configurații diferite. Deci, nu există o singură „rețea LSTM” – mai degrabă un set de multe arhitecturi posibile care pot fi construite din aceste noduri de bază.

Sper că te va începe!

Comentarii

  • Vă mulțumesc foarte mult pentru răspuns, dar puteți adăuga câteva imagini pentru a-mi îmbunătăți înțelegerea arhitecturii
  • Ce se întâmplă cu propagarea înapoi în rețeaua feed forward feed forward network
  • Bună ziua @ codezcar, există imagini cu LSTM în răspunsul meu pe care le-am conectat. Pentru o rețea neuronală feedforward, este aici o imagine: medium.com/random-techpark/… Da, tu poate folosi propagarea înapoi pentru a găsi greutățile optime în orice tip de rețea neuronală (feed forward, LSTM, GRU, … orice!)

Răspuns

După cum sa menționat de Philipp, rețelele cu bucle de feedback ajută la modelarea timpului în date.

Ați dori să căutați acest lucru pentru o prezentare generală a diferitelor arhitecturi NN: https://i.stack.imgur.com/LgmYv.png

Răspuns

Rețelele feed forward sunt rețele în care fiecare nod este conectat cu numai noduri din următorul strat. Nu au conexiuni „în cerc”. Datele pot călători doar de la intrare la ieșire fără bucle. Exemplele ar fi Perceptronul cu strat simplu sau Perceptria cu mai multe straturi. Rețelele neuronale convoluționale sunt, de asemenea, rețele pur transmise direct

care sunt rețele neuronale recurente. LSTM este una dintre acestea. Aceste RNN pot fi conectate și „lateral”. Adică datele dvs. pot călători nu numai înainte în următorul strat, ci și către alte noduri din același strat sau înapoi. De la o arhitectură punct de vedere care înseamnă că, deși aveți o rețea cu poate doar un singur strat ascuns, obțineți „adâncime” adăugând bucle la nodurile din acel strat. De obicei, acestea reprezintă „timpul” în date.

Această imagine arată ceea ce vreau să spun prin „profunzime” prin bucle de feedback: https://en.wikipedia.org/wiki/Recurrent_neural_network#/media/File:Recurrent_neural_network_unfold.svg

Deși este tehnic nod în arhitectura stratului, acesta devine din ce în ce mai adânc cu cât mai multe bucle adăugați

Răspuns

Vreau să discut câteva intuiții la nivel înalt din spatele rețelelor LSTM. Iată câteva întrebări care vă vor ajuta să explorați aspectele de ce :

  • De ce / când am folosi un LSTM printr-o rețea neuronală de avans (FFNN)?
  • Care sunt avantajele și dezavantajele LSTM și cum se compară cu FFNN?
  • În ce fel sunt diferite de rețelele neuronale recurente tradiționale (RNN)?

Feed Forward Neural Networks (FFNN)

Să luăm în considerare mai întâi un FFNN standard cu arhitectură: Către imaginea științei datelor: * Numărarea manuală a numărului de parametri în modelele de învățare profundă *

După cum probabil știți, acest FFNN ia trei intrări, le procesează folosind stratul ascuns și produce două ieșiri. Putem extinde această arhitectură pentru a încorpora mai multe straturi ascunse, dar conceptul de bază rămâne în continuare: intrările intră, sunt procesate într-o singură direcție și sunt transmise la final.

Acest concept este foarte bine explicat prin alte articole, așa că nu voi intra în mult mai multe detalii.Aportul cheie este:

Condiția principală care separă FFNN de arhitecturile recurente este că intrările unui neuron trebuie să provină din stratul dinaintea acelui neuron.

FFNN Wikipedia

Rețele neuronale recurente (RNN)

Rețelele neuronale recurente sunt matematic destul de asemănătoare cu modelele FFNN. Principala lor diferență este că restricția plasată pe FFNN nu mai este aplicată:

Intrările într-un neuron pot proveni din orice alt strat.

O anchetă privind aplicarea rețelelor neuronale recurente la modelarea statistică a limbajului

Veți vedea adesea că această arhitectură este adesea „rulată” într-o unitate recurentă, cum ar fi următoarele:

Articol mediu: Tot ce trebuie să știți despre rețelele neuronale recurente

Unitățile „laminate” pe care le-ați putea vedea în diagramele arhitecturale pot fi, prin urmare, înșelător de mic. Când le derulați, rețeaua va fi adesea destul de profundă!

RNN Wikipedia

Memorie pe termen scurt (LSTM)

LSTM-urile sunt un tip special de RNN concepute pentru a aborda problema gradientului de dispariție / explozie.

Când instruiți un RNN tradițional, rețeaua suferă adesea de gradienți de dispariție / explozie: derularea unei unități recurente are ca rezultat o rețea foarte profundă! Dacă parcurgeți algoritmul de propagare înapoi utilizând arhitecturi tradiționale RNN, straturile anterioare vor deveni din ce în ce mai puțin semnificative pe măsură ce ne propagăm prin rețea. Acest lucru face ca RNN-urile tradiționale să fie predispuse la uitarea informațiilor, în special a datelor care apar cu multe pași de timp înainte de ora curentă.

Un exemplu de celulă LSTM este ilustrat ca atare:

Arhitectura celulei LSTM

Această structură este similară cu unitatea tradițională derulată RNN, dar diferența cheie cu LSTM sunt porțile: poarta de intrare, poarta de ieșire și poarta uitării. Funcția acestor porți este bine descrisă de numele lor:

  • poarta de intrare controlează datele care intră în celulă
  • gate gate controlează măsura în care datele rămân în celulă
  • poarta de ieșire controlează ieșirea celulei prin funcția de activare

Această postare IO github este o introducere excelentă la elementele de bază ale LSTM-urilor. De asemenea, face o treabă uimitoare de a explica intuiția din spatele matematicii unui LSTM.

LSTM Wikipedia

Proprietăți și un exemplu de caz de utilizare a RNN

Buclele de feedback oferă rețelelor neuronale recurente mai bine provocărilor temporale. Timpul este inclus în arhitectura lor!

Să explorăm un exemplu:

Poate că utilizați o rețea pentru a prezice următorul cuvânt dintr-o propoziție. Spuneți că vi se oferă datele:

Înfometat, Alice merge la cel mai apropiat magazin pentru a cumpăra [predicție]

O rețea neuronală recurentă ar putea uita primul cuvânt „înfometat” în timp ce un LSTM l-ar propaga în mod ideal. Prin urmare, un LSTM ar folosi contextul pe care l-a auzit anterior în propoziție pentru a ghici „mâncarea”, în timp ce un RNN ar putea ghici orice este cumpărat într-un magazin, în special având în vedere o propoziție lungă sau mai multe propoziții.

Mecanismele de închidere care permit acest tip de memorie este explicat bine de @StatsSorceress aici: Uitați stratul într-o rețea neuronală recurentă (RNN) –

RNN-urile sunt concepute pentru a gestiona secvențe. Acesta poate fi folosit pentru a analiza videoclipuri (secvențe de imagini), scriere / vorbire (secvențe de cuvinte) , etc.

LSTM-urile sunt concepute pentru a permite informațiilor importante să persiste în timp. RNN-urile vor „uita” de-a lungul timpului.

FFNN-urile sunt sisteme fără memorie; după ce au procesat unele intrări, uită totul despre acea intrare. Spuneți, de exemplu, că instruim un FFNN care ia 5 cuvinte ca intrări și prezice următoarea ieșire. Acest model ar primi apoi intrarea din exemplul de mai sus:

cel mai apropiat magazin de cumpărat [predicție] .

În mod clar, acesta pierde contextul și ar obține un rezultat slab.

Acum, s-ar putea să întrebați, dacă am face un FFNN care a primit multe intrări, astfel încât să includă cuvântul „înfometat” în intrările sale? Cu alte cuvinte, nu am putea crește numărul de intrări la un FFNN pentru a reprezenta suficient datele anterioare?

Răspunsul este da, dar această metodă este atât ineficientă, cât și adesea impracticabilă. Spuneți, de exemplu, că trebuie să ne amintim contextul unui întreg paragraf înapoi. Am avea nevoie de un FFNN foarte mare! Mai mult, de unde știm câte cuvinte înapoi ne dorim ca context? 20 ar fi suficient? 30? 100? Arhitectura LSTM elimină aceste probleme în întregime, lăsând rețeaua să gestioneze o memorie tranzitorie. Această problemă este exacerbată de provocările de procesare video, deoarece fiecare cadru va necesita mult mai multe intrări decât sarcinile NLP.

Rețineți totuși că unitățile LSTM sunt în mod inerent mai complexe din punct de vedere computațional decât unitățile unui FFNN, astfel încât instruirea lor este adesea mai dificil și durează mai mult. În ciuda acestor dezavantaje, succesul lor în provocările de date temporale justifică în mod clar utilizarea lor față de FFNN.

Lasă un răspuns

Adresa ta de email nu va fi publicată. Câmpurile obligatorii sunt marcate cu *