LSTMセル、ユニット、入力に関する質問


9

LSTMネットワークがどのように機能するかを学習しようとしています。基本を理解しても、内部構造の詳細はわかりません。

このブログリンクで、私はこのLSTMアーキテクチャのスキームを見つけました

LSTM

明らかに、すべての円はLSTMこのような個々のユニットに対応している必要があります

LSTM

  1. これは正しいです?

  2. セル内の各ユニットは他のユニットから独立していますか?または、彼らは情報を共有しますか?

  3. 次の構成があるとします。サンプル数= 1000時間ステップ数= 10特徴数= 5

この場合、セルの各ユニットは、サイズ5のベクトルを入力として受け取りますか?

しかし、1つのユニットの出力のサイズはどうなるでしょうか。1?

ありがとう


1
この小さな部分を読んでください:colah.github.io/posts/2015-08-Understanding-LSTMs必要に応じて何度も繰り返します。3回確認すると、何かを学びます。
Eran Moshe

回答:


1

画像のラベルが間違っていると思います。それぞれの青いボックスは、それぞれがベクトル入力x_tを受け入れる複数のセル/ユニットで構成されるLSTMレイヤーであると思います。

それで、あなたの質問に対する答えは次のとおりです:

1)はい

2)はい、独立しています(単一のタイムステップで-タイムステップ間で互いに情報を共有します)

3)はい、各単位セルは、私はサイズ5の入力を取ると思う出力サイズを組み合わせ、次いで活性化シグモイドユニットのようなニューラルネットワークノード()と同様、常に1です。


各LSTMユニットは基本的に通常のニューロンと同様に機能するため、出力サイズ常に1であることを確認します。この単一の値を複数のニューロンに分配するのは次のレイヤー次第です
Kari

「LSTM層」は「LSTMセル」AFAIKとも呼ばれます。ほとんどのフレームワークにLSTMセルを追加すると、レイヤーサイズを指定できます。したがって、ラベル付けはその慣習に従っているように見えます。
Neil Slater

1

実際の形状は簡略化のためです。正しい動作を知りたい場合は、各LSTMセルの数式を確認する必要があります。最初の質問に答えるために、異なる答えがあるかもしれません。画像が描いているのは多対多のタスクに属し、各入力に対して正確に1つの出力が必要です。定義できるシーケンスにはさまざまなタスクがあります。

  • 一対一
  • 1対多
  • 多対一
  • 多対多

あなたは見てみることができ、ここで

LSTMセルの数式を説明するために、深層学習に関するAndrew Ng教授のコースから次の画像を提供しました。

ここに画像の説明を入力してください

ご覧のように、LSTMセル内の各ノードは、前のタイムステップの隣接セルの出力に間接的に接続できます。それらの間にゲートがあるので、それは間接的です。また、LSTMセルが異なるタイムステップのすべての入力の重みを共有していることも考慮してください。その結果、LSTMセル内の各ニューロンは、現在の時間ステップの入力と前の時間ステップの隣接ノードの出力に依存します。

3番目の質問については、入力サイズは各タイムステップの入力の特徴の数と等しくなります。出力の数は、最初に参照したように、タスクによって異なります。最初のリンクを見てください。


1
  1. これは正しいです?

はい、図はどちらも正しいように見えます。両方の図を理解するための重要なことは、LSTMセルの入力と出力がベクトルであることです。

最初の図の円は、層に複数の個別の人工ニューロンが含まれているという概念を表しています。そのため、2番目の図はそれらのニューロンの1つの画像であると想定することができます。フォームの計算には複数の場所があるため、セル内には異なる役割を持つ複数の「ニューロン」またはサブレイヤーがおそらくありますf(Wx+b)少し異なる役割を果たします。「細胞」という用語は、このニューロンの構造を指すために使用されていると思います。私は「ニューロン」と言うときの省略形として、隠れ層の出力段階を思いがちです。

ただし、2番目の図では、示されているすべての演算がベクトルで機能します。最も重要なのは、2番目の図の左から右への矢印は、レイヤー全体のタイムステップからタイムステップへの隠れた状態のベクトルを表します。したがって、セル内の各ニューロンは、そのセル内の他のすべてのニューロンに繰り返し接続されます。これは、LSTMの場合の2倍です。これは、LSTMが内部セル状態と層出力の両方を持っているためです。

  1. セル内の各ユニットは他のユニットから独立していますか?または、彼らは情報を共有しますか?

図の説明と一致させるために、「ユニット」を、セルを構成するために使用される各タイプのニューロン/ゲートの1つのコレクションとして定義します。理論的には、相互に配線して単一のLSTMセルレイヤーを作成できますスカラーセルの状態と出力値。

これらの単位、それぞれに独自の重みパラメータがあるという点で独立しています。入力とユニット間の接続、または状態をあるタイムステップから次のタイムステップに転送する再帰的接続には、共有パラメーターはありません。その意味で、ユニットは情報を共有しません。

ただし、接続は、各タイムステップで、セル内の他のすべてのユニットからの入力データと非表示状態と最後の出力からの出力が結合されて計算に使用されることを意味します。すべてのセルユニットは、新しい内部状態とその出力を、他のすべての出力の値とセル内の他のユニットからの内部状態に基づくことができます。この意味で、ユニットは情報を共有します。2つ目の図では単一のニューロンの配線図を考えることができるので、おそらくこの2つ目の問題が懸念されるのはあなたの質問からだと思いますが、上で説明したようにそうではありません。

  1. 次の構成があるとします。サンプル数= 1000タイムステップ数= 10フィーチャ数= 5この場合、セル内の各ユニットは、サイズ5のベクトルを入力として受け取りますか?

ほとんど。セル内の各ニューロンは5の入力を受け取りますx、および非表示レイヤー出力の入力、 h。したがって、LSTMセルサイズが10の場合、各ニューロンは15の結合ベクトルを取ります。さらに、2番目のセル状態ベクトルが維持され、図ではラベル付けされません。これは、ニューロンへの入力として直接使用されません(つまり、フォームのコンポーネント)f(Wx+b))、ただし他の値と相互作用し、さまざまなゲートを介してそれ自体を変更することができます。2番目の図では、左から右に行く一番上の矢印です。

しかし、1つのユニットの出力のサイズはどうなるでしょうか。1?

セル全体として、レイヤーを作成したサイズの出力が得られます。それは、図表番号2が示すことです。ただし、「ユニット」の実際の定義を使用すると、各ユニットの出力は、2つのスカラー値(非表示レイヤーの出力とセルの状態)になり、図に示すそれぞれのベクトルの一部になります。

弊社のサイトを使用することにより、あなたは弊社のクッキーポリシーおよびプライバシーポリシーを読み、理解したものとみなされます。
Licensed under cc by-sa 3.0 with attribution required.