Vreau să discutăm câteva intuiții de nivel înalt din spatele rețelelor LSTM. Iată câteva întrebări care să ajute la explorarea aspectelor de ce:

  • De ce/când am folosi o LSTM în loc de o rețea neuronală feed forward (FFNN)?
  • Care sunt avantajele și dezavantajele LSTM și cum se compară cu FFNN?
  • Cum se deosebesc de rețelele neuronale recurente tradiționale (RNN)?

Rețele neuronale de tip feed forward (FFNN)

Să luăm mai întâi în considerare o FFNN standard cu arhitectura:Towards Data Science Image: *Counting No. of Parameters in Deep Learning Models by Hand*

După cum probabil știți, această 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 valabil: intrările intră, sunt procesate într-o singură direcție și sunt scoase la final.

Acest concept este foarte bine explicat de alte articole, așa că nu voi intra în mai multe detalii. Principala concluzie este:

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

FFNN Wikipedia

Rețele neuronale recurente (RNN)

Rețelele neuronale recurente sunt destul de asemănătoare din punct de vedere matematic cu modelele FFNN. Principala lor diferență este că restricția impusă FFNN nu se mai aplică:

Intrările către un neuron pot proveni din orice alt strat.

Un studiu privind aplicarea rețelelor neuronale recurente la modelarea statistică a limbajului

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

Mediu articol: Tot ce trebuie să știți despre rețelele neuronale recurente

Unitățile „rulate” pe care le puteți vedea în diagramele de arhitectură pot fi, prin urmare, înșelător de mici. Când le derulați, rețeaua va fi adesea destul de profundă!

RNN Wikipedia

Long-Short Term Memory (LSTM)

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

Când antrenați o RNN tradițională, rețeaua suferă adesea de gradienți de dispariție/explozie: derularea unei unități recurente duce la o rețea foarte profundă! Dacă parcurgeți algoritmul de backpropagation folosind arhitecturi RNN tradiționale, straturile anterioare vor deveni din ce în ce mai puțin semnificative pe măsură ce ne propagăm în rețea. Acest lucru face ca RNN-urile tradiționale să fie predispuse la uitarea informațiilor, în special a datelor care apar cu mulți timestep-uri înainte de momentul curent.

Un exemplu de celulă LSTM este ilustrat astfel:

Arhitectura celulei LSTM

Această structură este similară unității derulate RNN tradiționale, dar diferența esențială față de LSTM sunt porțile: poarta de intrare, poarta de ieșire și poarta de uitare. Funcția acestor porți este bine descrisă de numele lor:

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

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

LSTM Wikipedia

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

Buclele de feedback pretează mai bine rețelele neuronale recurente la provocări temporale. Timpul este luat în considerare în arhitectura lor!

Să explorăm un exemplu:

Poate folosiți o rețea pentru a prezice următorul cuvânt dintr-o propoziție. Să zicem că vi se dau intrările:

Înfometată, Alice conduce la cel mai apropiat magazin pentru a cumpăra

O rețea neuronală recurentă ar putea uita primul cuvânt „înfometat”, în timp ce o LSTM l-ar propaga în mod ideal. Prin urmare, o LSTM ar folosi contextul pe care l-a auzit anterior în propoziție pentru a ghici „mâncare”, în timp ce o 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 porți care permit acest tip de memorie sunt explicate bine de @StatsSorceress aici: Stratul de uitare într-o rețea neuronală recurentă (RNN) –

RNN-urile sunt concepute pentru a gestiona secvențe. Acest lucru poate fi folosit pentru a analiza video (secvențe de imagini), scris/vorbire (secvențe de cuvinte), etc.

LSTMs sunt concepute pentru a lăsa informațiile importante să persiste în timp. RNN-urile vor „uita” adesea în timp.

FFNN-urile sunt sisteme fără memorie; după ce procesează o anumită intrare, ele uită totul despre acea intrare. Să spunem, de exemplu, că antrenăm 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 pentru a cumpăra .

Acest lucru pierde în mod clar contextul și am obține un rezultat slab.

Acum, v-ați putea întreba, ce s-ar întâmpla dacă am face un FFNN care să ia mai 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 ale unui FFNN pentru a reprezenta suficient datele anterioare?

Răspunsul este da, dar această metodă este atât ineficientă, cât și adesea nepractică. Să spunem, de exemplu, că avem nevoie să ne amintim contextul unui întreg paragraf înapoi. Am avea nevoie de un FFNN foarte mare! În plus, de unde știm câte cuvinte înapoi vrem ca context? 20 ar fi suficiente? 30? 100? Arhitectura LSTM elimină în totalitate aceste probleme, 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 semnificativ 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 unei FFNN, astfel încât antrenarea lor este adesea mai dificilă și necesită mai mult timp. În ciuda acestor dezavantaje, succesul lor în provocările legate de datele temporale justifică în mod clar utilizarea lor față de FFNN.

.

Articles

Lasă un răspuns

Adresa ta de email nu va fi publicată.