LSTM ネットワークの背後にある高レベルの直観について説明したいと思います。

  • なぜ/いつ、フィードフォワードニューラルネットワーク(FFNN)ではなくLSTMを使うのか?
  • LSTMの利点と欠点、FFNNと比較してどうなのかを教えてください。
  • 従来のリカレントニューラルネットワーク(RNN)とどう違うのですか?

Feed Forward Neural Networks (FFNN)

まず、アーキテクチャ:データ科学のイメージで標準のFFNNを考えてみよう。 *Counting No. No. of Parameters in Deep Learning Models by Hand*

ご存知のように、この FFNN は 3 つの入力を受け取り、隠れ層を使ってそれらを処理し、2 つの出力を生成します。 このアーキテクチャを拡張して隠れ層を増やすことはできますが、基本的なコンセプトは変わりません。入力が来て、一方向に処理され、最後に出力されます。

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

FFNN と再帰アーキテクチャを分ける主な条件は、ニューロンへの入力はそのニューロンの前の層から来る必要があるということです。 主な違いは、FFNN に課された制限がもはや適用されないことです。

ニューロンへの入力は、他のどの層からでも可能です。

A survey on the application of recurrent neural networks to statistical language modeling

このアーキテクチャがしばしば、次のような再帰ユニットに「ロール」されているのを目にすることができます。 リカレント ニューラル ネットワークについて知っておくべきすべてのこと

したがって、アーキテクチャ図にある「ロール」ユニットは、見かけによらず小さいものであることがあります。 それらを展開すると、ネットワークはしばしば非常に深くなります!

RNN Wikipedia

Long-Short Term Memory (LSTM)

LSTM は、消失/爆発勾配問題に対処するために設計された特殊なタイプの RNN です。

従来の RNN をトレーニングすると、ネットワークはしばしば消失/爆発勾配に悩まされます。 従来のRNNアーキテクチャを使用してバックプロパゲーションアルゴリズムを実行すると、ネットワークを伝搬するにつれて、初期の層の重要性が低くなっていきます。 このため、従来の RNN は、情報、特に現在の時刻より何タイムステップも前に現れたデータを忘れる傾向があります。

LSTM セルの例を以下に示します。 これらのゲートの機能は、その名前からよくわかります。

  • 入力ゲートは、セルに入るデータを制御する
  • 忘れゲートは、データがセル内にとどまる範囲を制御する
  • 出力ゲートは、活性化関数を通じてセルの出力を制御する

このgithub IO投稿がLSTMの基本について素晴らしい紹介をしてくれています。 また、LSTM の数学の背後にある直感を説明する素晴らしい仕事です。

LSTM Wikipedia

Properties and an Example Use Case of RNN

The feedback loop lend recurrent neural networks better to temporal challenges. 時間はそのアーキテクチャに織り込まれています!

例を見てみましょう。 入力が与えられたとします:

Starving, Alice drives to the nearest store to buy

A Recurrent neural network may forget the first word “starving” while an LSTM would ideal propagate it. したがって、LSTM は文中で以前に聞いた文脈を使用して「食べ物」を推測しますが、RNN は、特に長い文や複数の文があると、店で買われるものなら何でも推測するかもしれません。

この種の記憶を可能にするゲート機構は、@StatsSorceress がここでうまく説明しています。 RNN (Recurrent Neural Network) における忘却層 –

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

LSTM は、重要な情報を時間の経過とともに持続させるように設計されています。 RNNは、時間とともにしばしば「忘れる」。

FFNN はメモリレスシステムであり、ある入力を処理した後、その入力に関するすべてのことを忘れてしまう。 例えば、5つの単語を入力とし、次の出力を予測するFFNNを学習させるとする。 このモデルは、上記の例から、

The nearest store to buy .

これは明らかに文脈を失っており、悪い結果を得るだろう。

さて、「飢餓」という単語を入力に含むように、多くの入力を取る FFNN を作ったらどうなるだろうか。 言い換えれば、事前データを十分に表現するために、FFNN への入力数を増やすことはできないでしょうか。

答えはイエスですが、この方法は非効率であり、しばしば非実用的です。 たとえば、段落全体を遡って文脈を記憶する必要があるとします。 その場合、非常に大きな FFNN が必要になります。 さらに、文脈として何語戻したいかをどうやって知るのだろうか? 20語で十分だろうか? 30? 100? LSTMアーキテクチャは、ネットワークに一時的なメモリを管理させることで、これらの問題を完全に排除している。 しかし、LSTM ユニットは FFNN のユニットよりも本質的に計算が複雑であるため、学習はより難しく、より時間がかかることが多いことに注意してください。 これらの欠点にもかかわらず、時間データの課題での成功は、明らかにFFNNよりもLSTMの使用を保証するものである。

Articles

コメントを残す

メールアドレスが公開されることはありません。