LoginSignup
25
28

More than 5 years have passed since last update.

OpenAIGym の基本的使い方

Last updated at Posted at 2017-12-23

OpenAIGym

OpenAIGymは強化学習を効率良く行うことを目的として作られたプラットフォームです。

普通、ゲームを使って強化学習を行うとき、強化学習についての深い知識や経験だけでなく、ゲームに関しての深い知識や経験も必要になってきます。
OpenAIGymはこのゲームに関する部分を簡単に実装でき、必要なパラメータなどを使いやすい形で提供してくれるので、利用する側は強化学習のみに専念することができます。

使い方

インストールしていない方は

pip install gym

でインストールしましょう。

cartpole.py
import gym

env=gym.make("CartPole-v0")

for episode in range(20):
    env.reset()
    for t in range(100):
        action=env.action_space.sample()
        env.step(action)
        env.render()

CartPole.gif

これがOpenAIGymの基本的な形になります。

env=gym.make("CartPole-v0")この部分にゲーム名を入れることで、いろんなゲームの環境を構築できます。

env=gym.make("MountainCar-v0")にすれば

MountainCar.gif

別ゲームになります。

env.reset()で環境がリセットされ、初期状態になります。

for t in range(100):
        action=env.action_space.sample()
        env.step(action)
        env.render()

この部分では実際にゲームをプレイし、描画します。

action=env.action_space.sample()はランダムな行動という意味です。CartPoleでは左(0)、右(1)の2つの行動だけなので、actionの値は0か1になります。

その後env.step(action)で行動し、env.render()で描画します。

関数やパラメータ

env.step(action)では実際に行動をしますが、そのとき以下のような4つのパラメータを返します。

1.observation(ゲームの状態)
2.reward(報酬)
3.done(終了判定)
4.info(デバッグなどの情報)

observation,reward,done,info=env.step(action)

とすることでそれらの値を取得できます。

import gym

env=gym.make("CartPole-v0")

for episode in range(20):
    env.reset()
    for t in range(100):
        action=env.action_space.sample()
        observation,reward,done,info=env.step(action)
        env.render()

        print("\nobservation=",observation)
        print("\nreward=",reward)
        print("\ndone=",done)
        print("\ninfo=",info)

SnapCrab_NoName_2017-12-23_13-31-50_No-00.png

SnapCrab_NoName_2017-12-23_13-32-9_No-00.png

CartPoleでは、
observation=[カートの位置 カートの速度 ポールの角度 ポールの回転速度]、
棒が倒れているときreward=0でdone=True、棒が立っているときreward=1でdone=Falseとなります。

25
28
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
25
28