オプティマイザについてSGDやRMSprop、Adadelta、Adamなどの解説記事を読むと、どういう工夫がなされているのかなんとなく分かります。しかし、RMSpropGravesについては提案した論文にも詳しい説明はなく、解説記事もほとんど見つかりません。そこで自分なりに考えてみました。
間違っていたら恥ずかしいので指摘してください。
RMSpropGravesの最適化手法は以下の式で表される。
{g}^{(t)}=\nabla E({w}^{(t)})\\
{m}_t=\rho_1{m}_{t-1}+(1-\rho_1){g}^{(t)}\\
{v}_t=\rho_2{v}_{t-1}+(1-\rho_2)({g}^{(t)})^2\\
\Delta{w}^{(t)}=-\frac{\eta}{\sqrt{{v}_t-{m}_t^2+\varepsilon}}{g}^{(t)}\\
{w}^{(t+1)}={w}^{(t)}+\Delta{w}^{(t)}
RMSpropGravesはモーメンタム項を考慮することも多く、その場合は以下のようになる。
\Delta{w}^{(t)}=-\mu\Delta{w}^{(t-1)}-\frac{\eta}{\sqrt{{v}_t-{m}_t^2+\varepsilon}}{g}^{(t)}\\
ここで ${m}_0=0$、${v}_0=0$ と初期値を設定すると、
{m}_t=(1-\rho_1)\sum_{i=1}^{t}\rho_1^{t-i}{g}^{(i)}
{v}_t=(1-\rho_2)\sum_{i=1}^{t}\rho_2^{t-i}({g}^{(i)})^2
ここで議論をわかりやすくするために、$i=1\sim t$に対しベクトル${g}^{(i)}$の単位ベクトルを基底ベクトルとした座標変換を考え、${m}_t$ を$\underline{{m}_t}$、${v}_t$を$\underline{{v}_t}$と座標変換する。また各要素に大きさ$|{g}^{(i)}|$をもつベクトルを$\underline{{g}^{(t)}}$とする。
{v}_t=(1-\rho_2)\sum_{i=1}^{t}\rho_2^{t-i}({g}^{(i)})^2=\underline{{g}^{(t)}}\odot\underline{{m}_t}
{v}_t-{{m}_t}^2 =\underline{{g}^{(t)}}\odot\underline{{m}_t}-\underline{{m}_t}\odot\underline{{m}_t}=(\underline{{g}^{(t)}}-\underline{{m}_t})\odot\underline{{m}_t}
RMSpropとRMSpropGravesの違いは$\Delta{w}^{(t)}$を求める際に、${v}_t$が${v}_t-{m}_t^2$となっている点である。この意味は$\underline{{g}}^{(t)}$を$\underline{{g}^{(t)}}-\underline{{m}_t}$と修正していることが上の式より分かる。よっては$\Delta{w}^{(t)}$の更新において勾配に掛けられる係数はRMSpropよりも大きくなることがわかる。
これは直近に取得した勾配の影響を抑える働きがある。具体的には$\underline{{g}}-\underline{{m}_t}$の最新の要素$i=t$に対して、
(\underline{{g}^{(t)}}-\underline{{m}_t})_{t}={g}^{(t)}-(1-\rho_1){g}^{(t)}=\rho_1{g}^{(t)}
となり、$0<\rho_1<1$であるため$\rho_1$だけ抑えらていることがわかる。
逆に、最も古い勾配は$i=1$で$t\rightarrow\infty$において
(\underline{{g}^{(t)}}-\underline{{m}_t})_{1}=\lim_{t \to \infty}\left({g}^{(1)}-(1-\rho_1)\rho_1^{t-1}{g}^{(1)}\right)={g}^{(1)}
となり、古い勾配であるほど補正の影響がなくなることがわかる。