7

まず、そのタイトルに 3 つの質問を詰め込んでしまったことをお詫びします。より良い方法があるかどうかはわかりません。

すぐに始めます。フィードフォワード ニューラル ネットワークについては、かなりよく理解していると思います。

しかし、LSTM は本当に私を逃れます。おそらくこれは、Recurrent ニューラル ネットワーク全般についてよく理解していないためだと思います。私はCourseraでHintonとAndrew Ngのコースを受講しました. それの多くはまだ私には意味がありません。

私が理解したところでは、リカレント ニューラル ネットワークはフィードフォワード ニューラル ネットワークとは異なり、過去の値が次の予測に影響を与えます。再帰型ニューラル ネットワークは、一般的にシーケンスに使用されます。

私が見たリカレント ニューラル ネットワークの例は、バイナリ加算でした。

    010
+   011

再帰型ニューラル ネットワークは、最初に最も右の 0 と 1 を取得し、1 を出力します。次に 1,1 を取得し、0 を出力し、1 を繰り上げます。次の 0,0 を取り、1 を繰り上げたので 1 を出力します。最後の計算から。この 1 はどこに保存されますか? フィード フォワード ネットワークでは、結果は基本的に次のようになります。

    y = a(w*x + b)
where w = weights of connections to previous layer
and x = activation values of previous layer or inputs

再帰型ニューラル ネットワークはどのように計算されますか? 私はおそらく間違っていますが、私が理解したことから、再帰型ニューラル ネットワークは、T 隠れ層 (T はタイムステップ数) を持つフィードフォワード ニューラル ネットワークです。そして、各隠れ層はタイムステップ T で X 入力を受け取り、その出力は次のそれぞれの隠れ層の入力に追加されます。

    a(l) = a(w*x + b + pa)
where l = current timestep
and x = value at current timestep
and w = weights of connections to input layer
and pa = past activation values of hidden layer 
    such that neuron i in layer l uses the output value of neuron i in layer l-1

    y = o(w*a(l-1) + b)
where w = weights of connections to last hidden layer

しかし、これを正しく理解していたとしても、過去の値を通常のフィードフォワード ネットワーク (スライディング ウィンドウなど) への入力として単純に使用することよりも、これを行う利点はわかりません。

たとえば、2 つの出力ニューロンを使用してフィードフォワード ネットワークをトレーニングする代わりに、バイナリ加算にリカレント ニューラル ネットワークを使用する利点は何ですか。1 つはバイナリ結果用で、もう 1 つはキャリー用ですか? 次に、キャリー出力を取り、フィードフォワード ネットワークに接続します。

ただし、フィードフォワード モデルの入力として単に過去の値を使用することと、これがどのように異なるのかはわかりません。

タイムステップが多いほど、勾配が消失するため、再帰型ニューラル ネットワークはフィードフォワード ネットワークよりも不利になるだけのように思えます。私が理解したところでは、LSTM は勾配消失の問題に対する解決策です。しかし、私はそれらがどのように機能するかを実際に把握していません。さらに、単純に再帰型ニューラル ネットワークよりも優れているのでしょうか、それとも LSTM を使用すると犠牲になりますか?

4

3 に答える 3

9

リカレント ニューラル ネットワークとは

基本的な考え方は、再帰型ネットワークにはループがあるということです。これらのループにより、ネットワークはメモリとして機能する前のパスからの情報を使用できます。この記憶の長さは多くの要因に依存しますが、不確定ではないことに注意することが重要です。メモリは劣化していると考えることができ、古い情報はますます使い物にならなくなります。

たとえば、ネットワークに 1 つのことをさせたいだけだとしましょう: 前の入力が 1 か 0 かを記憶します。ループ内で 1 を継続的に渡すだけのネットワークを想像することは難しくありません。ただし、0 を送信するたびに、ループに入る出力は少し低くなります (これは単純化されたものですが、アイデアを示しています)。いくつかのパスの後、ループ入力は任意に低くなり、ネットワークの出力は 0 になります。ご存知のように、勾配消失問題は本質的に同じですが、逆です。

時間入力のウィンドウを使用しないのはなぜですか?

代替手段を提供します。現在の入力として提供されている過去の入力のスライディング ウィンドウ。これは悪い考えではありませんが、次のことを考慮してください。RNN は時間の経過とともに侵食されている可能性がありますが、ウィンドウが終了すると、時間情報全体が常に失われます。また、勾配消失問題を取り除く一方で、ネットワークの重みの数を数倍に増やす必要があります。これらすべての追加の重みをトレーニングしなければならないことは、勾配の消失と同じくらい (それ以上ではないにしても) 悪影響を及ぼします。

LSTM ネットワークとは

LSTM は特別なタイプの RNN と考えることができます。違いは、LSTM は劣化することなく、自己接続ループをアクティブに維持できることです。これは、自己ループ接続用の追加の「メモリ」出力を含む、やや派手なアクティベーションによって実現されます。次に、ネットワークをトレーニングして、このバスに入れるデータを選択する必要があります。何を記憶するかを明示的に選択するようにネットワークをトレーニングすることで、新しい入力によって重要な情報が破壊されることを心配する必要がなくなり、保持することにした情報に勾配の消失が影響しなくなります。

2 つの主な欠点があります。

  1. ネットワーク出力を計算して逆伝播を適用すると、よりコストがかかります。アクティベーションが複雑なため、計算が増えるだけです。ただし、これは 2 番目のポイントほど重要ではありません。
  2. 明示的メモリは、さらにいくつかの重みを各ノードに追加します。これらすべてをトレーニングする必要があります。これにより、問題の次元が増加し、最適解を見つけるのが難しくなる可能性があります。

それは常に良いですか?

どの構造が優れているかは、問題に必要なノードの数、利用可能なデータの量、ネットワークのメモリをどこまで遡りたいかなど、さまざまな要因によって異なります。ただし、理論的な答えだけが必要な場合は、無限のデータと計算速度を考えると、LSTM がより良い選択であると言えますが、これを実際的なアドバイスとして受け取るべきではありません。

于 2015-11-06T19:43:05.950 に答える
6

フィード フォワード ニューラル ネットワークには、層 n から層 n+1 への接続があります。

再帰型ニューラル ネットワークでは、レイヤー n からレイヤー n への接続も可能です。

これらのループにより、ネットワークは前のサイクルからのデータに対して計算を実行できるようになり、ネットワーク メモリが作成されます。このメモリの長さは多くの要因に依存し、活発な研究が行われている分野ですが、数十から数百の時間ステップになる可能性があります。

もう少し明確にするために、あなたの例で運ばれた 1 は、入力と同じ方法で、つまりニューラル層の活性化のパターンで保存されます。1 が時間の経過とともに存続できるようにするのは、反復的な (同じレイヤーの) 接続だけです。

過去の数ステップ以上のすべての入力ストリームを複製することは明らかに不可能であり、どの履歴ストリームが重要であるかを選択することは非常に困難です (そして柔軟性の低下につながります)。

LSTM は非常に異なるモデルであり、私は PBWM モデルとの比較によってのみよく知っていますが、そのレビューでは、LSTM はニューラル表現を無期限に積極的に維持することができたので、明示的なストレージをより意図していると思います。RNN は、ストレージではなく、非線形時系列学習に適しています。RNN ではなく LSTM を使用することに欠点があるかどうかはわかりません。

于 2014-07-31T23:08:09.257 に答える
3

RNN と LSTM の両方がシーケンス学習器になることができます。RNN には勾配点消失問題があります。この問題により、約 10 タイムステップを超えると、RNN は過去の入力の値を記憶できなくなります。(RNN は、以前に見た入力をいくつかの時間ステップのみ記憶できます)

LSTM は、RNN の勾配消失点問題を解決するように設計されています。LSTM には、入力間の長い時間差を埋める機能があります。言い換えれば、過去 1000 時間ステップまでの入力を記憶することができます (一部の論文では、これを超えることができると主張しています)。この機能により、LSTM は長い時間差のある長いシーケンスを学習する際に有利になります。Alex Graves Ph.D. を参照してください。詳細については、Recurrent Neural Networks を使用した教師付きシーケンスのラベル付けの論文を参照してください。LSTM を初めて使用する場合は、非常にシンプルで簡単な説明が記載されているColah のブログをお勧めします。

ただし、RNN の最近の進歩は、慎重な初期化により、RNN は LSTM のパフォーマンスに匹敵する長いシーケンスも学習できると主張しています。整流線形単位の再帰型ネットワークを初期化する簡単な方法

于 2014-10-20T07:05:24.540 に答える