【Open AI gym、強化学習】MoutainCar(連続値)の紹介

前回の記事でMoutainCar問題を紹介しました。
https://www.tcom242242.net/entry/2019/04/30/194755

今回はMoutainCarの制御値が連続値のバージョンを紹介します。

問題の概要

MoutainCarは、 台車を山の上にあるゴール地点にたどり着けるように
適切にコントロールする問題になります。

f:id:ttt242242:20190430153950p:plain

出典:Leaderboard · openai/gym Wiki · GitHub

制御値、観測、報酬等について

制御値(行動)

前回と異なるのは主に制御値になります。
前回は、台を左に押す(0)か何もしない(1)、右に押す(2)の三択でしたが、

今回は連続値になります。
負の値であれば、台車を左方向に押し、
正の値であれば、右方向に押します。

観測情報 最小値 最大値
台を押す量 -1.0 1.0

以下のコードで確認できます。

観測

観測値は、台車の位置と速度の2つになります。

観測情報 最小値 最大値
台車の位置 -1.2 0.6
台車の速度 -0.07 0.07

報酬

ゴールに着いたら100、
それ以外の場合、制御値の大きさに応じて負の値が与えるようです。
つまり、大きく動かせば動かすほど報酬が大きくなります。
(コードを参照)

エピソードの終了判定

最低限、以下の2つの終了判定が存在します。

  • 台車がゴールにたどり着いた
  • 999回制御を行った

ただ、実は終了判定がまだ完璧に理解できていません。
私の今後の課題です。

ちょっと動かしてみる

実際に動かしてみます。
stepメソッドを使って1ステップづつ台車を操作していきます。
stepメソッドの戻り値は操作した結果 (観測情報, 報酬, エピソードの終了判定) が返却されます。

サンプルコードを実行するために
gymをインストールする必要があります。

サンプルコード

ひたすらランダムで行動選択を行ってみます。
以下、サンプルコードになります。

実行結果

終了するまで実行します。

参考文献

openai/gym
A toolkit for developing and comparing reinforcement learning algorithms. - openai/gym

コメント

タイトルとURLをコピーしました