OpenAIが提供している、「OpenAI Gym」という強化学習の開発用のツールキットを使って強化学習を体験してみます。
OpenAI Gym
「OpenAI Gym」は、強化学習を学ぶのに良い手段だと考えます。
強化学習には、環境とエージェントの2つの概念があります。
環境は、外の世界。エージェントは、自分が書くアルゴリズムを指します。
例えば、道路(道幅や標識、信号など)という環境と、車(環境を見ながら行動するもの)というエージェントの2つの概念を扱います。
エージェントが行動した結果、環境が変わる。環境はエージェントへその時の状態・報酬を与える。この繰り返しによって、エージェントの学習を進めます。
OpenAI Gymの環境
それではOpenAI Gymはどのような環境を用意しているか、リンクから確認してみましょう。
OpenAI Gymをインストール
それではさっそく、「OpenAI Gym」をインストールしてみます。
Windowsでの実行は実験的で環境の一部のみ対応しています。
詳しくは、リンクの「Supported systems」の項目を読んでください。
本稿執筆時点では、下記のように書かれています。
Windows support is experimental – algorithmic, toy_text, classic_control and atari should work on Windows (see next section for installation instructions); nevertheless, proceed at your own risk.
https://github.com/openai/gym
それでは、Pythonの仮想環境をPython3.6で作り、下記のコマンドを実行します。
pip install gym
無事にインストールが完了すると上記のような画面が表示されると思います。
CartPoleを実行してみる
CartPoleは、カート(台)を動かして、ポール(棒)が倒れないようにバランスを取るゲームです。
以下のコードを実行して動作を確認してみましょう。
import gym
env = gym.make("CartPole-v0")
env.reset()
for _ in range(100):
env.render()
env.step(env.action_space.sample())
env.close()
途中で終了する際は、Anaconda PromptでCtrl + Cを押して終了します。
ランダム行動のためすぐに棒が倒れ、その後も左右に台が動き、棒がグルグルと回ることが確認できます。