ゲート付き回帰ユニット(GRU)は、リカレントニューラルネットワークで使用されるゲーティング機構の一種であり、2014年にKyunghyun Choらによって導入された。これは、標準的なリカレントネットワークで一般的な勾配消失問題に対処するために設計されており、更新ゲートとリセットゲートの2つのゲートを使用して、過去の情報の保持または忘却の度合いを制御する。長短期記憶(LSTM)ユニットと比較して、GRUはより単純なアーキテクチャを持つ。すなわち、別個のコンテキストベクトルと出力ゲートを欠いており、その結果、パラメータ数が少なく、訓練が高速になることが多い。この単純化にもかかわらず、GRUはポリフォニック音楽モデリング、音声信号モデリング、自然言語処理などのタスクにおいてLSTMに匹敵する性能を示している。Yoshua Bengioのチームによる研究では、ゲーティングが広く有益であることが判明したが、GRUとLSTMのどちらが一般的に優れているかについての決定的な結論には至らなかった。
アーキテクチャ
GRUは入力シーケンスを段階的に処理し、時間ステップをまたいで情報を運ぶ隠れ状態を維持する。各時間ステップで、ユニットは更新ゲートとリセットゲートを計算し、これらは現在の入力と前の隠れ状態の両方の関数である。更新ゲートは前の状態をどれだけ前方に運ぶかを決定し、リセットゲートは候補活性化を計算する際に過去の状態をどれだけ使用するかを決定する。最終的な隠れ状態は、前の状態と候補活性化の凸結合であり、更新ゲートによって重み付けされる。
数学的には、入力ベクトル\(x_t\)と前の隠れ状態\(h_{t-1}\)に対して、ゲートと候補活性化は次のように計算される:
- 更新ゲート:\(z_t = \sigma(W_z x_t + U_z h_{t-1} + b_z)\)
- リセットゲート:\(r_t = \sigma(W_r x_t + U_r h_{t-1} + b_r)\)
- 候補活性化:\(\hat{h}_t = \phi(W_h x_t + U_h (r_t \odot h_{t-1}) + b_h)\)
- 最終的な隠れ状態:\(h_t = (1 - z_t) \odot h_{t-1} + z_t \odot \hat{h}_t\)
ここで、\(\sigma\)はシグモイド活性化関数、\(\phi\)は通常双曲線正接関数、\(\odot\)はアダマール積(要素ごとの積)を表す。重み行列\(W_z, W_r, W_h\)と\(U_z, U_r, U_h\)、およびバイアスベクトル\(b_z, b_r, b_h\)は訓練中に学習される。初期隠れ状態は通常ゼロに設定される。
変種
GRUにはいくつかの変種が存在し、ゲートの計算方法や組み合わせ方が異なる。注目すべき単純化されたバージョンは最小ゲートユニットであり、計算複雑性を低減するために1つのゲート(多くの場合、更新とリセットの組み合わせ)のみを使用する。他の変種は、操作の順序やリセットゲートが前の状態と相互作用する方法を調整する場合がある。これらの変更は、特定のタスクでの効率や性能を向上させることを目的としているが、ゲート付き情報フローの核心原理は一貫している。
応用
GRUは、自然言語処理(例:機械翻訳、言語モデリング)、音声認識、音楽生成などのシーケンスモデリングタスクで広く適用されている。また、時系列予測や、畳み込み層や注意機構と組み合わせたハイブリッドアーキテクチャでも使用される。多くの設定で、GRUはLSTMの軽量な代替手段として機能し、特に計算リソースが限られている場合やシーケンス長が中程度の場合に有用である。
LSTMとの比較
GRUとLSTMはどちらも勾配消失問題を軽減するために開発されたが、内部構造が異なる。LSTMには3つのゲート(入力、忘却、出力)と別個のセル状態があるのに対し、GRUには2つのゲートがあり、別個のセル状態がない。これにより、GRUはパラメータ効率が高く、訓練が高速になることが多い。経験的には、多くのベンチマークタスクでGRUがLSTMと同様の性能を示すことが研究で判明しているが、結果はデータセットやタスクによって異なる場合がある。一部の研究では、GRUは小規模なデータセットでより良い汎化を示す可能性があり、LSTMは大規模なデータセットで優れる可能性があると示唆されているが、決定的な優位性は確立されていない。