Come molti altri, ho trovato le risorse qui e qui per essere immensamente utili per comprendere le cellule LSTM. Sono fiducioso di capire come i valori scorrono e vengono aggiornati e sono abbastanza sicuro di aggiungere anche le "connessioni spioncino" menzionate, ecc.
Nel mio esempio, ho ad ogni passo un vettore di input di lunghezza ie un vettore di output di lunghezza o, dove o < i.
Ciò che nessuna delle due pagine è realmente coperta è come questi sono organizzati e formati.
Ho 2 domande:
- Nei miei dati di allenamento, ho molte coppie vettoriali input / output corrispondenti a molte, molte unità di tempo. Supponiamo che io alleni l'LSTM con tutti i dati. Posso quindi eseguire un set di input di lunghezza arbitraria attraverso di esso? Ciò che intendo è che, se ho dati di formazione per, per esempio, per tutto il 2015 e il 2016, posso quindi eseguire i dati attraverso la rete per il 2017? O forse dal 2017 al 2020?
- Secondo quanto ho letto, mi sembra di avere una cella LSTM per unità di tempo, quindi se ho molte unità di tempo ho molte celle LSTM concatenate. Dato che la lunghezza della catena dipende dalla lunghezza dei dati che voglio eseguire attraverso la rete e che presumibilmente è arbitraria, non riesco a vedere come lo addestrerei, a meno che non mi alleni solo una singola cella LSTM che viene quindi duplicata un numero volte. Quindi sembra che avrei allenato una singola cella LSTM, e poi
nli avrei collegati insieme per un dato elenco di vettori di lunghezzan? Anche se una singola cella LSTM contiene un numero di elementi e funzioni, sembra che non sia abbastanza per catturare così tante informazioni in qualcosa di così piccolo?
Grazie. Ci sono altre risorse che posso consumare (relativamente rapidamente) che mi aiuteranno a capire i dettagli dell'implementazione? I 2 link sopra hanno dato una fantastica immagine di alto livello di ciò che sta succedendo ma non riescono a catturare questi dettagli più fini.