Notice: This page requires JavaScript to function properly.
Please enable JavaScript in your browser settings or update your browser.
Impara Come Funziona una RNN? | Introduzione alle RNN
Introduzione alle RNN

bookCome Funziona una RNN?

Le reti neurali ricorrenti (RNN) sono progettate per gestire dati sequenziali mantenendo le informazioni degli input precedenti nei loro stati interni. Questo le rende ideali per compiti come la modellazione del linguaggio e la predizione di sequenze.

  • Elaborazione sequenziale: l'RNN elabora i dati passo dopo passo, tenendo traccia di ciò che è stato elaborato in precedenza;
  • Completamento di frasi: data la frase incompleta "My favourite dish is sushi. So, my favourite cuisine is _____." l'RNN elabora le parole una alla volta. Dopo aver visto "sushi", prevede la parola successiva come "Japanese" in base al contesto precedente;
  • Memoria nelle RNN: a ogni passo, l'RNN aggiorna il proprio stato interno (memoria) con nuove informazioni, garantendo il mantenimento del contesto per i passi futuri;
  • Addestramento dell'RNN: le RNN vengono addestrate tramite il backpropagation through time (BPTT), in cui gli errori vengono propagati all'indietro attraverso ogni passo temporale per regolare i pesi e migliorare le previsioni.

Propagazione in avanti

Durante la propagazione in avanti, l'RNN elabora i dati di input passo dopo passo:

  1. Input al passo temporale tt: la rete riceve un input xtx_t a ogni passo temporale;

  2. Aggiornamento dello stato nascosto: lo stato nascosto corrente hth_t viene aggiornato in base allo stato nascosto precedente ht1h_{t-1} e all'input corrente xtx_t utilizzando la seguente formula:

    ht=f(W[ht1,xt]+b)
    • Dove:
      • WW è la matrice dei pesi;
      • bb è il vettore di bias;
      • ff è la funzione di attivazione.
  3. Generazione dell'output: l'output yty_t viene generato in base allo stato nascosto corrente hth_t utilizzando la formula:

    yt=g(Vht+c)

    • Dove:
      • VV è la matrice dei pesi di output;
      • cc è il bias di output;
      • gg è la funzione di attivazione utilizzata nello strato di output.

Processo di Backpropagation

La backpropagation nelle RNN è fondamentale per aggiornare i pesi e migliorare il modello. Il processo viene modificato per tenere conto della natura sequenziale delle RNN tramite la backpropagation through time (BPTT):

  1. Calcolo dell'errore: il primo passo nella BPTT è calcolare l'errore a ciascun passo temporale. Questo errore è tipicamente la differenza tra l'output previsto e il target reale;

  2. Calcolo del gradiente: nelle Reti Neurali Ricorrenti, i gradienti della funzione di perdita vengono calcolati differenziando l'errore rispetto ai parametri della rete e propagati all'indietro nel tempo dall'ultimo al primo passo, il che può portare a gradienti che svaniscono o esplodono, in particolare in sequenze lunghe;

  3. Aggiornamento dei pesi: una volta calcolati i gradienti, i pesi vengono aggiornati utilizzando una tecnica di ottimizzazione come la stochastic gradient descent (SGD). I pesi vengono modificati in modo tale che l'errore sia minimizzato nelle iterazioni future. La formula per l'aggiornamento dei pesi è:

    W:=WηLossW

    • Dove:
      • η\eta è il tasso di apprendimento;
      • LossW è il gradiente della funzione di perdita rispetto alla matrice dei pesi.

In sintesi, le RNN sono potenti perché possono memorizzare e utilizzare informazioni passate, rendendole adatte a compiti che coinvolgono sequenze.

question mark

Qual è il ruolo della funzione gg nell'equazione di output yt=g(Vht+c)y_t = g(V \cdot h_t+ c)

Select the correct answer

Tutto è chiaro?

Come possiamo migliorarlo?

Grazie per i tuoi commenti!

Sezione 1. Capitolo 2

Chieda ad AI

expand

Chieda ad AI

ChatGPT

Chieda pure quello che desidera o provi una delle domande suggerite per iniziare la nostra conversazione

Awesome!

Completion rate improved to 4.55

bookCome Funziona una RNN?

Scorri per mostrare il menu

Le reti neurali ricorrenti (RNN) sono progettate per gestire dati sequenziali mantenendo le informazioni degli input precedenti nei loro stati interni. Questo le rende ideali per compiti come la modellazione del linguaggio e la predizione di sequenze.

  • Elaborazione sequenziale: l'RNN elabora i dati passo dopo passo, tenendo traccia di ciò che è stato elaborato in precedenza;
  • Completamento di frasi: data la frase incompleta "My favourite dish is sushi. So, my favourite cuisine is _____." l'RNN elabora le parole una alla volta. Dopo aver visto "sushi", prevede la parola successiva come "Japanese" in base al contesto precedente;
  • Memoria nelle RNN: a ogni passo, l'RNN aggiorna il proprio stato interno (memoria) con nuove informazioni, garantendo il mantenimento del contesto per i passi futuri;
  • Addestramento dell'RNN: le RNN vengono addestrate tramite il backpropagation through time (BPTT), in cui gli errori vengono propagati all'indietro attraverso ogni passo temporale per regolare i pesi e migliorare le previsioni.

Propagazione in avanti

Durante la propagazione in avanti, l'RNN elabora i dati di input passo dopo passo:

  1. Input al passo temporale tt: la rete riceve un input xtx_t a ogni passo temporale;

  2. Aggiornamento dello stato nascosto: lo stato nascosto corrente hth_t viene aggiornato in base allo stato nascosto precedente ht1h_{t-1} e all'input corrente xtx_t utilizzando la seguente formula:

    ht=f(W[ht1,xt]+b)
    • Dove:
      • WW è la matrice dei pesi;
      • bb è il vettore di bias;
      • ff è la funzione di attivazione.
  3. Generazione dell'output: l'output yty_t viene generato in base allo stato nascosto corrente hth_t utilizzando la formula:

    yt=g(Vht+c)

    • Dove:
      • VV è la matrice dei pesi di output;
      • cc è il bias di output;
      • gg è la funzione di attivazione utilizzata nello strato di output.

Processo di Backpropagation

La backpropagation nelle RNN è fondamentale per aggiornare i pesi e migliorare il modello. Il processo viene modificato per tenere conto della natura sequenziale delle RNN tramite la backpropagation through time (BPTT):

  1. Calcolo dell'errore: il primo passo nella BPTT è calcolare l'errore a ciascun passo temporale. Questo errore è tipicamente la differenza tra l'output previsto e il target reale;

  2. Calcolo del gradiente: nelle Reti Neurali Ricorrenti, i gradienti della funzione di perdita vengono calcolati differenziando l'errore rispetto ai parametri della rete e propagati all'indietro nel tempo dall'ultimo al primo passo, il che può portare a gradienti che svaniscono o esplodono, in particolare in sequenze lunghe;

  3. Aggiornamento dei pesi: una volta calcolati i gradienti, i pesi vengono aggiornati utilizzando una tecnica di ottimizzazione come la stochastic gradient descent (SGD). I pesi vengono modificati in modo tale che l'errore sia minimizzato nelle iterazioni future. La formula per l'aggiornamento dei pesi è:

    W:=WηLossW

    • Dove:
      • η\eta è il tasso di apprendimento;
      • LossW è il gradiente della funzione di perdita rispetto alla matrice dei pesi.

In sintesi, le RNN sono potenti perché possono memorizzare e utilizzare informazioni passate, rendendole adatte a compiti che coinvolgono sequenze.

question mark

Qual è il ruolo della funzione gg nell'equazione di output yt=g(Vht+c)y_t = g(V \cdot h_t+ c)

Select the correct answer

Tutto è chiaro?

Come possiamo migliorarlo?

Grazie per i tuoi commenti!

Sezione 1. Capitolo 2
some-alt