5-2 リカレントニューラルネットワーク
みかん
今回はG検定の第5章「ディープラーニングの要素技術」の2節「リカレントニューラルネットワーク」を解説します
1. 回帰結合層
みかん
通常のネットワークは入力から出力まで情報が一方向に流れていくだけでした。しかし時系列データでは、過去の入力が次の入力の処理にも関係します。
みかん
こうした時系列データを扱うために、ネットワークの中間状態を次の入力の処理に利用する「回帰結合層」が考案されました。この回帰結合層を含むネットワークをリカレントニューラルネットワーク(RNN)と呼びます。
みかん
RNNを使ってできることの代表例として「言語モデル(Language Model
2. RNNの基本形
みかん
RNNは通常のニューラルネットワークに過去の回帰結合層が追加された構造です。回帰結合層は過去の時刻の情報を反映した特徴を持っています。
みかん
代表的なRNNとして、回帰結合層の情報を伝搬して次の時刻の入力とともに利用する「エルマンネットワーク(Elman Network)」があります。
あいで
他にも種類はあるんですか?
みかん
出力層の情報を伝搬して次の時刻の入力とともに利用するモデルを「ジョルダンネットワーク(Jordan Network)」と呼びます。エルマンが自然言語処理で、ジョルダンはロボットの運動制御などで使われます。
3. LSTM
みかん
一見するとRNNは時系列データを扱うのに十分に思えますが、実はいくつか厄介な問題を抱えています。
みかん
まず、RNNは時間軸を展開すると深いニューラルネットワークになるため、過去に遡るにつれて勾配が消えていく「勾配消失問題」が発生します。
みかん
また時系列データ特有の問題として「入力重み衝突」と「出力重み衝突」があります。関係ある情報の重みを大きくしつつ関係ない情報の重みを小さくする必要があり、矛盾が生じます。
RNNの問題点
RNNの3つの問題:①勾配消失問題 ②入力重み衝突 ③出力重み衝突。これらを解決するためにLSTMが考案された。
みかん
こうした問題を解決するために考えられたのがLSTM(Long Short-Term Memory)です。回帰結合層の構造を変えることで勾配消失問題と入力重み衝突を同時に解決します。
あいで
LSTMの構造はどうなっているんですか?
みかん
LSTMブロックは大きく2つの機構から成ります。「誤差を内部にとどまらせるためのセル」と「必要な情報を必要なタイミングで保持・消却させるためのゲート」です。
みかん
ゲートは入力ゲート・出力ゲート・忘却ゲートの3つからなります。入力ゲートは入力重み衝突、出力ゲートは出力重み衝突を解決し、忘却ゲートはセルへの過剰な蓄積を防ぎリセットの役割を果たします。
みかん
セルはCEC(Constant Error Carousel)とも言われ、誤差を内部にとどめ勾配消失を防ぐためのものです。
あいで
LSTMは時系列データを扱ううえでデファクトスタンダードになっているモデルなんですね。
みかん
LSTMはセルやゲートをそれぞれ最適化してくてはならず計算量を多く要します。そこでLSTMを少し簡略化した「GRU(Gated Recurrent Unit)」もよく用いられます。
みかん
GRUではリセットゲートと更新ゲートという2つのゲートで構成されます。更新ゲートが入力ゲート、リセットゲートが出力ゲートと忘却ゲートの代わりを果たします。
4. Bidirectional RNN
みかん
通常のRNNは過去から未来への一方向でしか学習できません。しかし、過去と未来の両方の情報を使って予測したほうが効果的な場合もあります。
みかん
例えば自然言語処理で品詞を推定したい場合、過去の単語だけでなく未来の単語の情報も使ったほうが高精度になります。RNNを2つ組み合わせて双方向にしたモデルをBidirectional RNN(BiRNN)と言います。
あいで
過去用と未来用でそれぞれ独立しているので、取り立てて複雑なところはないんですね。
5. エンコーダ - デコーダ
みかん
これまでのモデルは入力が時系列で出力が1つでした。しかし入力も出力も時系列で予測したい場合もあります。このような問題に対処するモデルをsequence-to-sequence(Seq2Seq)と言います。
みかん
モデルは大きく「エンコーダ(encoder)」と「デコーダ(decoder)」の2つのRNNに分かれます。エンコーダが入力データを処理して符号化し、デコーダが復号化して出力を生成します。
あいで
機械翻訳が代表例なんですね。入力文の長さと翻訳文の長さが一致しなくても対応できるのが強みですね。
みかん
RNNに限らず、入力データを処理するニューラルネットワークをエンコーダ、出力を生成するニューラルネットワークをデコーダと呼びます。例えばImage Captioningではエンコーダにはもう存在します。CNNが、デコーダにRNNが用いられます。
6. RNNの学習
みかん
RNNの学習では、誤差を時間軸に沿って過去に遡って逆伝播していく「BPTT(BackPropagation Through-Time)」を用います。
みかん
回帰結合層からの出力を次層の回帰結合層に入力することで、回帰結合層を何層も積み重ねた深いリカレントニューラルネットワークを構成することもできます。
みかん
RNNの学習では「教師強制(Teacher Forcing)」という手法が使われます。正解データを次の入力データとして利用するものです。機械翻訳では正解の翻訳文をデコーダへの入力として利用します。
あいで
教師強制にはデメリットはないんですか?
みかん
テスト時には正解データを利用できないため、訓練時とテスト時で入力データの傾向に違いが出ます。これを「露出バイアス(Exposure Bias)」と呼び、生成AIにおける繰り返し・矛盾・ハルシネーションなどのエラーの原因の一つとされています。
露出バイアスの影響
露出バイアスは教師強制の副作用で、生成AIにおける繰り返し(repetition)、矛盾(incoherence)、ハルシネーション(hallucination)の原因の一つ。
7. Attention
みかん
RNNの応用によって時系列タスクで高い精度を達成できるようになりました。しかし、RNNは過去の各時刻の状態がどれだけ次の状態に影響するかまでは直接求められていませんでした。
みかん
そこで「時間の重み」をネットワークに組み込んだのがAttentionです。過去の各時刻での回帰結合層の状態を保持しておき、それぞれの重みを求めて出力に利用します。
みかん
Attention機構のないSeq2Seqモデルでは、入力文全体の情報がエンコーダを通ることでたった1つのベクトルに押し込められるため、入力文が長くなると情報を適切に保持することが難しくなります。
みかん
Attention機構を導入することで、入力文の各単語をエンコーダで1つずつ読み込んだ際の隠れ層の情報を適切に重み付けして用いることが可能となり、長い文でも正確な翻訳が出力できるようになりました。
Attentionの効果
Attentionの効果:①長い入力でも情報を適切に保持 ②入出力の対応関係を可視化できる ③時系列タスクの精度を大幅に向上。
あいで
Attentionは入力と出力の対応関係を可視化できるのも大きな利点ですね。翻訳タスクで英語とフランス語の対応がヒートマップで見えるのはわかりやすい。
みかん
Image Captioningにおいても、入力された画像のどこに注目して説明文を生成しているかを可視化することができます。予測の根拠を確認する意味でも有用です。
まとめ
みかん
1つ目、RNNは回帰結合層を持ち時系列データを扱える。エルマンネットワークとジョルダンネットワークが基本形。
みかん
2つ目、LSTMはセルとゲート機構でRNNの勾配消失・重み衝突問題を解決。GRUはその簡略版。
みかん
3つ目、BiRNNは過去と未来の双方向を活用。Seq2Seqはエンコーダとデコーダで入出力ともに時系列を処理。
みかん
4つ目、Attentionは時間の重みを学習する機構で、長い入力でも情報を保持でき、入出力の対応関係を可視化できる。
みかん
ということで今回はリカレントニューラルネットワークについて解説しました
あいで
このチャンネルでは情報に関することを発信しています。
あいで
よければチャンネル登録、高評価よろしくお願い致します。