RNN とは何ですか?
リカレントニューラルネットワーク (RNN) は、シーケンシャルデータ入力を処理して特定のシーケンシャルデータ出力に変換するようにトレーニングされた深層学習モデルです。シーケンシャルデータとは、単語、文、時系列データなどのデータで、シーケンシャルコンポーネントは複雑なセマンティクスと構文ルールに基づいて相互に関連しています。RNN は、テキストをある言語から別の言語に翻訳するなど、人間が逐次データ変換を行う方法を模倣した、相互接続された多くのコンポーネントで構成されるソフトウェアシステムです。RNN は主に、逐次データ処理においてはるかに効率的なトランスフォーマーベースの人工知能 (AI) と大規模言語モデル (LLM) に置き換えられています。
リカレントニューラルネットワークはどのように機能しますか?
次の画像は、RNN の図を示しています。
RNN はニューロンで構成されています。ニューロンとは、連携して複雑なタスクを実行するデータ処理ノードです。ニューロンは、入力層、出力層、隠れ層として編成されています。入力レイヤーは処理する情報を受け取り、出力レイヤーは結果を提供します。データ処理、分析、予測は隠れ層で行われます。
非表示レイヤー
RNN は、受信したシーケンシャルデータを 1 ステップずつ隠れ層に渡すことで機能します。ただし、自己ループ型または反復型のワークフローもあります。つまり、隠れ層は以前の入力を記憶し、短期記憶コンポーネントの将来の予測に使用できます。現在の入力と保存されているメモリを使用して、次のシーケンスを予測します。
たとえば、「Apple は赤い」というシーケンスを考えてみましょう。RNN が Apple の入力シーケンスを受信したときに赤を予測させたいとします。隠れ層が Apple という単語を処理すると、そのコピーをメモリに保存します。次に、「はい」という単語を見ると、記憶から Apple を思い出し、その流れをすべて理解します。 Apple は文脈のための存在です。その後、赤を予測して精度を向上させることができます。これにより、RNN は音声認識、機械翻訳、その他の言語モデリングタスクに役立ちます。
トレーニング
機械学習 (ML) エンジニアは、モデルにトレーニングデータを供給してパフォーマンスを改善することで、RNN のようなディープニューラルネットワークをトレーニングします。ML では、ニューロンの重みは、トレーニング中に学習した情報が出力を予測する際にどの程度影響するかを判断するための信号です。RNN の各レイヤーは同じ重みを共有します。
ML エンジニアは、予測精度を向上させるために重みを調整します。時間による逆伝搬 (BPTT) と呼ばれる手法を使用してモデル誤差を計算し、それに応じてその重みを調整します。BPTT は出力を前のタイムステップにロールバックし、誤り率を再計算します。これにより、シーケンス内のどの隠れ状態が重大なエラーを引き起こしているのかを特定し、重みを再調整してエラーマージンを減らすことができます。
リカレントニューラルネットワークにはどのような種類がありますか?
RNN は多くの場合、1 対 1 のアーキテクチャによって特徴付けられます。つまり、1 つの入力シーケンスが 1 つの出力に関連付けられます。ただし、特定の目的に合わせてさまざまな構成に柔軟に調整できます。一般的な RNN タイプは次のとおりです。
1 対多
この RNN タイプは、1 つの入力を複数の出力にチャネルします。1 つのキーワードから文章を生成することで、画像キャプションなどの言語応用が可能になります。
多対多
このモデルは複数の入力を使用して複数の出力を予測します。たとえば、RNN を使用して言語トランスレータを作成し、文を解析し、その単語を別の言語で正しく構造化します。
多対一
複数の入力が出力にマップされます。これは、入力された証言から顧客のポジティブ、ネガティブ、ニュートラルなどのセンチメントをモデルが予測するセンチメント分析などのアプリケーションで役立ちます。
リカレントニューラルネットワークは他の深層学習ネットワークと比べてどうですか?
RNN は、いくつかの異なるニューラルネットワークアーキテクチャの 1 つです。
リカレントニューラルネットワークとフィードフォワードニューラルネットワーク
RNN と同様に、フィードフォワードニューラルネットワークは、アーキテクチャの一方の端からもう一方の端に情報を渡す人工ニューラルネットワークです。フィードフォワードニューラルネットワークは、単純な分類、リグレッション、または認識タスクを実行できますが、処理した以前の入力を記憶することはできません。たとえば、ニューロンが「is」という単語を処理する頃には、 Apple のことを忘れてしまいます。RNN は、ニューロンに隠れた記憶状態を含めることで、この記憶制限を克服します。
リカレントニューラルネットワークと畳み込みニューラルネットワーク
畳み込みニューラルネットワークは、時系列データを処理するように設計された人工ニューラルネットワークです。畳み込みニューラルネットワークを使用して、ビデオや画像をニューラルネットワーク内の一連の畳み込み層とプーリング層に通すことで、空間情報を抽出できます。RNN は、シーケンシャルデータの長期的な依存関係をキャプチャするように設計されています。
リカレントニューラルネットワークの限界とは?
RNN の導入以来、ML エンジニアは RNN とそのバリアントを用いた自然言語処理 (NLP) アプリケーションにおいて大きな進歩を遂げてきました。ただし、RNN モデルファミリーにはいくつかの制限があります。
爆発するグラデーション
RNN は、初期トレーニングの出力を誤って予測する可能性があります。エラー率を下げるためにモデルのパラメーターを調整するには、何度か反復する必要があります。モデルのパラメーターに対応する誤り率の感度を勾配で表すことができます。勾配は、丘から降りるときに登る斜面を想像できます。勾配が急なほどモデルの学習速度が上がり、勾配が浅いと学習率が低下します。
RNN が不安定になるまで勾配が指数関数的に増加すると、勾配の爆発が起こります。勾配が無限に大きくなると、RNN は不規則に動作し、オーバーフィッティングなどのパフォーマンス上の問題が発生します。オーバーフィッティングとは、モデルがトレーニングデータでは正確に予測できるが、実際のデータでは予測できないという現象です。
消えゆくグラデーション
勾配消失問題は、トレーニング中にモデルの勾配がゼロに近づく状態です。勾配がなくなると、RNN はトレーニングデータから効果的に学習できなくなり、結果的に適合度が低くなります。アンダーフィットモデルは、重量が適切に調整されていないため、実際のアプリケーションではうまく機能しません。RNN は、長いデータシーケンスを処理すると、勾配の問題が消失したり爆発的に増加したりするリスクがあります。
トレーニング時間が遅い
RNN はデータを順次処理するため、大量のテキストを効率的に処理する能力が制限されます。たとえば、RNN モデルでは、2 つの文から購入者の感情を分析できます。ただし、エッセイの 1 ページを要約するには、膨大な計算能力、メモリスペース、および時間が必要です。
リカレントニューラルネットワークアーキテクチャのバリエーションにはどのようなものがありますか?
RNN アーキテクチャは、ML モデルに言語処理機能を持たせるための基礎を築きました。メモリ保持の原則を共有し、元の機能を改善するいくつかのバリエーションが登場しました。いくつかの例を次に示します。
双方向リカレントニューラルネットワーク
双方向リカレントニューラルネットワーク (BRNN) は、隠れノードの前方層と後方層でデータシーケンスを処理します。フォワード層は RNN と同様に機能し、前の入力を非表示の状態で保存し、それを使用して後続の出力を予測します。一方、後方レイヤーは、現在の入力と将来の隠れ状態の両方を取得して現在の隠れ状態を更新するという逆方向に作用します。両方のレイヤーを組み合わせることで、BRNN は過去と将来の状況を考慮して予測精度を向上させることができます。たとえば、BRNN を使用すると、「リンゴの木は背が高い」という文の中の「木」という単語を予測できます。
長期短期記憶
長短期記憶 (LSTM) は、モデルのメモリ容量を拡張してより長いタイムラインに対応できるようにする RNN バリアントです。RNN は直近の入力しか記憶できません。以前の複数のシーケンスからの入力を使用して予測を改善することはできません。
次の文を考えてみてください。トムは猫です。 トムの好きな食べ物は魚です。RNN を使っていると、モデルはトムが猫であることを思い出せません。ラストワードを予測すると様々な食べ物を生み出すかもしれません。LSTM ネットワークは、隠れ層にセルと呼ばれる特別なメモリブロックを追加します。各セルは、入力ゲート、出力ゲート、フォーゲットゲートによって制御されます。これにより、レイヤーは有用な情報を記憶できます。たとえば、セルは「Tom」と「cat」という単語を記憶しているため、モデルは魚という単語を予測できます。
ゲート付きリカレントユニット
ゲーテッドリカレントユニット (GRU) は、選択的なメモリ保持を可能にする RNN です。モデルに更新が加わり、隠れレイヤーへのゲートは表示されなくなります。隠れレイヤーは情報をメモリに保存したり削除したりします。
変圧器はリカレントニューラルネットワークの限界をどのように克服するのでしょうか?
トランスフォーマーは、エンコーダー-デコーダーのフィードフォワードニューラルネットワークで自己注意メカニズムを使用する深層学習モデルです。RNN と同じ方法でシーケンシャルデータを処理できます。
セルフアテンション
トランスフォーマーは、データシーケンスの相互依存性をキャプチャするために隠し状態を使用しません。代わりに、セルフアテンションヘッドを使用してデータシーケンスを並行して処理します。これにより、トランスフォーマーは RNN よりも短い時間で長いシーケンスをトレーニングして処理できます。自己注意メカニズムにより、トランスフォーマーは RNN が直面するメモリの制限とシーケンスの相互依存性を克服します。トランスフォーマーは、データシーケンスを並行して処理し、位置エンコーディングを使用して各入力が他の入力とどのように関連しているかを記憶できます。
並列処理
トランスフォーマーは、トレーニング中の並列処理を可能にすることで、RNN が直面する勾配の問題を解決します。すべての入力シーケンスを同時に処理することで、グラデーションはすべての重みまで自由に流れるため、トランスフォーマーはバックプロパゲーションの制限を受けません。また、グラフィックプロセッシングユニット (GPU) が生成系 AI 開発に提供する並列コンピューティングにも最適化されています。並列処理により、トランスフォーマーは大規模なモデルを構築することで大規模にスケーリングし、複雑な NLP タスクを処理できます。
AWS は RNN 要件をどのようにサポートできますか?
Amazon Web Services (AWS) の生成 AI は、高度なトランスフォーマーベースのテクノロジーを使用して従来の AI アプリケーションを構築、管理、およびスケーリングするために使用できるサービス、ツール、およびリソースを提供します。以下に例を示します。
- Amazon SageMaker は、データの準備、ML モデルの構築、トレーニング、デプロイに使用できるフルマネージドサービスです。インフラストラクチャ、ツール、ワークフローを完全に管理しています。
- Amazon Bedrock は、業界をリードする基盤モデル (FM) を安全かつ効率的にカスタマイズしてデプロイできるようにすることで、生成系 AI 開発を簡素化します。
- AWS Trainium は、深層学習モデルのトレーニングとスケーリングを手頃な価格でクラウドで行うことができる ML アクセラレータです。
今すぐアカウントにサインアップして、AWS で生成系 AI を使い始めましょう。