RNNの時間依存性をどのように測定できますか?

Aug 21 2020

RNNとLSTMに関する議論のほとんどは、「長期的な依存関係」を捉えるさまざまなRNNのさまざまな能力をほのめかしています。ただし、ほとんどのデモンストレーションでは、生成されたテキストを使用して、バニラRNNに長期的な依存関係がないことを示しています。

特定のARMA時系列のACFやPACFのように、特定のトレーニング済みRNNの時間依存性を明示的に測定する方法はありますか?

私は現在、記憶の(フロベニウスノルムの)勾配を見ようとしています $s_k$ 入力に対して $x_l$、 どこ $l\le k$、トレーニング例をまとめた $\{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$$ このプロトタイプのより洗練された、または広く使用されている代替案があるかどうかを知りたいです。

私は時系列で作業しているので、入力を扱います $\{x_t\}$ ランダムプロセスの実現として $\{X_t\}$したがって、「現在」とは、 $x_i,s_i$ いくつかの固定 $i$、「過去」という意味 $\{x_j\}_{j=1}^{i-1},\{s_j\}_{j=1}^{i-1}$ と「時間」私はインデックスを意味します $t$

文学における「長期依存」とは、現在の記憶の感性を指していると思います $s_k$ 過去の入力について $\{x_j\}_{j=1}^{k-1}$したがって、私が作成したプロトタイプ。

回答

D.W. Aug 22 2020 at 00:55

私はこれについて標準的または広く使用されている測定基準を知りません。どのメトリックが適切であるかは、それを何に使用したいかによって異なると思います。

RNNの問題は「忘却」です。長い入力シーケンスをフィードする場合$x=(x_1,\dots,x_n)$ RNNに、ここで $n$ が大きすぎる場合、問題は、多くの場合、最終決定が最後のいくつかの値によって決定されることです($\ldots,x_{n-1},x_n$)および最も初期の値($x_1,x_2,\ldots$)「忘れられて」おり、最終決定に影響を与えません。これは多くの設定で望ましくありません。

あなたの測定基準は、これを感じ取るための合理的な方法の1つです。別の合理的な方法は、入力をフィードすることかもしれません$x=(x_1,x_2,\dots,x_n)$、次に変更するだけ $x_1$ 新しい入力を取得するには $x'=(x'_1,x_2,\dots,x_n)$、 フィードイン $x'$、およびRNNの出力を比較します $x$ vs $x'$; 多くのトレーニングサンプルまたはテストサンプルに対して繰り返します$x$