強化学習を学べるツールキットとしてOpenAI/gymが公開されています。
pythonの開発環境さえあれば動き、ATARIのゲームがいくつが同梱されている他、tensorflowなどと相性が良いということで、機械学習の勉強に大変効果がありそうです。
また、ちょうど最近、Windows 10の年に一度の更新、Anniversary Updateが公開され、適用することでなんとbashが動くようになりました。いろんな人が涙したことでしょう。
Ubuntuのネイティブライブラリが動くということで、pythonの開発環境とも相性が良いです。
Windowsのラップトップしか所有していない筆者でも、OpenAIの雰囲気を感じられるチャンスかもしれません。
今回はbash on Windows上でopenAI/gymを動かしてみます。
(べつにVagrantとか使えばいいのですが、新しさがないので今回はbash on Windowsに焦点を当てました)
bash on Windowsの動作の確認
下記atmarkITさんの記事が参考になります。
Windows 10のLinux/Ubuntu互換環境でbashを使う
基本的には下記の手順を踏みます。
- WSL機能を有効化する。
- 開発者モードをOnにする。
- 起動し、パスワードなどを設定する。
結果、「Bash on Ubuntu on Windows」というアプリへのショートカットがインストールされていれば成功です。
Bash上にOpenAI/gymをインストール
インストールされたbash on windowsを起動します。
下記コマンドで最初に必要なpipコマンドをインストールします。
sudo apt-get install python-pip
ちなみに、私の環境ではpython2.7がインストール済みでした。
次に、pipコマンドで必要なライブラリをインストールします。
OpenAI/gym document
sudo pip install gym
Windows側に画面を表示するためのXmingをインストール
bash on Windowsは開発途中で未実装の機能も多く、画面表示に関する部分も含まれます。
Running Linux desktop apps on the Windows Subsystem for Linux
OpenAI/gymが学習結果の画面を表示するときにXの画面を使用しますが、bash on Windowsには入っていません。
対策として、昔からXの画面をWindowsで表示するフリーのソフトはいくつも開発されていますから、bashとは別にそれらをインストールすればよいはずです。
筆者は下記Xmingを使いました。
フリーのWindows用Xサーバー「Xming」のインストールと基本設定、使い方
次に、bash on Windowsで画面をXmingに飛ばす設定をします。
export DISPLAY=:0
上記で設定が完了します。
完了できたか確認するには、bash上でX画面を使用するシンプルなアプリxeyesを実行して、その画面がXmingで表示されるかを確認すればいいです。
sudo apt-get install x11-apps
xeyes&
簡単なOpenAI/gymサンプルを実行
今回は上記ドキュメントの一番簡単なenvironmentであるcartpole-v0を実行します。
一直線上を動くカートの上にグラグラ傾くポールが乗っていて、カートを前後させて倒立させるというシミュレーションアプリです。
bash上で下記のソースコードをcartpole.pyという名前で保存します。
(エディタはviなど何を使っても構いません)
import gym
env = gym.make('CartPole-v0')
env.reset()
for _ in range(1000):
env.render()
env.step(env.action_space.sample())
bash上でソースコードを実行してみます。
python cartpole.py
結果、このような画面がWindows上に出てきます。
まとめ
まずcartpoleを実行し、OpenAI/gymがWindows上で動くことを確認しました。gymには幾つかいろんなアプリが入っているようなので、今後試してみたいと思います。