フィードフォワードニューラルネットワークおよび LSTM ?アーキテクチャはどのように異なりますか?

回答

フィードフォワードニューラルネットワークは次のようになります:

入力->隠れ層1->隠れ層2-> …->隠れ層k->出力。

各層はニューロンの数が異なる場合がありますが、それがアーキテクチャです。 。

LSTM(長短期記憶セル)は、ニューラルネットワーク内の特殊な種類のノードです。フィードフォワードニューラルネットワークに挿入でき、通常は。その場合、フィードフォワードニューラルネットワークはLSTMと呼ばれます(紛らわしいです!)。

では、LSTMはどのように機能しますか?ここで私の答えを見てください:リカレントニューラルネットワーク(RNN)のレイヤーを忘れる-

tl; dr:LSTMセルには3つのゲートがあり、それぞれが何らかの方法で入力を変調するために使用されます。入力ゲート、忘却ゲート、出力ゲート。「メモリ」と、ゲートによって変更される出力があります。つまり、単一のLSTMセル内にあります。

(input 前のセルの状態)->(入力&ゲートを忘れる)->(セルの状態を更新)

(入力&前のセルの状態&更新されたセルの状態)->(出力ゲート)

これらのセルはさまざまな構成でスタックできます。したがって、単一の「LSTMネットワーク」はありません。むしろ、これらの基本ノードから構築できる多くの可能なアーキテクチャのセットです。

開始することを願っています!

コメント

  • ご回答ありがとうございますが、アーキテクチャの理解を深めるために画像を追加していただけますか
  • フィードフォワードネットワークでの逆伝播についてはどうですか?フィードフォワードネットワーク
  • こんにちは@codezcar、私がリンクした私の回答にはLSTMの画像があります。フィードフォワードニューラルネットワークの場合、画像は次のとおりです: medium.com/random-techpark/ … はい。バックプロパゲーションを使用して、あらゆるタイプのニューラルネットワーク(フィードフォワード、LSTM、GRU、…何でも!)で最適な重みを見つけることができます。

回答

Philippが述べたように、フィードバックループを備えたネットワークは、データの時間をモデル化するのに役立ちます。

さまざまなNNアーキテクチャの概要については、次を参照してください: https://i.stack.imgur.com/LgmYv.png

回答

フィードフォワードネットワークは、すべてのノードが次のレイヤーのノードのみに接続されているネットワークです。それらには「円」接続がありません。データはループなしで入力から出力にのみ移動できます。例としては、単純層パーセプトロンや多層パーセプトロンがあります。畳み込みニューラルネットワークも純粋にフィードフォワードネットワークです

これらはリカレントニューラルネットワークです。LSTMはその1つです。これらのRNNは「横向き」に接続することもできます。つまり、データは次のレイヤーに進むだけでなく、同じレイヤー内の他のノードにも逆方向に移動できます。アーキテクチャからつまり、隠れ層が1つしかないネットワークでも、その層のノードにループを追加することで「深さ」が得られます。通常、これらはデータの「時間」を表します。

この画像はフィードバックループによる「深さ」の意味: https://en.wikipedia.org/wiki/Recurrent_neural_network#/media/File:Recurrent_neural_network_unfold.svg

技術的には1つですが、レイヤーアーキテクチャのノードでは、追加するループが増えるほど、ノードが深くなります

回答

LSTMネットワークの背後にあるいくつかの高レベルの直感について説明したいと思います。 なぜの側面を探求するのに役立ついくつかの質問があります:

  • フィードフォワードニューラルネットワーク(FFNN)を介してLSTMを使用する理由/時期
  • LSTMの長所と短所は何ですか?また、FFNNとどのように比較されますか?
  • 従来のリカレントニューラルネットワーク(RNN)とどのように異なりますか?

フィードフォワードニューラルネットワーク(FFNN)

まず、アーキテクチャを備えた標準FFNNについて考えてみましょう: データサイエンスイメージに向けて:*手作業による深層学習モデルのパラメーター数のカウント*

ご存知かもしれませんが、このFFNNは3つの入力を受け取り、隠れ層を使用してそれらを処理し、2つの出力を生成します。このアーキテクチャを拡張して、より多くの非表示レイヤーを組み込むことができますが、基本的な概念は引き続き有効です。入力は入力され、一方向に処理され、最後に出力されます。

この概念は非常によく説明されています。他の記事によるので、これ以上詳しくは説明しません。重要なポイントは次のとおりです。

FFNNをリカレントアーキテクチャから分離する主な条件は、ニューロンへの入力がそのニューロンの前の層からのものでなければならないことです。

FFNNウィキペディア

リカレントニューラルネットワーク(RNN)

リカレントニューラルネットワークは、数学的にはFFNNモデルと非常によく似ています。主な違いは、FFNNに課せられた制限が適用されなくなったことです。

ニューロンへの入力は他のレイヤーから取得できます。

リカレントニューラルネットワークの統計的言語モデリングへの適用に関する調査

このアーキテクチャは、次のようなリカレントユニットに「ロール」されることがよくあります。

中程度の記事:リカレントニューラルネットワークについて知っておくべきことすべて

したがって、アーキテクチャ図に表示される可能性のある「ロール」ユニットは次のようになります。一見小さい。それらを展開すると、ネットワークは非常に深くなることがよくあります!

RNN Wikipedia

長期記憶(LSTM)

LSTMは、勾配消失/爆発問題に取り組むように設計された特殊なタイプのRNNです。

従来のRNNをトレーニングする場合、ネットワークは勾配消失/爆発に悩まされることがよくあります。リカレントユニットを展開すると、ネットワークが非常に深くなります。従来のRNNアーキテクチャを使用してバックプロパゲーションアルゴリズムを実行する場合、ネットワークを介して伝播するにつれて、以前のレイヤーの重要性はますます低くなります。これにより、従来のRNNは情報、特に現在の時刻よりも多くのタイムステップ前に表示されるデータを忘れがちになります。

LSTMセルの例を次のように示します。

LSTMセルアーキテクチャ

この構造は従来のRNN展開ユニットに似ていますが、LSTMとの主な違いがありますゲートは、入力ゲート、出力ゲート、および忘却ゲートです。これらのゲートの機能は、名前で詳しく説明されています。

  • 入力ゲートはセルに入るデータ
  • ゲートを忘れるはデータがセル内にとどまる範囲を制御します
  • li>

  • 出力ゲートは、アクティブ化関数を介してセルの出力を制御します

このgithubIO投稿は、LSTMの基本についての優れた入門書です。 LSTMの数学の背後にある直感を説明する素晴らしい仕事もします。

LSTMウィキペディア

プロパティとRNNの使用例の例

フィードバックループは、リカレントニューラルネットワークを時間的課題に適したものにします。時間はアーキテクチャに考慮されます!

例を見てみましょう:

おそらく、ネットワークを使用して文の次の単語を予測しています。入力が与えられたとしましょう:

飢えている、アリスは最寄りの店に車で行き、[予測]を購入します

リカレントニューラルネットワークは最初の単語を忘れる可能性があります「飢餓」であるのに対し、LSTMは理想的にはそれを伝播します。したがって、LSTMは以前に文で聞いたコンテキストを使用して「食品」を推測しますが、RNNは、特に長い文または複数の文が与えられた場合に、店舗で購入されたものを推測する可能性があります。

ゲーティングメカニズムこのタイプのメモリを可能にすることは、@ StatsSorceressによってここでよく説明されています:リカレントニューラルネットワーク(RNN)のレイヤーを忘れる-

RNNはシーケンスを処理するように設計されています。これは、ビデオ(画像のシーケンス)、書き込み/スピーチ(単語のシーケンス)の分析に使用できます。など。

LSTMは、重要な情報を長期間保持できるように設計されています。 RNNは時間の経過とともに「忘れる」ことがよくあります。

FFNNはメモリレスシステムです。一部の入力を処理した後、その入力に関するすべてを忘れます。たとえば、入力として5ワードを受け取り、次の出力を予測するFFNNをトレーニングするとします。このモデルは、上記の例から入力を受け取ります。

[予測]を購入する最寄りの店舗

これは明らかにコンテキストを失っています。

ここで、入力に「飢えている」という単語が含まれるように多くの入力を受け取るFFNNを作成した場合はどうなるでしょうか?言い換えれば、FFNNへの入力数を増やして、以前のデータを十分に表すことができないでしょうか。

答えはイエスですが、この方法は非効率的であり、多くの場合非現実的です。 たとえば、段落全体のコンテキストを覚えておく必要があるとします。 非常に大きなFFNNが必要になります! さらに、コンテキストとして必要な単語数をどのようにして知ることができますか? 20で十分でしょうか? 30? 100? LSTMアーキテクチャは、ネットワークに一時メモリを管理させることにより、これらの問題を完全に排除します。 各フレームはNLPタスクよりも大幅に多くの入力を必要とするため、この問題はビデオ処理の課題によって悪化します。

ただし、LSTMユニットはFFNNのユニットよりも本質的に計算が複雑であるため、トレーニングが必要になることがよくあります。 より難しく、より多くの時間がかかります。 これらの不利な点にもかかわらず、一時的なデータの課題での成功は、FFNNでの使用を明らかに保証します。

コメントを残す

メールアドレスが公開されることはありません。 * が付いている欄は必須項目です