評価関数にバッチ更新モード実装
評価関数*1の更新にはオンラインとバッチ*2の二種類があります。
オンラインはTD誤差やλ収益を計算するたびに(=ある状態の価値の目標値を計算するたびに)更新する方法。バッチは修正量を累積していって、最後に一エピソード*3分を全部まとめて更新する方法です。
んで、今までは実装が簡単なのでオンラインでやっていましたが、バッチで更新するモードを追加しました。
理由はいくつかあって
- 数日間開発していなかったのでリハビリ
- 多少はパラメータの変化を把握しやすくなる
- ひょっとしてバッチモードで上手く行ったら嬉しいなぁ
って感じです。
それから、バッチモードだと評価関数のメモリ占有量が増えるのですが、現状だと1MBにも満たないので無視出来ますし、とりあえず実装してみました。
あと、λ*4を0.7で固定していたのですが*5、一時的に0にしてみました。これで、評価値更新は通常のTD法に近くなります。
こっちはひょっとしたらλが大きすぎるのかもしれないと思い、0にして上手く行けばもうけもの、程度の考えです。
って、今日の修正内容ってなんかこんなのばっかですね。