Connect with us

AI 101

ディープラーニングにおけるRNNとLSTMとは?

mm

自然言語処理とAIチャットボットの最も印象的な進歩の多くは、再帰型ニューラルネットワーク(RNN)と長短期記憶(LSTM)ネットワークによって推進されています。RNNとLSTMは、時系列データを処理できる特殊なニューラルネットワークアーキテクチャです。LSTMは、基本的にRNNの改良版で、より長いデータシーケンスを解釈できる能力があります。RNNとLSTMの構造と、どのようにして高度な自然言語処理システムの作成を可能にするかを見てみましょう。

フィードフォワードニューラルネットワークとは?

LSTMと畳み込みニューラルネットワーク(CNN)がどのように機能するかについて話す前に、一般的なニューラルネットワークの形式について説明しましょう。
ニューラルネットワークは、データを分析し、関連するパターンを学習するように設計されています。そうして、パターンを他のデータに適用し、新しいデータを分類できるようにします。ニューラルネットワークは、3つのセクションに分かれています。入力層、隠し層(または複数の隠し層)、および出力層。
入力層は、データをニューラルネットワークに入力するものです。隠し層は、データのパターンを学習するものです。データセットの隠し層は、「重み」と「偏り」によって入力層と出力層に接続されています。これらは、データポイントが互いにどのように関連しているかについての仮定です。重みは、トレーニング中に調整されます。ネットワークがトレーニングを受けるにつれて、モデルのトレーニングデータ(出力値)についての推測は、実際のトレーニングラベルと比較されます。トレーニングの過程で、ネットワークは(希望通り)データポイント間の関係を予測する精度が向上し、新しいデータポイントを正確に分類できるようになります。深層ニューラルネットワークは、中間の層が多く、隠し層が多く、ノードが多くなるネットワークです。モデルの隠し層とノードが多くなるほど、データのパターンを認識する能力が向上します。
通常のフィードフォワードニューラルネットワークは、上で説明したように、しばしば「密なニューラルネットワーク」と呼ばれます。これらの密なニューラルネットワークは、さまざまな種類のデータを解釈することに特化したさまざまなネットワークアーキテクチャと組み合わせられます。

RNN(再帰型ニューラルネットワーク)とは?


再帰型ニューラルネットワークは、フィードフォワードニューラルネットワークの一般的な原理を取り入れ、内部メモリをモデルに与えることで、時系列データを処理できるようにします。RNNの「再帰」部分は、入力と出力がループすることから来ています。ネットワークの出力が生成されると、出力はコピーされ、ネットワークに入力として返されます。決定を下すときに、現在の入力と出力だけが分析されるのではなく、前の入力も考慮されます。言い換えると、ネットワークの初期入力がXで、出力がHの場合、HとX1(データシーケンスの次の入力)は、次のラウンドの学習のためにネットワークにフィードされます。このようにして、ネットワークがトレーニングを受ける際に、データのコンテキスト(前の入力)が保持されます。
このアーキテクチャの結果は、RNNが時系列データを処理できるということです。ただし、RNNにはいくつかの問題があります。RNNは、消えゆく勾配と爆発する勾配の問題に苦しんでいます。
RNNが解釈できるシーケンスの長さは、特にLSTMと比較して、かなり限られています。

LSTM(長短期記憶ネットワーク)とは?

長短期記憶ネットワークは、RNNの拡張版と見なすことができます。再び、入力のコンテキストを保持する概念が適用されます。ただし、LSTMは、過去のデータを優れた方法で解釈できるように、いくつかの重要な点で改良されています。LSTMに加えられた変更は、消えゆく勾配問題に対処し、LSTMがより長い入力シーケンスを考慮できるようにします。

LSTMモデルは、3つの異なるコンポーネント、またはゲートで構成されています。入力ゲート、出力ゲート、忘れゲートがあります。RNNと同様に、LSTMは、前のタイムステップの入力を考慮して、モデルのメモリと入力重みを変更します。入力ゲートは、どの値が重要で、モデルを通過すべきかについての決定を下します。入力ゲートでは、シグモイド関数が使用され、値を通過させるかどうか(0: ドロップ、1: 保持)についての決定が行われます。ここでは、タンハイプ関数も使用され、入力値の重要性が-1から1の範囲で決定されます。
現在の入力とメモリ状態が考慮された後、出力ゲートは、次のタイムステップに値をプッシュするかどうかを決定します。出力ゲートでは、値が分析され、-1から1の範囲で重要性が割り当てられます。これにより、データが次のタイムステップの計算に進む前に調整されます。最後に、忘れゲートの役割は、モデルが決定を下すために不要な情報をドロップすることです。忘れゲートでは、シグモイド関数が値に適用され、0(忘れる)から1(保持)までの範囲で数字が出力されます。
LSTMニューラルネットワークは、シーケンスワードデータを解釈できる特殊なLSTM層と、上で説明したように密に接続された層で構成されています。データがLSTM層を通過した後、密に接続された層に進みます。

ブログ作家およびプログラマーで、 Machine Learning Deep Learning のトピックを専門としています。Danielは、AIの力を社会のために利用する手助けを他者に与えることを希望しています。