Yolo 深圳
深セン
今すぐ参加
用語集

リカレントニューラルネットワーク(RNN)

系列データのためのリカレントニューラルネットワーク(RNN)のパワーをご覧ください。NLPから時系列分析まで。今日の主要な概念と応用事例を学びましょう。

リカレント・ニューラル・ネットワーク(RNN)は、以下のように特別に設計されたニューラルネットワーク(NN)の一種である。 ニューラル・ネットワーク(NN)の特殊なクラスある。 入力の順序が全体の意味を決定する。従来のフィードフォワード 各入力を独立して処理する従来のフィードフォワードネットワークとは異なり、RNNは内部記憶状態を持ち、シーケンスの前のステップの情報を保持することができる。 を保持することができる。このユニークなアーキテクチャにより、RNNは次のようなアプリケーションの基礎となる。 ディープラーニング(DL)アプリケーションの基礎となっている。 またはシーケンシャルなパターンを含む 自然言語処理(NLP) 音声合成、時系列分析などである。これにより 新しいデータが処理されるにつれて進化する「隠れた状態」を維持することで、RNNは文脈を把握し、文中の次の単語や将来の株価を予測することができる。 文中の次の単語や株価の将来価値を予測することができる。

リカレント・ニューラル・ネットワークの仕組み

RNNの特徴は、ループメカニズムにある。標準的なニューラルネットワークでは、データは一方向に流れる。 入力から出力へ。RNNでは、ニューロンの出力は次の時間ステップの入力としてそれ自身にフィードバックされる。このプロセスは このプロセスは、時間経過に伴うネットワークの「展開」として視覚化されることが多い。 ネットワークは、その内部状態(これまでに見たことに関する情報を含む)を次のステップに渡す。

学習プロセスにおいて、RNNは以下のアルゴリズムを利用する。 BPTT(Backpropagation Through Time)と呼ばれるアルゴリズムを使用する。これは標準的な によって勾配を計算する。 これは標準的なバックプロパゲーションの拡張であり、シーケンスの時間ステップにわたってネットワークを展開することで勾配を計算する。BPTTは、以前の入力が後の出力にどのように影響するかをネットワークに学習させる。 が後の出力にどのように影響するかを学習し、誤差を最小化するように モデルの重みを効果的に調整し、誤差を最小化する。詳細な このプロセスの詳細な説明は、次のような教育リソースで見ることができる。 Stanford's CS224n NLP course.

実際のアプリケーション

RNNは、データを正しく解釈するためにコンテキストが必要な場面で特に効果を発揮する。

  1. 言語モデリングと翻訳:機械翻訳では 機械翻訳では、単語の意味は 機械翻訳では、単語の意味はその単語の前にある単語に依存することが多い。RNNは、ある言語(English)の文を取り込み、それに対応する別の言語(スペイン語など)の文を生成するために使用される。 別の言語(スペイン語など)で対応する文を生成するために使用される。初期の Google 翻訳の初期バージョンは、流暢さを達成するために、このようなシーケンス間 アーキテクチャに大きく依存していた。
  2. 予知保全:産業環境では、RNNは機械センサーからの時系列データを分析する 機械センサーからの時系列データを分析する。振動や温度測定値の連続パターンを学習することで これらのモデルは、振動や温度の測定値の連続的なパターンを学習することで、異常を予測し、故障が発生する前に故障を予測することができる。 故障が発生する前に故障を予測することができる。このアプリケーションは 製造業におけるAIと重なり 業務効率の最適化に役立つ。

課題と関連アーキテクチャ

強力な反面、標準的なRNNは 勾配が消失するという問題がある。 ネットワークが長いシーケンスにわたって情報を保持するのに苦労する。勾配は多くの時間ステップを経て後方に伝搬するため、勾配が限りなく小さくなる可能性がある。 ネットワークが初期の入力を「忘れて」しまうのだ。

これに対処するため、研究者たちは高度な改良型を開発した:

  • 長期短期記憶(LSTM):LSTMは、情報の流れを制御する「ゲート」を導入することで、ネットワークが長期間にわたって何を記憶するか、あるいは何を破棄するかを選択できるようにする。 を選択できるようにする。このアーキテクチャについては Christopher OlahのLSTMに関するブログ
  • ゲート式リカレント・ユニット(GRU):LSTMに代わる合理化されたGRUは、ゲーティング機構を単純化することで、同様の性能をより高い計算効率で提供する。 ゲーティングメカニズムを単純化。

また、RNNと以下のものを区別することも重要である。 畳み込みニューラルネットワーク(CNN).RNNが時間的(タイムベース)なシーケンスを得意とするのに対し、CNNは画像のような空間的(グリッドベース)なデータ向けに設計されている。 例えば Ultralytics YOLO11は、CNN アーキテクチャをリアルタイム物体検出に使用している、 一方、RNNは、YOLO 処理するビデオフレームにキャプションを付けるのに適している。

PyTorchRNNを実装する

最新のフレームワーク PyTorchのような最新のフレームワークは リカレント層を実装する。一方 YOLO11のようなUltralyticsモデルは主にCNNベースであるが ようなUltralytics モデルは、主にCNNベースであるが、カスタムソリューションのために今後のUltralytics プラットフォームを活用するユーザーは、マルチモーダルデータを扱う際にRNNに遭遇する可能性がある。 データに遭遇するかもしれない。

以下は、PyTorch基本的なRNNレイヤーを定義する簡潔な例です:

import torch
import torch.nn as nn

# Define an RNN layer: Input size 10, Hidden state size 20, 2 stacked layers
rnn = nn.RNN(input_size=10, hidden_size=20, num_layers=2)

# Create a dummy input sequence: (sequence_length=5, batch_size=1, input_features=10)
input_seq = torch.randn(5, 1, 10)

# Forward pass: Returns the output for each step and the final hidden state
output, hidden = rnn(input_seq)

print(f"Output shape: {output.shape}")  # torch.Size([5, 1, 20])

より高度なシーケンス・モデリングのために、最近のアプリケーションの多くは、次のようなものに移行しつつある。 トランスフォーマーアーキテクチャに移行している。 移行している。しかし、RNN は、人工知能(AI)の進化を理解する上で不可欠な概念であり 人工知能(AI)の進化を理解する上で不可欠な概念であり 特定の低レイテンシー・ストリーミング・タスクでは依然として効率的である。

Ultralytics コミュニティに参加する

AIの未来を共に切り開きましょう。グローバルなイノベーターと繋がり、協力し、成長を。

今すぐ参加