Attraverso l’espressione di Deep Sequence Modeling facciamo riferimento all’impiego di reti neurali artificiali per processare dati sequenziali (Sequence Data).
L’obiettivo di questo post è quello di capire quali insidie si celino dietro il sequence modeling e sviluppare un’intuizione sul funzionamento delle reti neurali ricorsive o recursive neural network.
Fermi tutti.
Cosa sono i dati sequenziali?
Cerchiamo di capirlo con un semplice, seppur funzionale, esempio.
La palla
Prendi una palla su uno schermo.

In quale direzione si muoverà?
Date le ridotte premesse, ogni possibile risposta non sarebbe che una mera infondata ipotesi.
Avremmo bisogno di alcune indicazioni sul comportamento passato della palla per determinare con più precisione un’eventuale direzione futura.
Hai ragione.
La palla è un esempio banale, anche se i dati sequenziali sono ovunque.
Un file audio e un paragrafo testuale sono due esempi di dati sequenziali: il primo è una sequenza ordinata di suoni, il secondo di parole e a un livello più profondo di lettere.
Per noi esseri umani è incredibilmente facile distinguere ed elaborare questo tipo di dati, eseguire cioè il sequence modeling.
Per un computer?
Non tanto.
Vediamo perché.
Processing and Handling Sequence Data
Devi sapere intanto che il sequence modeling nasconde diverse insidie.
Fingiamo di voler prevedere la parola successiva in una frase.
Questa può contenere 20 caratteri, 30, o 40.
Generalizziamo dicendo che il contenuto in input può essere variabile.
Dalla nostra precedente lezione introduttiva alle reti neurali artificiali sappiamo però che è necessario fissare in modo definito e costante un input.
Come combiniamo dunque una struttura fissa con un input variabile?
La risposta?
Windowing
Una soluzione consiste nell’impiegare una finestra a scorrimento di lettura.
In questo modo forziamo il vettore d’input a una dimensione costante (per esempio, due parole) consentendoci comunque di scansionare e gestire una qualsiasi frase.
Quindi possiamo allocare spazio in un vettore di dimensioni costanti e definite per rappresentare numericamente le due parole precedenti a quella che intendiamo prevedere.
Ora, una seconda considerazione.
Stiamo risolvendo un problema di sequence modeling: abbiamo bisogno di uno storico per una previsione accurata.
Ricorda la palla.
Tante più informazioni abbiamo sul tracciato percorso, quanto migliore sarà la nostra previsione.
Traslando il problema, ci servono altre parole altrimenti non saremmo in grado di gestire dipendenze di più vasta estensione.
Sono cresciuto in Francia, ma adesso vivo in Spagna. Parlo fluentemente ****.
Il senso comune ci spinge a pensare che la parola sia ‘francese’ ma se il nostro sistema considerasse solo le ultime 3-4 parole, allora produrrebbe come risultato ‘spagnolo’.
Abbiamo quindi bisogno d’informazioni distanti per prevedere accuratamente la parola successiva.
All data: bag of words
Un secondo approccio consiste nel considerare l’intera frase e conteggiare le occorrenze.
In questo caso rappresentiamo un vettore come conteggio delle parole presenti generando un bag of words.
Hey hey.
Non riusciamo però a codificare efficacemente l’informazione contenuta nell’ordine delle parole:
The food was good, not bad at all.
The food was bad, not good at all.
Come puoi vedere, il numero delle occorrenze è identico ma l’ordine cambia e così anche il significato.
Contare le parole di una frase non basta.
Sequence Modeling Design Criteria
Ripassiamo i punti chiave.
Per realizzare un modello sequenziale dobbiamo quindi prendere in considerazione alcuni criteri:
- gestire sequenze di lunghezza variabile
- tracciare dipendenze di lungo termine
- preservare l’informazione dell’ordine
- condividere parametri nell’intera sequenza
Queste complicazioni hanno portato all sviluppo di una particolare struttura di reti neurali artificiali chiamata Recurrent Neural Network (RNN).
Recurrent Neural Network (RNN) è una classe di reti neurali in grado di analizzare serie storiche (Time Series), di cui abbiamo parlato qui, e prevedere tendenze e andamenti futuri.
Allora basta indugiare: andiamo alla scoperta delle Recurrent Neural Network.
Per il momento è tutto!
Un caldo abbraccio, Andrea.
No Comment