¿Cómo se puede medir la dependencia del tiempo de un RNN?
La mayor parte de la discusión sobre RNN y LSTM alude a la capacidad variable de diferentes RNN para capturar la "dependencia a largo plazo". Sin embargo, la mayoría de las demostraciones usan texto generado para mostrar la ausencia de dependencia a largo plazo para Vanilla RNN.
¿Hay alguna forma de medir explícitamente la dependencia del tiempo de un RNN entrenado dado, como ACF y PACF de una serie de tiempo ARMA dada?
Actualmente estoy tratando de ver la (norma de Frobenius de) gradientes de recuerdos$s_k$contra entrada$x_l$, dónde$l\le k$, resumido sobre ejemplos de entrenamiento$\{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$$Me gustaría saber si hay alternativas más refinadas o más utilizadas a este prototipo.
Estoy trabajando con series temporales, así que trato las entradas.$\{x_t\}$como realización de un proceso aleatorio$\{X_t\}$, por lo tanto, por "actual" quiero decir$x_i,s_i$para algunos fijos$i$, "el pasado" quiero decir$\{x_j\}_{j=1}^{i-1},\{s_j\}_{j=1}^{i-1}$y "tiempo" me refiero al índice$t$.
Supongo que la "dependencia a largo plazo" en la literatura se refiere a la sensibilidad de la memoria actual$s_k$escribir entradas pasadas$\{x_j\}_{j=1}^{k-1}$, de ahí el prototipo que formulé.
Respuestas
No conozco ninguna métrica estándar o ampliamente utilizada para esto. Creo que qué métrica sería apropiada dependería de para qué quieras usarla.
Los problemas con RNN son "olvidar". Si alimenta una larga secuencia de entradas$x=(x_1,\dots,x_n)$en un RNN, donde$n$es demasiado grande, el problema es que a menudo la decisión final está determinada por los últimos valores ($\ldots,x_{n-1},x_n$) y los primeros valores ($x_1,x_2,\ldots$) han sido "olvidados" y no afectan la decisión final. Esto es indeseable en muchos entornos.
Su métrica sería una forma razonable de tener una idea de esto. Otra forma razonable podría ser alimentar una entrada$x=(x_1,x_2,\dots,x_n)$, luego cambia solo$x_1$para obtener una nueva entrada$x'=(x'_1,x_2,\dots,x_n)$, alimentar$x'$, y compare las salidas de la RNN en$x$contra$x'$; y repetir para muchas muestras de entrenamiento o muestras de prueba$x$.