L’approccio
con l’autoencoder LSTM del post precedente è stato troppo brusco, anche perché
non è facile valutarlo su un dataset con molte feature (caratteristiche). Per
ogni timestamp, il “quando” di ogni sequenza temporale (non il “quanto”),
abbiamo un certo numero di parametri n (non riducibili perché essenziali) per
ogni scossa di terremoto che, se intensa, può durare anche 30 secondi e oltre.
La frequenza di campionamento media è oggi di 100 Hz e facendo due calcoli triviali si arriva a dover considerare, senza una riduzione dimensionale, per ogni sequenza, una matrice (100x30) righe per n colonne.
Per l’addestramento occorrono decine o centinaia di migliaia di queste sequenze.
La frequenza di campionamento media è oggi di 100 Hz e facendo due calcoli triviali si arriva a dover considerare, senza una riduzione dimensionale, per ogni sequenza, una matrice (100x30) righe per n colonne.
Per l’addestramento occorrono decine o centinaia di migliaia di queste sequenze.
Esiste un approccio didattico più soft all’utilizzo di queste reti neurali che ricostruiscono l'input attraverso uno spazio latente compresso, ampiamente descritto nella letteratura tecnica e denominato “L’esperimento delle due lune”.
La sua preparazione inizia con la generazione del dataset mediante una funzione di libreria e segue con la sua normalizzazione. I dati vengono poi suddivisi in set di training e validazione con proporzione 80/20.
Il modello è strutturato come segue:
La sua preparazione inizia con la generazione del dataset mediante una funzione di libreria e segue con la sua normalizzazione. I dati vengono poi suddivisi in set di training e validazione con proporzione 80/20.
Il modello è strutturato come segue:
1. Encoder:
L'esperimento evidenzia l'efficacia nella riduzione dimensionale non supervisionata e il potenziale di estensione a dati sequenziali grazie all'architettura LSTM. La riproducibilità è garantita dall'uso di seed fissi.
- Un layer LSTM che processa la sequenza di input
- Layer fully connected (2) che proiettano l'output dell'LSTM nello spazio latente
2. Decoder:
- Layer fully connected (2) che proiettano la rappresentazione latente
- Un layer LSTM che ricostruisce la sequenza
- Layer fully connected finale per riportare l'output alla dimensione originale
In layer fully-connected ogni neurone è connesso a tutti i neuroni del layer precedente.
Per un totale di 896 neuroni e 285. 444 parametri.
Lo spazio latente, in questo semplice esempio, non nasce da una compressione delle dimensioni (non è una rappresentazione densa), che rimangono 2 (le coordinate x e y), ma da una trasformazione non lineare.
L'addestramento procede per qualche centinaio di epoche utilizzando il Mean Squared Error (MSE) come indicatore per il loss e l'Adam come ottimizzatore. Durante il processo viene monitorato l'andamento sia del training che del validation loss.
La valutazione del modello considera l'MSE complessivo per misurare la qualità della ricostruzione, accompagnato da un confronto visivo tra dati originali e ricostruiti. L'analisi dello spazio latente, ossia che raccoglie solo le feature essenziali contenute nei dati, conferma l'ottima separazione dei cluster.L'esperimento evidenzia l'efficacia nella riduzione dimensionale non supervisionata e il potenziale di estensione a dati sequenziali grazie all'architettura LSTM. La riproducibilità è garantita dall'uso di seed fissi.
L'autoencoder LSTM dimostra la sua validità nella riduzione dimensionale e nell'estrazione di rappresentazioni significative, prospettando tutta una serie di possibilità per applicazioni più complesse come l'analisi di sequenze temporali e il rilevamento di anomalie.
Nei grafici che seguono si evince la sua enorme capacità di ricostruire i dati del modello autoencoder LSTM il cui addestramento si conclude con:
Nei grafici che seguono si evince la sua enorme capacità di ricostruire i dati del modello autoencoder LSTM il cui addestramento si conclude con:
Epoch [100/100] - Train Loss: 0.000098 | Val Loss: 0.000150
Overall Reconstruction MSE: 0.000130