RNN / LSTMネットワークの重みが時間を超えて共有されるのはなぜですか?


20

私は最近LSTMに興味を持ち始めましたが、その重みが時を越えて共有されていることを知って驚きました。

  • 時間にわたって重みを共有する場合、入力時間シーケンスは可変長になる可能性があることを知っています。

  • 共有ウェイトを使用すると、トレーニングするパラメーターがはるかに少なくなります。

私の理解から、LSTMと他の学習方法を比較する理由は、学習したいデータにある種の時間的/シーケンシャルな構造/依存性があると信じているためです。可変長の「豪華」を犠牲にして、長い計算時間を受け入れると、共有ウェイトのないRNN / LSTM(つまり、異なるウェイトを持つタイムステップごとに)のパフォーマンスが向上しませんか?

回答:


17

受け入れられた答えは、質問の実際的な側面に焦点を当てています。パラメータが共有されていない場合、多くのリソースが必要になります。しかし、RNNにおけるシェアパラメータの決定がなされている任意の深刻な計算が問題だった(に従って1980をウィキので、私はそれがメインの引数(まだ有効が)なかったと信じて、)。

パラメータ共有には、純粋な理論的理由があります。

  • さまざまな長さの例にモデルを適用するのに役立ちます。シーケンスの読み取り中に、RNNモデルがトレーニング中に各ステップで異なるパラメーターを使用する場合、異なる長さの見えないシーケンスに一般化されません。

  • 多くの場合、シーケンスは、シーケンス全体で同じルールに従って動作します。たとえば、NLPの場合:

                                                     「月曜日は雪が降っていた」

                                                     「月曜日は雪が降っていた」

...これらの2つの文は同じことを意味しますが、詳細はシーケンスの異なる部分にあります。パラメーターの共有は、各ステップで同じタスクを実行しているという事実を反映しているため、結果として、文の各ポイントでルールを再学習する必要はありません。

LSTMはこの意味で違いはないため、共有パラメーターも使用します。


4
これは、受け入れられた答えよりもはるかに重要な理由です!
jlh

ここで私の答えが誤って特徴付けられていると思います。重みを共有しないと、より多くの計算リソースが必要になると言いましたが、これは主な目的ではありませんでした。特に、重みが共有されていないモデルの方がはるかに柔軟性があり、したがってオーバーフィットしやすいと書いています。時間の経過とともに重みを共有することは、これを克服する方法です。ここで正しく指摘されているように、この戦略は、各タイムステップで同じルールが適用される「事前」に対応しています。したがって、2つの答えは不一致ではありません。
user20160

12

「重みの共有」の観点は、RNNを時間をかけて展開されたフィードフォワードネットワークとして考えることから生まれます。時間ごとに重みが異なる場合、これは単にフィードフォワードネットワークになります。しかし、それを考える別の方法は、重みが時変関数である(そして、可変長シーケンスを処理する能力を維持できるようにする)RNNになると思います。

これを行うと、パラメーターの数はタイムステップの数に比例して増加します。それは、かなりの長さのシーケンスのパラメーターの大きな爆発です。もしあなたがそれを実行するための巨大な計算リソースとそれを制約するための大規模なデータを持っていれば、それは確かにネットワークをより強力にするでしょう。長いシーケンスの場合、おそらく計算上実行不可能であり、過剰適合になります。実際、人々は通常、切り捨てられた逆伝搬を時間をかけて実行することで反対方向に進みます。これは、シーケンス全体ではなく、短時間だけネットワークを展開します。これは、計算の実行可能性のために行われます。興味深いことに、RNNは、切り捨ての長さを超える時間構造を学習できます。これは、反復ユニットが以前からメモリを格納できるためです。


重みを共有しない場合でも、セルの状態は時間とともに持続します。一意の時間重みを持つ展開されたLSTMは、各「レイヤー」がタイムスライスを表すフィードフォワードネットのように見えますが、各「レイヤー」には着信セル状態情報があります。フィードフォワードに似ていますが、セル状態が追加されています。
beeCwright

0

非表示から非表示の繰り返し(および時分割ウェイト)を使用したRNNはユニバーサルチューリングマシンと同等であるため、タイムステップごとに異なるウェイトを設定しても、それらはより強力にはなりません。


「パワフル」とはどういう意味ですか?チューリングマシンへの言及は、あなたが念頭に置いていることは、統計の意味とは完全に異なるかもしれないことを示唆しています。
whuber

RNNは、データのシーケンスを処理するために使用されます。最も一般的なタイプの1つは、シーケンスを入力として取得し、別のシーケンスを出力として生成します(言語翻訳システムなど)。RNNモデルファミリーM1は別のRNNモデルファミリーM2よりも強力であると言います(問題(入力シーケンスのセットを出力シーケンスのセットにマッピングするなど)の場合、M1にこの問題を解決できるモデルm1がある場合)しかし、M2にはその問題を解決できるモデルはありません。
ホセイン
弊社のサイトを使用することにより、あなたは弊社のクッキーポリシーおよびプライバシーポリシーを読み、理解したものとみなされます。
Licensed under cc by-sa 3.0 with attribution required.