ChainerRL Quickstart Guide JP
これは,ChainerRL Quick Guideの日本語訳版です.

(追記:2017/03/03 Pythonのバージョンは3.5.1+ならば動きそうです.[参考])

これは,とりあえずChainerRLを使ってみたいという人たちのためのクイックスタートガイドです.
ChainerRLがインストールされていない場合,以下のコマンドを実行してください.

$ pip install chainerrl

ChainerRLのインストールが済んだら,始めましょう!

まず,必要なモジュールをインポートする必要があります.
ChainerRLのモジュールは chainerrl です.
以下のモジュールをインポートしておきましょう
後で使うので、gymとnumpyもインポートしておきましょう.

import chainer
import chainer.functions as F
import chainer.links as L
import chainerrl
import gym
import numpy as np

ChainerRLは環境のモデルを与えれば,どのような問題にも使うことができます.
OpenAI Gymは様々なベンチマーク環境が共通のインターフェースで用意されています.
ChainerRLはOpenAI Gymが提供しているインターフェースの1つです.
具体的には,エージェントが受け取る情報(観測空間)とエージェントが取りうる行動の集合(行動空間)が定義され,最低でも resetstep という2つのメソッドを用意する必要があります.

  • env.reset は,環境を初期状態に戻し,初期観測を返します.
  • env.step は,与えられた行動を実行し,次の状態へ遷移し,以下の4つの値を返します.
  • 次の観測
  • スカラー値で表した報酬
  • 現状態が最終状態かのbool値
  • その他の追加情報
  • env.render は,現在の状態をレンダリングします.

classic control problemである”CartPole-v0”を試してみましょう.
以下のコードでは,観測空間が4つの実数値で構成され,その行動空間が2つの離散的行動を見ることができます.
env = gym.make('CartPole-v0')
print('observation space:', env.observation_space)
print('action space:', env.action_space)

obs = env.reset()
env.render()
print('initial observation:', obs)

action = env.action_space.sample()
obs, r, done, info = env.step(action)