LSTM (長・短期記憶)

LSTM とは?

LSTM (Long Short-Term Memory: 長・短期記憶)ネットワークは、RNN(再帰型 ニューラル ネットワーク) の一種です。

LSTM の強みは、時系列データの学習や予測(回帰・分類)にあります。一般的な応用分野としては感情分析、言語モデリング、音声認識、動画解析などがあります。

LSTM のアプリケーションおよび例

以下の例では、MATLAB® Deep Learning Toolbox™ を使用して、特定のアプリケーションにLSTMを適用しています。初心者の方は、次の簡単な例で LSTM ネットワークを使い始めることができます。LSTM を使用した時系列予測。

レーダーターゲットの分類

MATLABの長・短期記憶(LSTM)再帰型ニューラルネットワークを使用して、レーダーリターンを分類します。

キーワードスポッティング

ユーザーが特定のキーワードを話したときに、システムを起動します。

テキスト生成

ディープラーニング LSTM ネットワークの学習を行い、単語単位のテキストを生成します。

ECG 信号の分類

人の心臓の電気的活動を記録したECG 信号を、正常または 心房細動として分類します。

配水システムのスケジューリング

強化学習を使用して、配水システムに最適なポンプスケジューリングポリシーを生成します。

ビデオ分類

事前学習済みの画像分類モデルと LSTM ネットワークを組み合わせて、ビデオを分類します。

RNNとLSTMの技術的な特徴

RNN を訓練する最も一般的な方法は、通時的誤差逆伝播法(BBTT)です。しかしながら、その勾配消失問題により長期的な情報は損なわれ、ネットワークのパラメータは短期的な依存関係を学習してしまいます。 また、これとは逆の勾配爆発が発生することもあり、この場合は誤差がタイムステップ毎に大幅に増大します。

レーダーターゲット分類

MATLAB の長・短期記憶 (LSTM) リカレント ニューラル ネットワークを使用してレーダー反射を分類します。

キーワード スポッティング

ユーザーが事前定義されたキーワードを話したときにシステムを起動します。

テキスト生成

ディープラーニング LSTM ネットワークの学習を行い、単語単位でテキストを生成します。

再起型 ニューラル ネットワーク

再起型 ニューラル ネットワーク

LSTMネットワークは、ゲートを用いて、関連する情報を選択的に保持し、関連しない情報を忘却することで、勾配消失問題(バニシング・グラジエント)の問題を解決します。時間差に対する感度が低いため、LSTMネットワークは単純なRNNよりも時系列データの解析に適しています。

以下がLSTMブロックのアーキテクチャです。一般的なLSTMブロックは、従来のRNNにおける隠れ状態に加え、メモリセル、入力ゲート、出力ゲート、忘却ゲートを有しています。

LSTMブロック

LSTMブロック

入力ゲートへの重みとバイアスは、新しい値のセルへの流入量を制御します。同様に、忘却ゲートと出力ゲートに対する重みとバイアスは、それぞれセル内にどの程度値が保持されるかと、そのセル内の値がどの程度LSTMブロックの出力の活性化状態を計算するために用いられるかを制御します。

LSTMネットワークの詳細については、「Deep Learning Toolbox™」を参照してください。

参考: MATLAB for deep learning, machine learning, MATLAB for data science, GPU computing, artificial intelligence