Rete Ricorrenti definizione
Una RNN mantiene una memoria che tiene traccia delle informazioni importanti dalla sequenza elaborata fino a quel punto.
Rete neurale ricorrente (RNN)
Una rete neurale ricorrente (RNN) è un tipo di rete neurale artificiale progettata per lavorare con dati sequenziali, dove l'ordine e le relazioni tra gli elementi della sequenza sono importanti.A differenza delle reti neurali standard, che elaborano ciascun input indipendentemente dagli altri, le RNN hanno un flusso di informazioni che scorre attraverso di esse, consentendo loro di memorizzare informazioni su stati precedenti e utilizzarle per l'elaborazione di input successivi.
Principio di funzionamento:
Una RNN funziona elaborando una sequenza di input uno alla volta, mantenendo uno stato interno (o memoria) che tiene traccia delle informazioni importanti dalla sequenza elaborata fino a quel punto.Ad ogni passo temporale, la RNN prende in input l'elemento corrente della sequenza e lo stato interno, e produce un'uscita e un nuovo stato interno.
Questa uscita può essere utilizzata per prendere decisioni, fare previsioni o generare sequenze.
Formula Ricorsiva
La formula ricorsiva per calcolare lo stato nascosto \( h_t \) a un dato passaggio temporale \( t \) è data da:\[ h_t = f(W_{ih} x_t + W_{hh} h_{t-1} + b_h) \] Dove:
- \( f \) è la funzione di attivazione, solitamente una funzione non lineare come la tangente iperbolica.
- \( W_{ih} \) è la matrice dei pesi per i collegamenti dagli input allo stato nascosto.
- \( W_{hh} \) è la matrice dei pesi per i collegamenti dallo stato nascosto precedente al nuovo stato nascosto.
- \( b_h \) è il vettore dei bias.
L'output \( y_t \) a un dato passaggio temporale \( t \) può essere calcolato utilizzando lo stato nascosto \( h_t \) attraverso una funzione di attivazione appropriata:
\[ y_t = g(W_{hy} h_t + b_y) \]
Dove \( g \) è la funzione di attivazione per l'output, \( W_{hy} \) è la matrice dei pesi per i collegamenti dallo stato nascosto all'output, e \( b_y \) è il vettore dei bias.
Utilizzi
Le RNN sono ampiamente utilizzate in applicazioni che coinvolgono dati sequenziali, come il riconoscimento del linguaggio naturale, la traduzione automatica, la generazione di testo, la previsione temporale, il riconoscimento della scrittura a mano, e altro ancora.Sono particolarmente efficaci quando si tratta di modellare dipendenze a lungo termine nei dati sequenziali.
Differenze rispetto alle reti neurali standard
La principale differenza tra le RNN e le reti neurali standard è la capacità delle RNN di mantenere uno stato interno che tiene traccia delle informazioni precedenti.Questo consente loro di elaborare dati sequenziali in un contesto più ampio e di catturare dipendenze temporali nei dati.
Passaggio di output a una diversa esecuzione delle RNN
Durante l'addestramento e l'uso delle RNN, l'output prodotto da una RNN in un passaggio temporale può essere utilizzato come input per la successiva esecuzione della RNN.Questo significa che l'output prodotto in uno stato può influenzare l'elaborazione dei successivi stati.
Questa caratteristica permette alle RNN di modellare dinamiche complesse nei dati sequenziali e di adattarsi a una vasta gamma di compiti.
In breve, le RNN sono una potente classe di reti neurali utilizzate per modellare dati sequenziali, e sono in grado di catturare dipendenze temporali nei dati grazie al loro stato interno e al passaggio di output a una diversa esecuzione.