RNNとは
RNN(Recurrent Neural Network、再帰型ニューラルネットワーク)は、時系列データや自然言語などの順序を持つデータを処理するために設計されたニューラルネットワークです。通常のフィードフォワードネットワークとは異なり、隠れ層の出力を次のタイムステップの入力として再利用する再帰的な構造を持っています。
RNNの仕組み
RNNでは、各タイムステップで入力データと前のタイムステップの隠れ状態を組み合わせて新しい隠れ状態を計算します。この仕組みにより、過去の情報を「記憶」として保持しながら、系列データを逐次的に処理できます。数学的には、隠れ状態h(t)は入力x(t)と前の隠れ状態h(t-1)の関数として定義されます。
RNNの課題
基本的なRNNには、勾配消失問題と勾配爆発問題という重大な課題があります。長い系列を扱う場合、逆伝播の過程で勾配が指数的に減衰または増大し、長期的な依存関係を学習することが困難になります。この問題を解決するために、LSTMやGRUなどの改良型アーキテクチャが提案されました。
RNNの応用と発展
RNNは機械翻訳、音声認識、テキスト生成、時系列予測など、多様なタスクに応用されてきました。特にエンコーダー・デコーダー構造と組み合わせたSequence-to-Sequenceモデルは、機械翻訳の分野で大きな成果を上げました。現在ではTransformerに置き換わる場面も増えていますが、リアルタイム処理や軽量なシーケンスモデリングでは依然として活用されています。