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のモデリング2〜RNN

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

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

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

Tensorflowのモデリング1〜CNN

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

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

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

Pythonではじめての強化学習3〜Actor and Critic model

By: Banalities – CC BY 2.0 目次1 課題 出力が連続値の場合2 Actor and Critic3 Actorにノイズを付与する4 結果 MountainCarC …