迷路にQ学習を使ってみた
お久しぶりです.ユーザ名を今回から Twitter に合わせて TRSasasusu にしました.
記事にできるような活動があまりできなかったため,気がついたら前回の何か作った系の投稿から7ヶ月も経ってしまいました.今回の投稿は去年UMU氏が投稿したものを大いに参考にしています.(というか,ほぼ同じ.違う点は迷路が大きくなったことくらい)
Q学習は
$$ Q(S_t, A_t) = Q(S_t, A_t) + \alpha(R_{t+1} + \gamma \max_{a’ \in A(s’)} Q(S_{t+1}, a’) – Q(S_t, A_t)) $$
に従って行動価値関数を更新します.そもそも行動価値関数とは,といったことはこちらもUMU氏がまとめてくださっています.ありがとうございます.
方策決定には ε を固定した ε-greedy 法を用いています.これにより局所解を抜け出せるようにします.パラメータについては,
$$ \varepsilon = 0.1 $$
$$ 学習率\ \alpha = 0.1 $$
$$ 割引率\ \gamma = 0.9 $$
としています.
やっぱり途中で戻ったりするようになってしまいますね…何ででしょうね.
あと,Pygame 便利ですね.
今回のスクリプト(q_maze2.py, moyf/ml/rl/q.py)
Posted on: 2017年8月3日, by : TRSasasusu