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
-, , , ,

執筆者:

関連記事

Tensorflowのモデリング1〜CNN

By: William Warby – CC BY 2.0 目次1 畳み込みニューラルネットワーク2 Conv層3 POOL層4 残りの処理5 結果6 ハイレベルニューラルネットレイヤーを …

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 番外編 ローソク足チ …

Tensorflowのモデリング2〜RNN

By: fdecomite – CC BY 2.0 目次1 Reccurent Neural Network(RNN)2 入力値を計算3 RNNのモデル4 損失関数とオプティマイザーの定義 …

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

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