スタブ 深層学習における RNN と LSTM とは何ですか? - Unite.AI
私達と接続
AI マスタークラス:

AI 101

深層学習における RNN と LSTM とは何ですか?

mm
更新中 on

自然言語処理と AI チャットボットにおける最も目覚ましい進歩の多くは、 リカレントニューラルネットワーク(RNN) および長短期記憶 (LSTM) ネットワーク。 RNN と LSTM は、時系列的な順序が重要なデータである連続データを処理できる特別なニューラル ネットワーク アーキテクチャです。 LSTM は RNN の本質的に改良されたバージョン、より長いデータシーケンスを解釈できます。 RNN と LSTMS がどのように構造化されているのか、そしてそれらがどのようにして高度な自然言語処理システムの作成を可能にするのかを見てみましょう。

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

したがって、長短期記憶 (LSTM) と畳み込みニューラル ネットワーク (CNN) がどのように機能するかを説明する前に、一般的なニューラル ネットワークの形式について説明する必要があります。

ニューラル ネットワークは、データを調べて関連するパターンを学習し、これらのパターンを他のデータに適用したり、新しいデータを分類したりできるようにすることを目的としています。 ニューラル ネットワークは、入力層、隠れ層 (または複数の隠れ層)、出力層の XNUMX つのセクションに分かれています。

入力層はデータをニューラル ネットワークに取り込むものであり、隠れ層はデータ内のパターンを学習するものです。 データセット内の隠れ層は、データ ポイントが互いにどのように関連しているかの単なる仮定である「重み」と「バイアス」によって入力層と出力層に接続されます。 これらの重みはトレーニング中に調整されます。 ネットワークがトレーニングされると、トレーニング データ (出力値) に関するモデルの推測が実際のトレーニング ラベルと比較されます。 トレーニングの過程で、ネットワークは (できれば) データ ポイント間の関係をより正確に予測できるようになり、新しいデータ ポイントを正確に分類できるようになります。 ディープ ニューラル ネットワークは、より多くの中間層/より多くの隠れ層を持つネットワークです。 モデルに含まれる隠れ層とニューロン/ノードが多いほど、モデルはデータ内のパターンをよりよく認識できます。

上で説明したような通常のフィードフォワード ニューラル ネットワークは、「高密度ニューラル ネットワーク」と呼ばれることがよくあります。 これらの高密度ニューラル ネットワークは、さまざまな種類のデータの解釈に特化したさまざまなネットワーク アーキテクチャと組み合わされています。

RNN (リカレント ニューラル ネットワーク) とは何ですか?

リカレント ニューラル ネットワークは、フィードフォワード ニューラル ネットワークの一般原理を採用し、次のようにシーケンシャル データを処理できるようにします。 モデルに内部メモリを与える。 RNN 名の「Recurrent」部分は、入力と出力がループするという事実に由来しています。ネットワークの出力が生成されると、その出力はコピーされ、入力としてネットワークに返されます。意思決定を行う際には、現在の入力と出力が分析されるだけでなく、以前の入力も考慮されます。別の言い方をすると、ネットワークの最初の入力が X で出力が H の場合、H と X1 (データ シーケンスの次の入力) の両方が次の学習ラウンドでネットワークに供給されます。このようにして、データのコンテキスト (以前の入力) がネットワーク トレインとして保存されます。

このアーキテクチャの結果、RNN は連続データを処理できるようになります。 ただし、RNN にはいくつかの問題があります。 RNN は次のような問題に悩まされています。 勾配消失と勾配爆発の問題。

RNN が解釈できるシーケンスの長さは、特に LSTM と比較してかなり制限されています。

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

Long Short-Term Memory ネットワークは、入力のコンテキストを保存するという概念をもう一度適用した、RNN の拡張と考えることができます。 ただし、LSTM は、優れた方法で過去のデータを解釈できるようにするために、いくつかの重要な方法で修正されています。 LSTM に加えられた変更は、勾配消失問題に対処し、LSTM がより長い入力シーケンスを考慮できるようにします。

LSTM モデルは次のもので構成されています XNUMX つの異なるコンポーネント、またはゲート。 あるよ 入力ゲート、出力ゲート、および忘却ゲート。 RNN と同様に、LSTM はモデルのメモリと入力の重みを変更するときに、前のタイムステップからの入力を考慮します。 入力ゲートは、どの値が重要でモデルに通過させる必要があるかを決定します。 シグモイド関数は入力ゲートで使用され、リカレント ネットワークを通じてどの値を渡すかを決定します。 1 は値を削除し、1 は値を保持します。 ここでも TanH 関数が使用されており、入力値がモデルにとってどれだけ重要であるかを -1 から XNUMX の範囲で決定します。

現在の入力とメモリ状態が考慮された後、出力ゲートはどの値を次のタイム ステップにプッシュするかを決定します。 出力ゲートでは、値が分析され、-1 から 1 までの範囲の重要度が割り当てられます。これにより、データが次のタイムステップ計算に持ち込まれる前に調整されます。 最後に、フォーゲット ゲートの仕事は、入力値の性質に関する決定を行うためにモデルが不必要であると判断した情報を削除することです。 忘却ゲートは値に対してシグモイド関数を使用し、0 (これを忘れる) と 1 (これを保持する) の間の数値を出力します。

LSTM ニューラル ネットワークは、連続した単語データを解釈できる特別な LSTM 層と、上記のような密に接続された層の両方から作成されます。 データが LSTM 層を通過すると、密に接続された層に進みます。

専門分野を持つブロガーおよびプログラマー 機械学習 および 深層学習 トピック。 ダニエルは、他の人が社会利益のために AI の力を活用できるよう支援したいと考えています。