Presentazione delle reti neurali ricorrenti (RNN)

Una rete neurale ricorrente è un tipo di rete neurale artificiale (ANN) ed è utilizzata nelle aree di applicazione dell'elaborazione del linguaggio naturale (PNL) e del riconoscimento vocale. Un modello RNN è progettato per riconoscere le caratteristiche sequenziali dei dati e, successivamente, utilizzare gli schemi per prevedere lo scenario imminente.

Funzionamento delle reti neurali ricorrenti

Quando parliamo di reti neurali tradizionali, tutte le uscite e gli ingressi sono indipendenti l'uno dall'altro, come mostrato nel diagramma seguente:

Ma nel caso di reti neurali ricorrenti, l'output dei passaggi precedenti viene immesso nell'input dello stato corrente. Ad esempio, per prevedere la lettera successiva di qualsiasi parola o per predire la parola successiva della frase, è necessario ricordare le lettere o le parole precedenti e memorizzarle in qualche forma di memoria.

Il livello nascosto è quello che ricorda alcune informazioni sulla sequenza. Un semplice esempio di vita reale a cui possiamo relazionare RNN è quando guardiamo un film e in molti casi, siamo in grado di prevedere cosa accadrà dopo ma cosa succede se qualcuno si è appena unito al film e gli viene chiesto di prevedere cosa succederà dopo? Quale sarà la sua risposta? Lui o lei non avranno alcun indizio perché non sono a conoscenza degli eventi precedenti del film e non hanno alcun ricordo al riguardo.

Di seguito viene fornita un'illustrazione di un tipico modello RNN:

I modelli RNN hanno una memoria che ricorda sempre ciò che è stato fatto nei passaggi precedenti e ciò che è stato calcolato. La stessa attività viene eseguita su tutti gli ingressi e RNN utilizza lo stesso parametro per ciascuno degli ingressi. Poiché la rete neurale tradizionale ha insiemi indipendenti di input e output, sono più complessi di RNN.

Ora proviamo a capire la rete neurale ricorrente con l'aiuto di un esempio.

Diciamo che abbiamo una rete neurale con 1 layer di input, 3 layer nascosti e 1 layer di output.

Quando parliamo di altre o tradizionali reti neurali, avranno i loro set di distorsioni e pesi nei loro livelli nascosti come (w1, b1) per il livello nascosto 1, (w2, b2) per il livello nascosto 2 e (w3, b3 ) per il terzo livello nascosto, dove: w1, w2 e w3 sono i pesi e, b1, b2 e b3 sono i pregiudizi.

Detto questo, possiamo dire che ogni livello non dipende da nessun altro e che non possono ricordare nulla sull'input precedente:

Ora, ciò che farà un RNN è il seguente:

  • I livelli indipendenti verranno convertiti nel livello dipendente. Questo viene fatto fornendo gli stessi pregiudizi e pesi a tutti i livelli. Ciò riduce anche il numero di parametri e layer nella rete neurale ricorrente e aiuta RNN a memorizzare l'output precedente emettendo output precedente come input per il layer nascosto imminente.
  • Per riassumere, tutti i livelli nascosti possono essere uniti in un singolo livello ricorrente in modo tale che pesi e distorsioni siano uguali per tutti i livelli nascosti.
    Quindi una rete neurale ricorrente avrà un aspetto simile al seguente:

Ora è il momento di affrontare alcune delle equazioni per un modello RNN.

  • Per calcolare lo stato corrente,

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

Dove:

x t è lo stato di input
h t-1 è lo stato precedente,
h t è lo stato corrente.

  • Per calcolare la funzione di attivazione

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

Dove:
W xh è il peso al neurone in ingresso,

Whh è il peso del neurone ricorrente.

  • Per calcolare l'output:

Y t =W hy h t.

Dove,
Y t è l'output e,
Perché è il peso a livello di output.

Passaggi per la formazione di una rete neurale ricorrente

  1. Nei livelli di input, l'input iniziale viene inviato con tutti lo stesso peso e la stessa funzione di attivazione.
  2. Utilizzando l'ingresso corrente e l'uscita di stato precedente, viene calcolato lo stato corrente.
  3. Ora lo stato corrente h t diventerà h t-1 per la seconda fase temporale.
  4. Questo continua a ripetersi per tutti i passaggi e per risolvere qualsiasi problema particolare, può andare avanti tante volte per unire le informazioni da tutti i passaggi precedenti.
  5. Il passaggio finale viene quindi calcolato dallo stato corrente dello stato finale e da tutti gli altri passaggi precedenti.
  6. Ora viene generato un errore calcolando la differenza tra l'output effettivo e l'output generato dal nostro modello RNN.
  7. Il passaggio finale è quando si verifica il processo di backpropagation in cui l'errore viene riproposto per aggiornare i pesi.

Vantaggi delle reti neurali ricorrenti

  1. RNN può elaborare input di qualsiasi lunghezza.
  2. Un modello RNN è modellato per ricordare ogni informazione nel tempo, il che è molto utile in qualsiasi predittore di serie temporali.
  3. Anche se la dimensione di input è maggiore, la dimensione del modello non aumenta.
  4. I pesi possono essere condivisi attraverso le fasi temporali.
  5. RNN può utilizzare la propria memoria interna per elaborare le serie arbitrarie di input che non è il caso delle reti neurali feedforward.

Svantaggi delle reti neurali ricorrenti

  1. A causa della sua natura ricorrente, il calcolo è lento.
  2. L'addestramento dei modelli RNN può essere difficile.
  3. Se stiamo usando relu o tanh come funzioni di attivazione, diventa molto difficile elaborare sequenze molto lunghe.
  4. È soggetto a problemi come l'esplosione e la sparizione gradiente.

Conclusione

In questo articolo, abbiamo appreso un altro tipo di rete neurale artificiale chiamata rete neurale ricorrente, ci siamo concentrati sulla differenza principale che distingue RNN da altri tipi di reti neurali, le aree in cui può essere ampiamente utilizzato come nel riconoscimento vocale e NLP (Natural Language Processing). Inoltre, siamo andati dietro il funzionamento dei modelli e delle funzioni RNN utilizzati per costruire un modello RNN robusto.

Articoli consigliati

Questa è una guida alle reti neurali ricorrenti. Qui discutiamo l'introduzione, come funziona, i passaggi, i vantaggi e gli svantaggi di RNN, ecc. Puoi anche consultare i nostri altri articoli suggeriti per saperne di più -
  1. Che cosa sono le reti neurali?
  2. Quadri di apprendimento automatico
  3. Introduzione all'intelligenza artificiale
  4. Introduzione a Big Data Analytics
  5. Implementazione di reti neurali

Categoria: