原文
RNNの学習 (Training recurrent neural networks)
Ilya Sutskever (2013)
1. 要約/背景
新しいRNNの学習方法として、
①RBMを使う手法
②脱ヘシアン(Hessian-free)最適化
を提案した。
②では、長期時系列の予測にも耐えうることが知られている。
筆者らは、手法を文字列レベル(単語レベルでない)のNLPに適用した。
2. 骨子の理論
(1)Temporal RBM
RBMのモデルを系列データに適用したパターンである。
系列$t$の可視変数と隠れ変数が、$t-1$以前の可視変数と隠れ変数にそれぞれ影響を受けているモデルである。
系列$m$前まで影響があるときの、ボルツマン分布は、
P(v_t,h_t|v_{t-m}^{t-1},h_{t-m}^{t-1}) = \frac{\exp(h_t{}^T\mbox{W}v_t + B_v(v_{t-m}^{t-1}){}^Tv_t + B_h(v_{t-m}^{t-1},h_{t-m}^{t-1}){}^Th_t)}{Z(v_{t-m}^{t-1},h_{t-m}^{t-1})}
サンプリングの際に、$m$系列前までの変数が影響を及ぼす。
サンプル採取(フィルタリング)の元になる、確率分布を、次のようにシグモイド近似している。
P(h_{t,i} = 1|v_{1}^{t},h_{1}^{t-1}) = \mbox{sigmoid}\big((\mbox{W}v_t)_i + B_h (v_{t-m}^{t-1},h_{t-m}^{t-1})\big)
学習は対数尤度の最小化のアプローチで進行し、定石通りサンプルされた変数群の期待値の差に落とし込まれる。
ただし、今回は系列モデルであり、過去の系列の影響を受けない系($Q_1$)と$m$次前まで影響を受ける系($Q_2$)それぞれの期待値差で、重みの更新を決める。
\Delta \mbox{W} \propto {\bf E}_{Q_1}\big[ h_tv_t{}^T\big] - {\bf E}_{Q_2^t}\big[ h_tv_t{}^T\big] \\
\Delta \mbox{W}_n \propto {\bf E}_{Q_1}\big[ (h_t - {\bf E}_{Q_2^t}[ h_t])v_{t-n}{}^T\big] \\
\Delta \mbox{W}_n' \propto {\bf E}_{Q_1}\big[ (h_t - {\bf E}_{Q_2^t}[ h_t])h_{t-n}{}^T\big] \\
\Delta \mbox{A}_n \propto {\bf E}_{Q_1}\big[ (v_t - {\bf E}_{Q_2^t}[ v_t])v_{t-n}{}^T\big] \\
Q_2^t(v_{1}^{t},h_{1}^{t}) = P(v_t,h_t|v_{t-m}^{t-1},h_{t-m}^{t-1})Q_1(v_{1}^{t-1},h_{1}^{t-1})
(2)RTRBM
再帰型TRBMは、フィードバックの影響を受けるTRBMである。
すなわち、同じ系列の可視変数をサンプリングするとき、ひとつ前の隠れ変数に加えて、同じ系列の隠れ変数の影響も受けるような仕組みである。Motion Captureのような動画認識において、強いパフォーマンスを見せる。
(3)脱ヘシアン最適化
脱ヘシアン最適化は、(勾配降下法=GDの代わりに)ニュートン法を大規模に適用した計算方法である。LSTMで問題になった、長期時系列依存性の問題をクリアし、長期記憶の改善に繋がると期待される。
GDは、悪質な曲率を持った目的関数と相性が悪いのは知られている。(勾配消失問題は、その一例)
ニュートン法は、そのデメリットがない。
ただし、計算の遅いデメリットがあるので、その工夫により適用可能性が広がる。
パラメータ$θn+1$の更新に際し、目的関数を副次目的関数$M$と正則化項$R$に分解する。
q_{\theta_n}(\theta) \equiv M_{\theta_n}(\theta) + \lambda R_{\theta_n}(\theta)
副次目的関数は2次のニュートン法により、次のように近似される。
M_{\theta_n}(\theta) = f(\theta_n) + f'(\theta_n){}^T \delta_n + \frac{\delta_n{}^T C_n \delta_n}{2}
$C_n$は、目的関数$f$の曲率に対する近似項である。
3. モデル適用例
言語モデルへのHF-RNNの適用
Multiplicative RNNというモデルを構築し、文字単位での言語予測モデルをRNNにより構築した。
(N-gramや単語ベクトルというレベルより、1歩先に進んだ系)