RNNの構造
回帰結合層は前の時刻の出力(隠れ状態)を現在の入力とともに受け取る層で、これを持つネットワークがRNNです。同じ重みを各時刻で繰り返し使い、系列の情報を隠れ状態として保持するため、時系列データやテキストのように順序と文脈に意味があるデータに適しています。
隠れ層の出力を次の時刻の隠れ層に戻す構造をエルマンネットワーク、出力層の出力を戻す構造をジョルダンネットワークといいます。
学習方法:BPTT
RNNを時間方向に展開して各時刻を1つの層とみなし、誤差逆伝播法を時間をさかのぼって適用します。展開した層数が多くなるため、長い系列では勾配消失・勾配爆発が起きやすくなります。勾配爆発には勾配クリッピング、勾配消失にはLSTMが対策です。
LSTM
長期の依存関係を学習できるように、記憶セル(CEC: Constant Error Carousel)とゲート機構を導入したモデルです。CECは誤差を一定のまま時間方向に伝えて勾配消失を防ぎ、入力ゲート・出力ゲート・忘却ゲートがCECに何を書き込み、読み出し、忘れるかを制御します。
GRUはLSTMを簡略化し、リセットゲートと更新ゲートの2つでパラメータを減らしたモデルです。
双方向RNN
過去から未来への順方向と、未来から過去への逆方向の2つのRNNを組み合わせ、両方向の文脈を使うモデルです。文全体が与えられる翻訳や品詞タグ付けで有効です。
教師強制
系列を生成するRNNの学習で、前の時刻のモデルの出力ではなく正解の系列を次の時刻の入力として与える方法です。学習が安定・高速化しますが、推論時は自分の出力を使うため、学習と推論の条件のずれ(露出バイアス)が課題です。
試験で問われる観点
- RNNが適したデータ、BPTTの意味
- LSTMのCECとゲート機構、GRUは簡略版
- エルマン(隠れ層を戻す)とジョルダン(出力を戻す)
- 教師強制の内容