本記事では、古典的なLSTMモデル、スタンダードなLSTMモデルの原理について説明します。
参考文献:A Review of Recurrent Neural Networks: LSTM Cells and Network Architecturesまず、(スタンダードな)LSTMの概要から説明します。LSTM(Long Short-Term Memory)は、ニューラルネットワークの一種で、主に時系列データや自然言語処理のタスクに適しています。LSTMは、勾配消失の問題に対処するために設計されたリカレントニューラルネットワーク(RNN)の一種です。
リカレントニューラルネットワーク(RNN)の問題点:RNNは時系列データに対して有効ですが、長期的な依存関係を学習するのが難しいという問題があります。これは、勾配消失や勾配爆発の問題が発生しやすいためです。長い時系列データでは、RNNが適切に学習できないことがあります。
(スタンダードな)LSTMの特徴:
LSTMは、RNNのこの問題を解決するために提案されました。LSTMは、セル状態(cell state)とゲートと呼ばれる機構を導入することで、長期的な依存関係の学習が可能になります。
セル状態:
LSTMはセル状態を持ち、情報を記憶する機能があります。セル状態は、情報の追加や削除が可能で、長期的な依存関係を保持するのに寄与します。
ゲート:
LSTMは、3つのゲートを使用して情報の流れをコントロールします。
入力ゲート(Input Gate): 新しい情報をセル状態にどれだけ追加するかを制御します。
忘却ゲート(Forget Gate): セル状態からどれだけの情報を忘れるかを制御します。
出力ゲート(Output Gate): セル状態から次の隠れ層の状態をどれだけ取り出すかを制御します。
古典的なLSTMモデル
古典的なLSTMモデルとは、忘却ゲートを持たないLSTMのアーキテクチャです。このLSTMの構造は、入力ゲートと出力ゲートのみを持ちます。
ここで、i_tは入力ゲート、o_tは出力ゲート、c_tはセルの状態、˜c_tは候補のセルの状態を表します。また、W_ih、W_ix、W_oh、Wox、W_˜ch、W_˜cxは重み行列、b_i、b_o、b_˜cはバイアスベクトルを表します。σはシグモイド関数、tanhはハイパボリックタンジェント関数を表します。
第一式は、入力ゲートがどの程度開くかを決定します。第二式は、候補のセルの状態を計算します。第三式は、前のセルの状態と候補のセルの状態を組み合わせて、新しいセルの状態を計算します。第四式は、出力ゲートがどの程度開くかを決定します。第五式は、新しいセルの状態を元に、出力を計算します。
このLSTMは、忘却ゲートを持たないため、セルの状態が常に更新されます。そのため、長期的な依存関係を扱うことができません。しかし、このLSTMは、シンプルで計算量が少なく、短期的な依存関係を扱うのに適しています。
スタンダードなLSTMモデル
古典的なLSTMモデルに、忘却ゲートを追加したLSTMモデル(=スタンダードなモデル)の構造について触れます。
ここで、f_tは忘却ゲート、i_tは入力ゲート、o_tは出力ゲート、c_tはセルの状態、˜c_tは候補のセルの状態を表します。また、W_ih、W_ix、W_oh、W_ox、W_˜ch、W_˜cx、W_f h、W_f xは重み行列、b_i、b_o、b_˜c、b_fはバイアスベクトルを表します。σはシグモイド関数、tanhはハイパボリックタンジェント関数を表します。
第一式は、忘却ゲートがどの程度開くかを決定します。第二式は、入力ゲートがどの程度開くかを決定します。第三式は、候補のセルの状態を計算します。第4式は、前のセルの状態と候補のセルの状態を組み合わせて、新しいセルの状態を計算します。第五式は、出力ゲートがどの程度開くかを決定します。第六式は、新しいセルの状態を元に、出力を計算します。
このLSTMは、忘却ゲートを持つため、セルの状態を更新する際に、不要な情報を削除することができます。そのため、長期的な依存関係を扱うことができます。このLSTMは、自然言語処理や音声認識などのタスクに広く使用されています。
(本研究で使用するLSTMモデルもこのモデルで実装します。)