Introducerea rețelelor neuronale recurente (RNN)

O rețea neuronală recurentă este un tip de rețea neuronală artificială (ANN) și este utilizată în zonele de aplicare a prelucrării limbajului natural (NLP) și a recunoașterii vorbirii. Un model RNN este conceput pentru a recunoaște caracteristicile secvențiale ale datelor și, ulterior, folosind tiparele pentru a prezice scenariul care urmează.

Funcționarea rețelelor neuronale recurente

Când vorbim despre rețelele neuronale tradiționale, toate ieșirile și intrările sunt independente unele de altele, așa cum se arată în diagrama de mai jos:

Dar în cazul rețelelor neuronale recurente, ieșirea din etapele anterioare este introdusă în intrarea stării actuale. De exemplu, pentru a prezice următoarea literă a oricărui cuvânt sau a prezice următorul cuvânt al propoziției, este necesar să vă amintiți literele anterioare sau cuvintele și să le stocați într-o formă de memorie.

Stratul ascuns este cel care amintește unele informații despre secvență. Un exemplu simplu din viața reală la care putem relaționa RNN este atunci când vizionăm un film și, în multe cazuri, suntem în poziția de a prezice ce se va întâmpla în continuare, dar ce se întâmplă dacă cineva s-a alăturat filmului și i se cere să prezică ce urmează să se întâmple? Care va fi răspunsul lui? El sau ea nu vor avea niciun indiciu pentru că nu sunt la curent cu evenimentele anterioare ale filmului și nu au nicio amintire despre el.

O ilustrație a unui model tipic RNN este prezentată mai jos:

Modelele RNN au o memorie care amintește întotdeauna ce a fost făcut în etapele anterioare și ce a fost calculat. Aceeași sarcină este efectuată pe toate intrările și RNN folosește același parametru pentru fiecare dintre intrări. Deoarece rețeaua neuronală tradițională are seturi independente de intrare și ieșire, acestea sunt mai complexe decât RNN.

Acum să încercăm să înțelegem Rețeaua Neurală Recurentă cu ajutorul unui exemplu.

Să spunem, avem o rețea neurală cu 1 strat de intrare, 3 straturi ascunse și 1 strat de ieșire.

Când vorbim despre alte rețele neuronale tradiționale, acestea vor avea propriile seturi de prejudecăți și greutăți în straturile lor ascunse, cum ar fi (w1, b1) pentru stratul ascuns 1, (w2, b2) pentru stratul 2 ascuns și (w3, b3 ) pentru al treilea strat ascuns, unde: w1, w2 și w3 sunt greutățile și, b1, b2 și b3 sunt prejudecățile.

Având în vedere acest lucru, putem spune că fiecare strat nu depinde de niciun alt și că nu își pot aminti nimic despre intrarea anterioară:

Acum, ceea ce va face un RNN este următorul:

  • Straturile independente vor fi convertite în stratul dependent. Acest lucru se realizează prin furnizarea acelorași prejudecăți și greutăți tuturor straturilor. Acest lucru reduce, de asemenea, numărul de parametri și straturi în rețeaua neuronală recurentă și ajută RNN să memoreze ieșirea anterioară, realizând ieșirea anterioară ca intrare la următorul strat ascuns.
  • Pentru a rezuma, toate straturile ascunse pot fi unite într-un singur strat recurent, astfel încât greutățile și părtinirile să fie aceleași pentru toate straturile ascunse.
    Deci o rețea neuronală recurentă va arăta ceva ca mai jos:

Acum este timpul să abordăm unele dintre ecuațiile pentru un model RNN.

  • Pentru calcularea stării actuale,

h t= f (h t-1, x t ),

Unde:

x t este starea de intrare
h t-1 este starea anterioară,
h t este starea actuală.

  • Pentru calcularea funcției de activare

h t= tanh (W hh h t-1 +W xh x t ),

Unde:
W xh este greutatea la neuronul de intrare,

W hh este greutatea la neuron recurent.

  • Pentru calculul rezultatului:

Y t =W hy h t.

Unde,
Y t este Ieșirea și,
W hy este greutatea la stratul de ieșire.

Pași pentru instruirea unei rețele neuronale recurente

  1. În straturile de intrare, intrarea inițială este trimisă cu toate având aceeași greutate și funcție de activare.
  2. Folosind intrarea curentă și ieșirea stării anterioare, se calculează starea curentă.
  3. Acum starea actuală h t va deveni h t-1 pentru a doua etapă.
  4. Acest lucru continuă să se repete pentru toți pașii și pentru a rezolva orice problemă particulară, se poate continua de mai multe ori pentru a alătura informațiile din toate etapele anterioare.
  5. Etapa finală este apoi calculată de starea actuală a stării finale și de toate celelalte etape anterioare.
  6. Acum este generată o eroare prin calcularea diferenței dintre producția reală și ieșirea generată de modelul nostru RNN.
  7. Ultimul pas este atunci când apare procesul de backpropagation în care eroarea este backpropagated pentru a actualiza greutățile.

Avantajele rețelelor neuronale recurente

  1. RNN poate prelucra intrări de orice lungime.
  2. Un model RNN este modelat pentru a-și aminti fiecare informație de-a lungul timpului, care este foarte util în orice predictor al seriei de timp.
  3. Chiar dacă dimensiunea de intrare este mai mare, dimensiunea modelului nu crește.
  4. Greutățile pot fi împărțite de-a lungul etapelor.
  5. RNN își poate folosi memoria internă pentru procesarea seriei arbitrare de intrări, care nu este cazul rețelelor neuronale avansate.

Dezavantajele rețelelor neuronale recurente

  1. Datorită naturii sale recurente, calculul este lent.
  2. Pregătirea modelelor RNN poate fi dificilă.
  3. Dacă utilizăm relu sau tanh ca funcții de activare, devine foarte dificil să procesăm secvențe care sunt foarte lungi.
  4. Este predispus la probleme precum explodarea și dispariția gradientului.

Concluzie

În acest articol, am învățat un alt tip de rețea neuronală artificială numită Rețea Neurală Recurentă, ne-am concentrat pe diferența principală care face ca RNN să se distingă de alte tipuri de rețele neuronale, zonele în care poate fi utilizată pe scară largă, precum recunoașterea vorbirii. și NLP (Natural Language Processing). Mai departe, am plecat în urma funcționării modelelor RNN și a funcțiilor care sunt utilizate pentru a construi un model RNN robust.

Articole recomandate

Acesta este un ghid pentru rețelele neuronale recurente. Aici discutăm introducerea, modul în care funcționează, pașii, avantajele și dezavantajele RNN, etc. Puteți parcurge și alte articole propuse pentru a afla mai multe -
  1. Ce este rețelele neuronale?
  2. Cadre de învățare automată
  3. Introducere în inteligența artificială
  4. Introducere în Analiza Big Data
  5. Implementarea rețelelor neuronale

Categorie: