Yuta Hayashibe

RNN (再帰ニューラルネット)

RNN (Recurrent NN)

  • 前の時刻の隠れ状態ベクトルht1(l)h_{t-1}^{(l)}と,現時刻の入力ベクトルht(l1)h_{t}^{(l-1)}を使って,現在の隠れ状態ベクトルht(l)h_t^{(l)}を更新
    • 原理的には前の入力(文脈)全てを記憶して予測できる
    • 時間方向誤差逆伝播法(BPTT)を使う

双方向RNN

  • 前向き走査隠れ状態ベクトルhh^{\to}と後向き走査隠れ状態ベクトルhh^{\gets}の両方を計算する
    • 入力全体の情報を各時刻で考慮できる
    • ただし予測時には入力列全体が与えられている必要が有る
    • hh^{\to}の計算にhh^{\gets}を使わないなど,両方向の扱いは色々考えられる

ゲート付RNN

  • RNNの元の層数は少なくても,本質的には深い層を扱っているのと同じで,勾配消失発散問題が生じる
    • 長期間の依存関係を表現するパラメータの学習が難しい
  • ゲート
    • 忘却の度合いを調整
    • 逆誤差伝播の観点では,流量制限をかけることに相当

LSTM (Long Short-Term Memory)

  • 3つのゲート
    • 入力 i\bold{i}
    • 忘却 f\bold{f}
    • 出力 o\bold{o}
  • 長期の状態を保持するセルと呼ばれる,別の隠れ状態ベクトルc\bold{c}を使う

GRU (Gated Recurrent Unit)

  • セルを使わず,長期の情報を隠れ状態ベクトルh\bold{h}に集約する
  • 2つのゲート
    • 再設定(reset) r\bold{r}: 1時刻前の隠れ状態ベクトルの減衰
    • 更新(update) z\bold{z}: 1時刻前の隠れ状態ベクトルからの更新率を調整
  • LSTMとGRUの性能差は不明
  • 同じ状態変数数なら,GRUの方が少ない計算量・メモリ量で済む

木構造再帰ニューラルネット (Tree-RNN)

  • Recursive NNともよばれる
  • 系列構造のRNNを木構造に拡張したもの
  • 分岐数を固定した木構造を使う
    • 木構造は予め定義されている必要がある