Come si può misurare la dipendenza dal tempo di un RNN?
La maggior parte della discussione su RNN e LSTM allude alla diversa capacità di diversi RNN di catturare la "dipendenza a lungo termine". Tuttavia, la maggior parte delle dimostrazioni utilizza il testo generato per mostrare l'assenza di dipendenza a lungo termine per vanilla RNN.
Esiste un modo per misurare esplicitamente la dipendenza dal tempo di un dato RNN addestrato, proprio come ACF e PACF di una data serie temporale ARMA?
Attualmente sto cercando di esaminare i gradienti (della norma di Frobenius) dei ricordi$s_k$contro input$x_l$, dove$l\le k$, riassunti su esempi di formazione$\{x^i\}_{i=1}^N$-$$\text{Dep}(k,l):=\sum_{i=1}^N \big\|\frac{\partial s_k}{\partial x_l}(x^i)\big\|_F$$Vorrei sapere se ci sono alternative più raffinate o ampiamente utilizzate a questo prototipo.
Sto lavorando con le serie temporali, quindi tratto gli input$\{x_t\}$come realizzazione di un processo casuale$\{X_t\}$, quindi per "corrente" intendo$x_i,s_i$per alcuni fissi$i$, "il passato" intendo$\{x_j\}_{j=1}^{i-1},\{s_j\}_{j=1}^{i-1}$e "tempo" intendo l'indice$t$.
Immagino che la "dipendenza a lungo termine" in letteratura si riferisca alla sensibilità della memoria attuale$s_k$rispetto agli input passati$\{x_j\}_{j=1}^{k-1}$, da qui il prototipo che ho formulato.
Risposte
Non sono a conoscenza di alcuna metrica standard o ampiamente utilizzata per questo. Penso che quale metrica sarebbe appropriata dipenderebbe da cosa vuoi usarla.
Il problema con RNN è "dimenticare". Se alimenti una lunga sequenza di input$x=(x_1,\dots,x_n)$in un RNN, dove$n$è troppo grande, il problema è che spesso la decisione finale è determinata dagli ultimi valori ($\ldots,x_{n-1},x_n$) e i primi valori ($x_1,x_2,\ldots$) sono stati "dimenticati" e non pregiudicano la decisione finale. Questo è indesiderabile in molte impostazioni.
La tua metrica sarebbe un modo ragionevole per avere un'idea di questo. Un altro modo ragionevole potrebbe essere quello di inserire un input$x=(x_1,x_2,\dots,x_n)$, quindi cambia solo$x_1$per ottenere un nuovo input$x'=(x'_1,x_2,\dots,x_n)$, alimentare$x'$, e confronta le uscite dell'RNN su$x$vs$x'$; e ripetere per molti campioni di addestramento o campioni di prova$x$.