konchangakita

KPSを一番楽しんでいたブログ 会社の看板を背負いません 転載はご自由にどうぞ

【DeepLearning特訓】RNNモデルの考え方

E資格向けの自習アウトプット
自分用メモ

RNN を利用したモデル構築の考慮事項について
E資格試験対策の意味合いが多し

RNN の学習方法

通時的誤差逆伝播(BPTT: Back Propagation Though Time)

Simple RNNの逆伝播は1つ先の時刻の勾配を含んで計算されていたので、並列で処理できない
つまりメモリコストも大きくなる
中間層同士の接続なので強力ではある

教師強制

訓練時に、前の時刻の正解ラベルを中間層へ入力として与える
並列処理が可能になるが、出力層が必要な情報を全てもっていることは少ないので強力ではない
前日の終値が確実に分かっている、株価とかでは使える


出力回帰(出力層から中間層へ接続)は、RNNほど強力ではない

教師強制で学習できる

有向グラフィカルモデル

求めたいものが出力値の確率であるとき、RNNのモデルは有向グラフィカルモデルといえる
こんなイメージ
f:id:konchangakita:20210127100739p:plain

RNNを使った「文脈で条件付けされた」系列モデリング

言葉としてややこしいが、文脈=「過去の真の値」と考える
直前の真の値が入力として中間層へ接続される
株価予想もそう(過去の終値が今日には確定している)

深層回帰結合型ネットワーク

RNN の層を深くする方法
 ・隠れた回帰状態 ➔ 階層別の回帰に分解
 ・より深い計算 ➔ 中間層でより深い接続
 ・経路が長くなる ➔ スキップ接続で緩和

再帰ニューラルネットワーク

RNN のもう一つの一般系と呼ばれている
木構造として扱う、深さを大幅に減らし長期依存を取り扱うのに有利になる可能性がある
最適な木構造をどのように構築するかは未解決の課題

エコーステートネットワーク

RNNで難しい一つ前の時刻からの重み𝑊_ℎ,"現時刻の入力重み" 𝑊_𝑥の学習が難しい
スペクトル半径を3などに固定し、単純な重みに固定する戦略

双方向RNN

出力が入力系列全体に依存していることがある
音声認識:後ろに続く音素によって、直前の音素が決定する
翻訳:言語によって語順が変わってくる

系列全体を参照できる仕組みが必要
逆方向に接続するRNNを追加し、結果をマージ
f:id:konchangakita:20210127101754p:plain

さいごに

このあたりの考え方は実際にコード組んでみないことには、習得するのが難しそう