Help us understand the problem. What is going on with this article?

RMSpropGravesについて自分なりに考えてみた

オプティマイザについて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)}

となり、古い勾配であるほど補正の影響がなくなることがわかる。

Why not register and get more from Qiita?
  1. We will deliver articles that match you
    By following users and tags, you can catch up information on technical fields that you are interested in as a whole
  2. you can read useful information later efficiently
    By "stocking" the articles you like, you can search right away
Comments
No comments
Sign up for free and join this conversation.
If you already have a Qiita account
Why do not you register as a user and use Qiita more conveniently?
You need to log in to use this function. Qiita can be used more conveniently after logging in.
You seem to be reading articles frequently this month. Qiita can be used more conveniently after logging in.
  1. We will deliver articles that match you
    By following users and tags, you can catch up information on technical fields that you are interested in as a whole
  2. you can read useful information later efficiently
    By "stocking" the articles you like, you can search right away
ユーザーは見つかりませんでした