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で統計の勉強まとめ

By: Anssi Koskinen – CC BY 2.0 目次1 Hackerrank 10 Days of Statistics2 Day0 平均値、中央値、最頻値3 Day1 四分 …

Raspberry Pi3とsense HATで遊ぶ

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

Pythonではじめての機械学習~scikit-learn、tensorflow

By: krheesy – CC BY 2.0 目次1 機械学習2 scikit-learn3 tensorflow 機械学習 勉強しているところなので、間違っている箇所もあるかもしれませ …

Kaggleの機械学習のコースで勉強したまとめ

By: Martin Howard – CC BY 2.0 目次1 Machine Learning Course2 データの事前処理3 Model Validation 学習結果の評価4 …

はじめてのKaggle~pandas、scikit-learn

By: Internet Archive Book Images – Flickr Commons 目次1 kaggle2 kaggleコマンドのインストール3 タイタニック:災害の機械学 …