Python

Pythonではじめての強化学習2〜CartPole-v1

投稿日:2017年12月19日 更新日:

リファクタリング

前回「Pythonではじめての強化学習〜OpenAIGym」のコードを意味ごとにわけてみる.

cartpole0.py

こんな感じでできるようなクラスGameを作る.

game.py

なるべくハイパーパラメータを外出しする.
trainがまだ長いけど.

CartPole-v1

gym.openai.com/envs/CartPole-v1/
「解決」は100回の試行で平均475.0以上のスコアなので、トライ回数を500くらいにして、目標を475にしてみた.

cartpole1.py

解決までのエピソード数は733.
うーんこの…

また、ここを参考に、ε-greedy法の式を変えて、学習割合高めにしてみた.
解決までのエピソード数は217まで改善した.

リファクタリング2

trainメソッドを整理するため、マルコフ決定過程のモデルに従って、行動決定とバッチトレーニングをするAgentクラスを作成した.
その後、訂正.tfは基本Agent内で処理することにした.

agent.py

見ての通り、QNetworkとMemoryはAgentが持って利用する.

game.py

そのほかのEnvへの応用

とりあえず、observation_spaceがBoxで、action_spaceがDescreteのやつはいけるぽい.
なかなか汎用性が高い.

Acrobot-v1

中央を固定した関節のある二本のアームを左右に振ってある程度の高さにまで振り上げる.

MountainCar-v0

谷間にある車を前後に振って山の上まで登る.

github.com/openai/gym/wiki/MountainCar-v0

-Python
-, , , ,

執筆者:

関連記事

Python3で株式売買のシミュレーション〜pandas

By: Michael Gwyther-Jones – CC BY 2.0 目次1 株式売買シミュレーション2 ファイルの構造3 pandas4 DataFrameの作成、構造5 csvか …

Raspberry Pi3とsense HATで遊ぶ

By: Su Yin Khoo – CC BY 2.0 目次1 Raspberry Pi32 Raspbian3 Raspbianでsshを使う4 raspi-configで初期設定5 R …

pandasとmatplotlibで株式取引の可視化

By: sprklg – CC BY 2.0 目次1 可視化2 下準備3 pandasのplot4 matplotlibでsubplot5 売買データをプロットする6 番外編 ローソク足チ …

Pythonではじめての強化学習〜OpenAIGym

By: scarletgreen – CC BY 2.0 目次1 強化学習2 強化学習問題のモデル化〜マルコフ決定過程3 Open AI Gym4 Open AI Gymのインストール5 …

Pythonではじめての機械学習2〜scikit-learnとpandasで決定木

By: vaboo.com – CC BY 2.0 目次1 決定木(Decision Tree)2 サンプルデータの用意3 学習用データと検証用データにわける4 scikit-learn5 …