RNN Flashcards
Cos’è una RNN?
Una RNN, o rete neurale ricorrente (Recurrent Neural Network), è un tipo di rete neurale artificiale specializzato per l’elaborazione di dati sequenziali o dati con una struttura temporale. A differenza delle reti neurali tradizionali, le RNN hanno una capacità intrinseca di elaborare informazioni con una dipendenza temporale.
La caratteristica distintiva delle RNN risiede nella presenza di cicli di retroazione, che consentono ai dati di fluire in avanti attraverso la rete e allo stesso tempo di mantenere una memoria degli stati precedenti. Ciò permette alle RNN di mantenere una comprensione contestuale delle informazioni passate mentre elaborano l’input corrente.
Le reti neurali ricorrenti (RNN) rappresentano una classe di reti che riesce a predire il futuro.
Possono analizzare dati di serie temporali come i prezzi delle azioni. Nei sistemi di guida autonoma,
possono anticipare traiettorie dell’auto e aiutano a evitare incidenti.
Le RNN possono generare frasi, didascalie di immagini e molto di più.
Il loro problema principale è la scomparsa/l’esplosione del gradiente.
Un RNN sembra un NN feedforward, tranne per il fatto che ha anche collegamenti che puntano all’indietro.
L’RNN più semplice possibile è composto da un solo neurone che riceve input, produce un output e rimanda questo a sé stesso.
Possiamo rappresentare l’RNN precedente rispetto all’asse del tempo.
Si chiama srotolamento della rete attraverso il tempo
Ogni neurone ricorrente ha due serie di pesi: uno per gli ingressi x(t) e l’altro per le uscite del precedente
passo temporale, y(t–1).
Siano w(x) e w(y) i vettori di peso in ingresso e in uscita.
L’output di un livello ricorrente per una singola istanza è calcolato nel seguente modo:
Da notare che y(t) è una funzione di x(t) e y(t-1), che è una funzione di x(t-1) e y(t-2)… quindi y(t) è una
funzione di tutti i precedenti output, tranne nella prima iterazione nel quale i pesi vengono considerati 0.
La parte di una rete neurale che conserva lo stato, attraverso passaggi temporali, è chiamata cella di
memoria (o cella).
Lo stato di una cella al passo temporale t, indicato con h(t) è una funzione degli input in quel passo e il suo
stato nel passo temporale precedente.
Un RNN può prendere simultaneamente una sequenza di input e produrre una sequenza di output.
Questo tipo di rete è utile per prevedere serie temporali, ad esempio poiché i prezzi delle azioni usando gli
ultimi N giorni e l’RNN emette i prezzi da N-1 giorni fa a domani.
APPUNTI DATA SCIENCE & MACHINE LEARNING LUCA FANZINI
RNN
L’RNN può anche accettare una sequenza di input e ignorare tutte le uscite tranne l’ultima.
Ad esempio, l’input potrebbe essere una sequenza di parole corrispondente a una recensione di un film e
l’RNN restituirebbe in uscita un punteggio di sentiment
L’RNN può anche accettare un singolo input al primo passaggio (zeri per altri passi di tempo) ed emettere
una sequenza.
Ad esempio, l’input potrebbe essere un’immagine e l’output la sua dida
+ FORMULE