備忘録的な

プログラミングや機械学習に関する備忘録

論文:Reward function and initial values : Better choices for accelerated Goal-directed Reinforcement Learning

The International Conference on Artificial Neural Networks (ICANN) 2006 の論文.
hal.archives-ouvertes.fr

強化学習において,報酬と初期値の決め方大事だよね,という話.

2値報酬&一様初期値の場合

ゴール状態s_gの報酬がr_g,それ以外の報酬がr_\inftyのとき,もしr_g = r_\inftyであれば,
\begin{align} \forall s \forall a Q^*(s,a) = Q_\infty = \frac{r_\infty}{1-\gamma} \end{align}
となりますが,これはr_g \neq r_\inftyでも,s_gが十分遠ければ成り立ちます.
このとき,r_g < Q_\inftyだと学習できませんよね,とここまでは当たり前の話.

次に学習時ですが,Q値の更新式は,初期値をQ_iとすると,
\begin{array}
Q Q\left(s,a\right) &\leftarrow& Q_i + \alpha[r_\infty + (\gamma - 1)Q_i]\\ &\leftarrow& Q_i + \alpha(1-\gamma)(Q_\infty - Q_i)
\end{array}
と書け,ここから,

  •  Q_i \geq Q_\inftyなら,未訪状態を探索しやすくなり,学習初期の探索が進みやすい
  •  Q_i < Q_\inftyだと,探索済みの状態を選びやすいため学習が進みにくく避けた方が良い

ということが分かります.
言われてみれば確かにな,という感じなのですが,特に各状態で得られる報酬のばらつきが大きく,事前にその予測が難しい場合に, Q_i < Q_\inftyになっていないかということは,あまり今まで気にしていなかったので勉強になりました.

実験では,Gridworldにおいて, r_g=1, r_\infty=0としたときに, Q_i=0とするよりも Q_\infty < Q_i < r_gとした方が,学習初期の成績が良いよ,ということを言っているのですが,当然前記設定だと,いつまでも探索を続けることになり,学習後期のスコアは Q_i=0のときの方が断然よく,う~んという感じ.

連続値報酬&非一様初期値の場合

Progress estimatorという考え方が提案されていて,例えばGridworldのケースでは,状態 s s'の距離を d(s, s')としたときに,
\begin{align}
r(s, a, s') = -d^2(s', s_g)
\end{align}
とする方法が提案されていますが,これは袋小路から抜け出せなくなりやすいため良くない,代わりに


 \displaystyle r(s, a, s') = \beta e^{-\frac{d(s', s_g)^2}{2\sigma^2}}

とするのが良いと提案しています,が正直う~ん.

このケースではそりゃ良くなるでしょうけど,どの程度一般化できるのか疑問なのと,そもそもこんな風に適切な報酬を設定できるケースが現実の問題においてどのくらいあるのでしょう.

初期値の与え方についても同様に,Goal biasと称して


 \displaystyle Q_i(s, a) = \beta e^{-\frac{d(s, s_g)^2}{2\sigma^2}} + \delta + Q_\infty

を提案していますが,上記と同じ疑問が残ります.

なんか誤読しているのでしょうか...