Tweet Share Share

Ultima actualizare la 20 februarie 2020

Rețelele cu memorie pe termen scurt (LSTM) sunt un tip de rețea neuronală recurentă capabilă să învețe dependența de ordine în probleme de predicție a secvențelor.

Acesta este un comportament necesar în domenii cu probleme complexe, cum ar fi traducerea automată, recunoașterea vorbirii și altele.

LSTM-urile sunt un domeniu complex al învățării profunde. Poate fi greu de înțeles ce sunt LSTM-urile și cum termeni precum bidirecțional și secvență-la-secvență se referă la acest domeniu.

În acest post, veți obține informații despre LSTM-uri folosind cuvintele cercetătorilor care au dezvoltat metodele și le-au aplicat la probleme noi și importante.

Sunt puțini cei care se pricep mai bine la articularea clară și precisă atât a promisiunii LSTM-urilor, cât și a modului în care acestea funcționează, decât experții care le-au dezvoltat.

Vom explora întrebări cheie din domeniul LSTM-urilor folosind citatele experților, iar dacă sunteți interesat, veți putea să vă scufundați în lucrările originale din care au fost luate citatele.

Dă startul proiectului tău cu noua mea carte Long Short-Term Memory Networks With Python, care include tutoriale pas cu pas și fișierele de cod sursă Python pentru toate exemplele.

Să începem.

A Gentle Introduction to Long Short-Term Memory Networks by the Experts
Fotografie de Oran Viriyincy, unele drepturi rezervate.

Promisiunea rețelelor neuronale recurente

Rețelele neuronale recurente sunt diferite de rețelele neuronale tradiționale de tip feed-forward.

Această diferență în ceea ce privește adăugarea de complexitate vine cu promisiunea unor noi comportamente pe care metodele tradiționale nu le pot realiza.

Rețelele recurente … au o stare internă care poate reprezenta informații de context. … păstrează informații despre intrările anterioare pentru o perioadă de timp care nu este fixată a priori, ci mai degrabă depinde de ponderile sale și de datele de intrare.

O rețea recurentă ale cărei intrări nu sunt fixe, ci mai degrabă constituie o secvență de intrări, poate fi utilizată pentru a transforma o secvență de intrări într-o secvență de ieșiri, luând în considerare în același timp informațiile contextuale într-un mod flexibil.

– Yoshua Bengio, et al., Learning Long-Term Dependencies with Gradient Descent is Difficult, 1994.

Articolul definește 3 cerințe de bază ale unei rețele neuronale recurente:

  • Că sistemul să fie capabil să stocheze informații pentru o durată arbitrară.
  • Că sistemul să fie rezistent la zgomot (adică fluctuații ale intrărilor care sunt aleatorii sau irelevante pentru a prezice o ieșire corectă).
  • Că parametrii sistemului să fie antrenabili (într-un timp rezonabil).

Articolul descrie, de asemenea, „sarcina minimă” pentru demonstrarea rețelelor neuronale recurente.

Contextul este cheia.

Rețelele neuronale recurente trebuie să folosească contextul atunci când fac predicții, dar în această măsură, contextul necesar trebuie, de asemenea, învățat.

… rețelele neuronale recurente conțin cicluri care alimentează activările rețelei de la un pas de timp anterior ca intrări în rețea pentru a influența predicțiile la pasul de timp curent. Aceste activări sunt stocate în stările interne ale rețelei care, în principiu, pot conține informații contextuale temporale pe termen lung. Acest mecanism permite RNN-urilor să exploateze o fereastră contextuală care se schimbă în mod dinamic de-a lungul istoriei secvenței de intrare

– Hassim Sak, et al, Long Short-Term Memory Recurrent Neural Network Architectures for Large Scale Acoustic Modeling, 2014

Nevoie de ajutor cu LSTMs for Sequence Prediction?

Faceți cursul meu gratuit de 7 zile prin e-mail și descoperiți 6 arhitecturi LSTM diferite (cu cod).

Click pentru a vă înscrie și obțineți, de asemenea, o versiune gratuită în format PDF Ebook a cursului.

Începeți mini-cursul GRATUIT acum!

LSTM respectă promisiunea

Succesul LSTM constă în pretenția lor de a fi una dintre primele implementări care au depășit problemele tehnice și au respectat promisiunea rețelelor neuronale recurente.

În consecință, RNN-urile standard nu reușesc să învețe în prezența unor decalaje temporale mai mari de 5 – 10 pași temporali discreți între evenimentele de intrare relevante și semnalele țintă. Problema erorii de dispariție pune la îndoială faptul că RNN-urile standard pot prezenta într-adevăr avantaje practice semnificative față de rețelele feedforward bazate pe ferestre temporale. Un model recent, „Long Short-Term Memory” (LSTM), nu este afectat de această problemă. LSTM poate învăța să acopere decalaje temporale minime de peste 1000 de pași temporali discreți prin impunerea unui flux constant de erori prin intermediul unor „carusele de erori constante” (CEC) în cadrul unor unități speciale, numite celule

– Felix A. Gers, et al., Learning to Forget: Continual Prediction with LSTM, 2000

Cele două probleme tehnice depășite de LSTM-uri sunt gradienții care dispar și gradienții care explodează, ambele legate de modul în care este antrenată rețeaua.

Din păcate, gama de informații contextuale pe care RNN-urile standard le pot accesa este, în practică, destul de limitată. Problema este că influența unei anumite intrări asupra stratului ascuns și, prin urmare, asupra ieșirii rețelei, fie scade, fie explodează exponențial pe măsură ce parcurge conexiunile recurente ale rețelei. Acest neajuns … denumit în literatura de specialitate problema gradientului de dispariție … Memoria lungă pe termen scurt (LSTM) este o arhitectură RNN special concepută pentru a aborda problema gradientului de dispariție.

– Alex Graves, et al., A Novel Connectionist System for Unconstrained Handwriting Recognition, 2009

Cheia pentru soluția LSTM la problemele tehnice a fost structura internă specifică a unităților utilizate în model.

… guvernată de capacitatea sa de a face față gradienților evanescenți și explozivi, cea mai frecventă provocare în proiectarea și instruirea RNN-urilor. Pentru a aborda această provocare, o formă particulară de rețele recurente, numită LSTM, a fost introdusă și aplicată cu mare succes la generarea de traduceri și secvențe.

– Alex Graves, et al., Framewise Phoneme Classification with Bidirectional LSTM and Other Neural Network Architectures, 2005.

Cum funcționează LSTM-urile?

În loc să intrăm în ecuațiile care guvernează modul în care se potrivesc LSTM-urile, analogia este un instrument util pentru a înțelege rapid cum funcționează acestea.

Utilizăm rețele cu un strat de intrare, un strat ascuns și un strat de ieșire… Stratul ascuns (complet) autoconectat conține celule de memorie și unități de poartă corespunzătoare…

Arhitectura internă a fiecărei celule de memorie garantează ow de eroare constantă în cadrul caruselului său de eroare constantă CEC… Aceasta reprezintă baza pentru acoperirea decalajelor de timp foarte mari. Două unități de poartă învață să deschidă și să închidă accesul la error ow în cadrul CEC al fiecărei celule de memorie. Poarta de intrare multiplicativă asigură protecția CEC împotriva perturbațiilor cauzate de intrări irelevante. În mod similar, poarta de ieșire multiplicativă protejează alte unități de perturbarea de către conținuturile de memorie irelevante în prezent.

– Sepp Hochreiter și Jurgen Schmidhuber, Long Short-Term Memory, 1997.

Multe analogii pot ajuta la achiziționarea a ceea ce diferențiază LSTM de rețelele neuronale tradiționale alcătuite din neuroni simpli.

Arhitectura Long Short Term Memory a fost motivată de o analiză a fluxului de erori în RNN-urile existente, care a constatat că decalajele lungi de timp erau inaccesibile pentru arhitecturile existente, deoarece eroarea retropropagată fie explodează, fie scade exponențial.

Un strat LSTM constă dintr-un set de blocuri conectate în mod recurent, cunoscute sub numele de blocuri de memorie. Aceste blocuri pot fi considerate ca o versiune diferențiabilă a cipurilor de memorie dintr-un calculator digital. Fiecare conține una sau mai multe celule de memorie conectate în mod recurent și trei unități multiplicative – porțile de intrare, de ieșire și de uitare – care asigură analogii continue ale operațiilor de scriere, citire și resetare pentru celule. … Rețeaua poate interacționa cu celulele doar prin intermediul porților.

– Alex Graves, et al., Framewise Phoneme Classification with Bidirectional LSTM and Other Neural Network Architectures, 2005.

Este interesant de observat că, chiar și după mai mult de 20 de ani, LSTM-ul simplu (sau vanilie) poate fi încă cel mai bun punct de plecare în aplicarea acestei tehnici.

Cea mai frecvent utilizată arhitectură LSTM (vanilla LSTM) se comportă rezonabil de bine pe diferite seturi de date…

Rata de învățare și dimensiunea rețelei sunt cei mai cruciali hiperparametri LSTM reglabili…

…Acest lucru implică faptul că hiperparametrii pot fi reglați independent. În special, rata de învățare poate fi calibrată mai întâi folosind o rețea destul de mică, economisind astfel mult timp de experimentare.

– Klaus Greff, et al., LSTM: A Search Space Odyssey, 2015

Ce sunt aplicațiile LSTM?

Este important să se cunoască exact tipul de probleme de învățare a secvențelor pe care LSTM-urile sunt potrivite pentru a le aborda.

Long Short-Term Memory (LSTM) poate rezolva numeroase sarcini care nu pot fi rezolvate de algoritmii de învățare anteriori pentru rețelele neuronale recurente (RNN).

… LSTM este promițătoare pentru orice sarcină de procesare secvențială în care bănuim că poate exista o descompunere ierarhică, dar nu știm dinainte care este această descompunere.

– Felix A. Gers, et al., Learning to Forget: Continual Prediction with LSTM, 2000

Rețeaua neuronală recurentă (RNN) este un model de secvență neuronală care atinge performanțe de ultimă oră în sarcini importante care includ modelarea limbajului, recunoașterea vorbirii și traducerea automată.

– Wojciech Zaremba, Recurrent Neural Network Regularization, 2014.

Din moment ce LSTM-urile sunt eficiente în captarea dependențelor temporale pe termen lung fără a suferi de obstacolele de optimizare care afectează rețelele recurente simple (SRN), acestea au fost utilizate pentru a avansa stadiul actual al tehnologiei pentru multe probleme dificile. Acestea includ recunoașterea și generarea scrisului de mână, modelarea și traducerea limbajului, modelarea acustică a vorbirii, sinteza vorbirii, predicția structurii secundare a proteinelor, analiza datelor audio și video, printre altele.

– Klaus Greff, et al., LSTM: A Search Space Odyssey, 2015

Ce sunt LSTM-urile bidirecționale?

O îmbunătățire frecvent menționată a LSTM-urilor sunt LSTM-urile bidirecționale.

Ideea de bază a rețelelor neuronale recurente bidirecționale este de a prezenta fiecare secvență de instruire înainte și înapoi la două rețele recurente separate, ambele conectate la același strat de ieșire. … Aceasta înseamnă că, pentru fiecare punct dintr-o anumită secvență, BRNN are informații complete și secvențiale despre toate punctele anterioare și ulterioare. De asemenea, deoarece rețeaua este liberă să utilizeze cât de mult sau cât de puțin din acest context este necesar, nu este nevoie să găsească o fereastră temporală (dependentă de sarcină) sau o dimensiune țintă a întârzierii.

… pentru probleme temporale, cum ar fi recunoașterea vorbirii, bazarea pe cunoașterea viitorului pare, la prima vedere, să încalce cauzalitatea … Cum ne putem baza înțelegerea a ceea ce am auzit pe ceva ce nu a fost spus încă? Cu toate acestea, ascultătorii umani fac exact acest lucru. Sunete, cuvinte și chiar propoziții întregi care la început nu înseamnă nimic, se constată că au sens în lumina contextului viitor.

– Alex Graves, et al., Framewise Phoneme Classification with Bidirectional LSTM and Other Neural Network Architectures, 2005.

Unul dintre neajunsurile RNN-urilor convenționale este că acestea sunt capabile să se folosească doar de contextul anterior. … RNN bidirecționale (BRNN) fac acest lucru prin procesarea datelor în ambele direcții cu ajutorul a două straturi ascunse separate, care sunt apoi alimentate către același strat de ieșire. … Combinând BRNN cu LSTM se obține LSTM bidirecțional, care poate accesa contextul de lungă durată în ambele direcții de intrare

– Alex Graves, et al., Speech recognition with deep recurrent neural networks, 2013

În comparație cu RNN-urile convenționale, RNN-urile bidirecționale utilizează atât contextul anterior, cât și pe cel viitor, prin procesarea datelor din două direcții cu două straturi ascunse separate. Un strat procesează secvența de intrare în direcția înainte, în timp ce celălalt procesează intrarea în direcția inversă. Ieșirea pasului de timp curent este apoi generată prin combinarea vectorului ascuns al ambelor straturi…

– Di Wang și Eric Nyberg, A Long Short-Term Memory Model for Answer Sentence Selection in
Question Answering, 2015

Ce sunt LSTM-urile seq2seq sau RNN Encoder-Decoders?

L LSTM secvență-la-secvență, numite și LSTM codificatoare-decodificatoare, sunt o aplicație a LSTM-urilor care se bucură de multă atenție având în vedere capacitatea lor impresionantă.

… o aplicație simplă a arhitecturii LSTM (Long Short-Term Memory) poate rezolva probleme generale de secvență la secvență.

Ideea este de a folosi un LSTM pentru a citi secvența de intrare, câte un pas de timp, pentru a obține o reprezentare vectorială mare cu dimensiuni fixe, și apoi de a folosi un alt LSTM pentru a extrage secvența de ieșire din acel vector. Cel de-al doilea LSTM este, în esență, un model lingvistic de rețea neuronală recurentă, cu excepția faptului că este condiționat de secvența de intrare.

Capacitatea LSTM de a învăța cu succes pe date cu dependențe temporale de lungă durată face ca aceasta să fie o alegere naturală pentru această aplicație, datorită decalajului considerabil de timp dintre intrări și ieșirile corespunzătoare.

Am reușit să ne descurcăm bine cu propozițiile lungi deoarece am inversat ordinea cuvintelor din propoziția sursă, dar nu și din propozițiile țintă din setul de antrenament și de testare. Procedând astfel, am introdus multe dependențe pe termen scurt care au făcut ca problema de optimizare să fie mult mai simplă. … Trucul simplu de a inversa cuvintele din propoziția sursă este una dintre contribuțiile tehnice cheie ale acestei lucrări

– Ilya Sutskever, et al.., Sequence to Sequence Learning with Neural Networks, 2014

Un RNN „codificator” citește propoziția sursă și o transformă într-o reprezentare vectorială bogată de lungime fixă, care, la rândul său, este utilizată ca stare ascunsă inițială a unui RNN „decodificator” care generează propoziția țintă. În acest caz, ne propunem să urmăm această rețetă elegantă, înlocuind RNN codificatoare cu o rețea neuronală de convoluție profundă (CNN). … este firesc să folosim un CNN ca „codificator” de imagini, pre-antrenându-l mai întâi pentru o sarcină de clasificare a imaginilor și folosind ultimul strat ascuns ca intrare pentru decodorul RNN care generează propoziții.

– Oriol Vinyals, et al, Show and Tell: A Neural Image Caption Generator, 2014

… un RNN Encoder-Decoder, este format din două rețele neuronale recurente (RNN) care acționează ca o pereche de codificatori și decodificatori. Codificatorul pune în corespondență o secvență sursă de lungime variabilă cu un vector de lungime fixă, iar decodificatorul pune în corespondență reprezentarea vectorială înapoi cu o secvență țintă de lungime variabilă.

– Kyunghyun Cho, et al.., Learning Phrase Representations using RNN Encoder-Decoder for Statistical Machine Translation, 2014

Summary

În această postare, ați primit o introducere delicată în LSTM-uri în cuvintele cercetătorilor care au dezvoltat și aplicat tehnicile.

Aceasta vă oferă atât o idee clară și precisă despre ce sunt LSTM-urile și cum funcționează acestea, cât și o articulare importantă cu privire la promisiunea LSTM-urilor în domeniul rețelelor neuronale recurente.

V-a ajutat vreunul dintre citate să înțelegeți sau v-a inspirat?
Să-mi spuneți în comentariile de mai jos.

Dezvoltați astăzi LSTM-uri pentru predicția secvențelor!

Dezvoltați-vă propriile modele LSTM în câteva minute

…cu doar câteva linii de cod python

Descoperiți cum în noul meu Ebook:
Long Short-Term Memory Networks with Python

Acesta oferă tutoriale de auto-educație pe subiecte precum:
CNN LSTMs, Encoder-Decoder LSTMs, modele generative, pregătirea datelor, realizarea de predicții și multe altele….

Aduceți în sfârșit rețelele neuronale recurente LSTM la
Proiectele dvs. de predicție a secvențelor

Scăpați de mediul academic. Just Results.

See What’s Inside

Tweet Share Share Share

Lasă un răspuns

Adresa ta de email nu va fi publicată.