LSTM excelează în sarcinile de predicție a secvenței, captând dependențe pe termen lung. Ideal pentru serii cronologice, traducere automată și recunoaștere a vorbirii datorită dependenței de ordine. Articolul oferă o introducere aprofundată în LSTM, acoperind modelul LSTM, arhitectura, principiile de lucru și rolul critic pe care îl joacă în diverse aplicații.
Ce este LSTM?
Memoria pe termen lung pe termen scurt este o versiune îmbunătățită a rețelei neuronale recurente proiectată de Hochreiter & Schmidhuber.
Un tradițional RNN are o singură stare ascunsă care trece prin timp, ceea ce poate face dificilă pentru rețea să învețe dependențe pe termen lung. Modelul LSTM rezolvați această problemă prin introducerea unei celule de memorie, care este un container care poate păstra informații pentru o perioadă lungă de timp.
Arhitecturile LSTM sunt capabile să învețe dependențe pe termen lung în datele secvențiale, ceea ce le face bine potrivite pentru sarcini precum traducerea limbii , recunoașterea vorbirii și prognoza serii temporale .
LSTM-urile pot fi, de asemenea, utilizate în combinație cu alte arhitecturi de rețele neuronale, cum ar fi Rețele neuronale convoluționale (CNN) pentru analiza imaginilor și video.
Arhitectura LSTM
Arhitecturile LSTM implică celula de memorie care este controlată de trei porți: poarta de intrare, poarta uitare și poarta de ieșire. Aceste porți decid ce informații să adauge, să elimine și să iasă din celula de memorie.
- Poarta de intrare controlează ce informații sunt adăugate celulei de memorie.
- Poarta uitare controlează ce informații sunt eliminate din celula de memorie.
- Poarta de ieșire controlează ce informații sunt scoase din celula de memorie.
Acest lucru permite rețelelor LSTM să rețină sau să elimine în mod selectiv informațiile pe măsură ce acestea circulă prin rețea, ceea ce le permite să învețe dependențe pe termen lung.
LSTM menține o stare ascunsă, care acționează ca memorie pe termen scurt a rețelei. Starea ascunsă este actualizată în funcție de intrare, starea ascunsă anterioară și starea curentă a celulei de memorie.
Model LSTM bidirecțional
LSTM bidirecțional (Bi LSTM/ BLSTM) este o rețea neuronală recurentă (RNN) care este capabilă să proceseze date secvențiale atât în direcția înainte, cât și în cea înapoi. Acest lucru permite Bi LSTM să învețe dependențe pe o rază mai lungă de acțiune în datele secvențiale decât LSTM-urile tradiționale, care pot procesa date secvențiale doar într-o singură direcție.
- Bi LSTM-urile sunt alcătuite din două rețele LSTM, una care procesează secvența de intrare în direcția înainte și una care procesează secvența de intrare în direcția înapoi.
- Ieșirile celor două rețele LSTM sunt apoi combinate pentru a produce rezultatul final.
Modelele LSTM, inclusiv Bi LSTM, au demonstrat performanțe de ultimă generație în diverse sarcini, cum ar fi traducerea automată, recunoașterea vorbirii și rezumarea textului.
Rețelele din arhitecturile LSTM pot fi stivuite pentru a crea arhitecturi profunde, permițând învățarea de modele și ierarhii și mai complexe în date secvențiale. Fiecare strat LSTM într-o configurație stivuită captează diferite niveluri de abstractizare și dependențe temporale în datele de intrare.
LSTM Funcționează
Arhitectura LSTM are o structură în lanț care conține patru rețele neuronale și diferite blocuri de memorie numite celule .
Informațiile sunt reținute de celule, iar manipulările de memorie sunt efectuate de către porti. Sunt trei porți -
Uită de Poarta
Informațiile care nu mai sunt utile în starea celulei sunt eliminate cu poarta uitare. Două intrări X t (intrare la momentul anume) și h t-1 (ieșirea anterioară de celule) sunt alimentate la poartă și înmulțite cu matrice de greutate urmate de adăugarea de părtinire. Rezultatul este trecut printr-o funcție de activare care dă o ieșire binară. Dacă pentru o anumită stare de celulă ieșirea este 0, informația este uitată, iar pentru ieșirea 1, informația este păstrată pentru utilizare ulterioară. Ecuația pentru poarta uitare este:
Unde:
- W_f reprezintă matricea de greutate asociată cu poarta uitare.
- [h_t-1, x_t] denotă concatenarea intrării curente și starea ascunsă anterioară.
- b_f este părtinirea cu poarta uitare.
- σ este funcția de activare a sigmoidului.

Poarta de intrare
Adăugarea de informații utile la starea celulei se face de către poarta de intrare. În primul rând, informațiile sunt reglate folosind funcția sigmoid și filtrează valorile de reținut similar cu poarta uitare folosind intrări h t-1 și X t .. Apoi, un vector este creat folosind cu gust de peşte funcție care oferă o ieșire de la -1 la +1, care conține toate valorile posibile de la ht-1și X t . În cele din urmă, valorile vectorului și valorile reglate sunt înmulțite pentru a obține informațiile utile. Ecuația pentru poarta de intrare este:
Înmulțim starea anterioară cu ft, fără a ține cont de informațiile pe care am ales anterior să le ignorăm. În continuare, includem it∗Ct. Aceasta reprezintă valorile candidate actualizate, ajustate pentru suma pe care am ales-o să actualizăm fiecare valoare de stat.
Unde
- ⊙ denotă înmulțirea în funcție de elemente
- tanh este funcția de activare a tanh
Poarta de iesire
Sarcina de a extrage informații utile din starea curentă a celulei pentru a fi prezentată ca ieșire este realizată de poarta de ieșire. În primul rând, un vector este generat prin aplicarea funcției tanh pe celulă. Apoi, informația este reglată folosind funcția sigmoid și se filtrează după valorile care trebuie reținute folosind intrări
Aplicații ale LSTM
Unele dintre aplicațiile celebre ale LSTM includ:
- Modelare lingvistică: LSTM-urile au fost folosite pentru sarcini de procesare a limbajului natural, cum ar fi modelarea limbajului, traducerea automată și rezumarea textului. Ei pot fi antrenați să genereze propoziții coerente și corecte din punct de vedere gramatical prin învățarea dependențelor dintre cuvintele dintr-o propoziție.
- Recunoaștere a vorbirii: LSTM-urile au fost folosite pentru sarcini de recunoaștere a vorbirii, cum ar fi transcrierea vorbirii în text și recunoașterea comenzilor vorbite. Ei pot fi instruiți să recunoască modele în vorbire și să le potrivească cu textul corespunzător.
- Prognoza serii temporale: LSTM-urile au fost folosite pentru sarcini de prognoză în serie de timp, cum ar fi prezicerea prețurilor acțiunilor, vremea și consumul de energie. Ei pot învăța modele în datele din seria temporală și le pot folosi pentru a face predicții despre evenimente viitoare.
- Detectarea anomaliilor: LSTM-urile au fost folosite pentru sarcini de detectare a anomaliilor, cum ar fi detectarea fraudelor și a intruziunii în rețea. Aceștia pot fi instruiți să identifice modele în date care se abat de la normă și să le semnaleze ca anomalii potențiale.
- Sisteme de recomandare: LSTM-urile au fost folosite pentru sarcini de recomandare, cum ar fi recomandarea de filme, muzică și cărți. Ei pot învăța modele în comportamentul utilizatorului și le pot folosi pentru a face recomandări personalizate.
- Analiza video: LSTM-urile au fost folosite pentru sarcini de analiză video, cum ar fi detectarea obiectelor, recunoașterea activității și clasificarea acțiunilor. Ele pot fi utilizate în combinație cu alte arhitecturi de rețele neuronale, cum ar fi rețelele neuronale convoluționale (CNN), pentru a analiza datele video și a extrage informații utile.
LTSM vs RNN
Caracteristică | LSTM (Memorie pe termen lung) | RNN (rețea neuronală recurentă) |
|---|---|---|
Memorie | Are o unitate de memorie specială care îi permite să învețe dependențe pe termen lung în date secvențiale | Nu are unitate de memorie |
Direcționalitatea | Poate fi antrenat să proceseze date secvențiale atât în direcția înainte, cât și în cea înapoi | Poate fi instruit doar să proceseze date secvențiale într-o singură direcție |
Instruire | Mai greu de antrenat decât RNN din cauza complexității porților și a unității de memorie | Mai ușor de antrenat decât LSTM |
Învățarea dependenței pe termen lung | da | Limitat |
Abilitatea de a învăța date secvențiale | da | da |
Aplicații | Traducerea automată, recunoașterea vorbirii, rezumarea textului, procesarea limbajului natural, prognoza serii de timp | Procesarea limbajului natural, traducerea automată, recunoașterea vorbirii, procesarea imaginilor, procesarea video |
Problemă cu dependențele pe termen lung în RNN
Rețelele neuronale recurente (RNN) sunt concepute pentru a gestiona date secvențiale prin menținerea unei stări ascunse care captează informații din pașii de timp anteriori. Cu toate acestea, ei se confruntă adesea cu provocări în învățarea dependențelor pe termen lung, unde informațiile din pași de timp îndepărtați devin cruciale pentru a face predicții precise. Această problemă este cunoscută sub denumirea de problema de gradient care dispare sau de gradient de explozie.
Mai jos sunt enumerate câteva probleme comune:
Gradient de dispariție
În timpul propagării inverse în timp, gradienții pot deveni extrem de mici pe măsură ce sunt multiplicați prin lanțul de conexiuni recurente, ceea ce face ca modelul să aibă dificultăți de învățare a dependențelor care sunt separate de mulți pași de timp.
Gradient de explozie
În schimb, gradienții pot exploda în timpul propagării inverse, ceea ce duce la instabilitate numerică și îngreunează convergerea modelului.
Diferite variante ale memoriei pe termen lung și scurt
De-a lungul timpului, au fost propuse mai multe variante și îmbunătățiri ale arhitecturii originale LSTM.
Vanilie LSTM
Aceasta este arhitectura originală LSTM propusă de Hochreiter și Schmidhuber. Include celule de memorie cu porți de intrare, uitare și ieșire pentru a controla fluxul de informații. Ideea cheie este de a permite rețelei să actualizeze și să uite selectiv informațiile din celula de memorie.
Conexiuni peephole
În vizorul LSTM, porților li se permite să privească starea celulei în plus față de starea ascunsă. Acest lucru permite porților să ia în considerare starea celulei atunci când iau decizii, oferind mai multe informații de context.
Unitate recurentă închisă (GRU)
GRU este o alternativă la LSTM, concepută pentru a fi mai simplă și mai eficientă din punct de vedere computațional. Combină porțile de intrare și uitare într-o singură poartă de actualizare și îmbină starea celulei și starea ascunsă. În timp ce GRU-urile au mai puțini parametri decât LSTM-urile, s-a dovedit că funcționează similar în practică.
Concluzie
Memoria pe termen scurt pe termen lung (LSTM) este un tip puternic de rețea neuronală recurentă (RNN) care este potrivită pentru manipularea datelor secvențiale cu dependențe pe termen lung. Acesta abordează problema gradientului de dispariție, o limitare comună a RNN-urilor, prin introducerea unui mecanism de deschidere care controlează fluxul de informații prin rețea. Acest lucru permite LSTM-urilor să învețe și să rețină informații din trecut, făcându-le eficiente pentru sarcini precum traducerea automată, recunoașterea vorbirii și procesarea limbajului natural.
Verificați și:
- Memoria pe termen lung (LSTM) RNN în Tensorflow
- Generarea de text utilizând rețeaua de memorie pe termen lung și scurt recurentă
- Explicație privind rețelele de memorie pe termen scurt
Întrebări frecvente (FAQs)
1. Ce este LSTM și de ce este utilizat?
LSTM, sau Long Short-Term Memory, este un tip de rețea neuronală recurentă concepută pentru sarcini de secvență, excelând în capturarea și utilizarea dependențelor pe termen lung în date.
padding css
2. Cum funcționează LSTM?
LSTM-urile folosesc o stare de celulă pentru a stoca informații despre intrările anterioare. Această stare a celulei este actualizată la fiecare pas al rețelei, iar rețeaua o folosește pentru a face predicții despre intrarea curentă. Starea celulei este actualizată folosind o serie de porți care controlează cât de multă informație este permisă să intre și să iasă din celulă.
3. Care sunt exemplele LSTM?
Exemplele LSTM (Long Short-Term Memory) includ recunoașterea vorbirii, traducerea automată și predicția serii cronologice, valorificând capacitatea sa de a captura dependențe pe termen lung în date secvențiale.
4. Care este diferența dintre LSTM și Gated Recurrent Unit (GRU)?
LSTM are o stare a celulei și un mecanism de trecere care controlează fluxul de informații, în timp ce GRU are un mecanism mai simplu de actualizare a unei singure porți. LSTM este mai puternic, dar mai lent de antrenat, în timp ce GRU este mai simplu și mai rapid.
5. Care este diferența dintre LSTM și RNN?
- RNN-uri au o structură recurentă simplă cu flux informațional unidirecțional.
- LSTM-uri au un mecanism de trecere care controlează fluxul de informații și o stare a celulei pentru memoria pe termen lung.
- LSTM-uri în general, depășesc RNN-urile în sarcini care necesită învățarea dependențelor pe termen lung.
6. Este LSTM mai rapid decât CNN?
Nu, LSTM-urile și CNN-urile servesc unor scopuri diferite. LSTM-urile sunt pentru date secvențiale; CNN-urile sunt pentru date spațiale.
7. Este LSTM mai rapid decât GRU?
În general, da. GRU-urile au mai puțini parametri, ceea ce poate duce la un antrenament mai rapid în comparație cu LSTM-urile.