雑多な技術系メモ

自分用のメモ。内容は保証しません。よろしくお願いします。

OpenAI gym を試す

OpenAI Gymとは

強化学習のベンチマークとなる問題を提供してくれるOSS

様々な問題が実装してある。

インストール方法

インストールも簡単で、以下のコマンド一発でインストール可能

pip install gym

OpenAI Gymの公式サイトの例から、シンプルな問題であるCartPoleを取り上げる。

cartpole

強化学習の題材として昔からある問題。

台車(cart)の上に棒(pole)が立っており、その棒が倒れないように制御することを目標としたゲーム

サンプルコード

以下はサンプルコードそのまま。それに忘れないようにコメントを付け加えた

 
import gym
env = gym.make('CartPole-v0')  # ゲームを指定して読み込む
for i_episode in range(20):  # 20エピソード回す
    observation = env.reset() # 環境の初期化
    for t in range(100): # 100回試行する
        env.render() # 表示
        print(observation) # 観測した値の表示 => [position of cart, velocity of cart, angle of pole, rotation rate of pole]といった観測した状態を表示
        action = env.action_space.sample()  # ランダムでアクションを選択
        observation, reward, done, info = env.step(action) # アクションを実行した結果の状態、報酬、ゲームをクリアしたかどうか、その他の情報を返す
        if done:
            print("Episode finished after {} timesteps".format(t+1))
            break