今日はコンピュータにゲームを学習させたり、その結果でコンピュータにゲームを
させます。
コンピュータにゲームをさせるにはたくさんのライブラリをいれないといけないので、設定がめんどくさくてなかなかハードルが高いです。なので順を追って説明していきます。
ソースコードは学習することも含めて367行しかないのに。
1. OpenAI GYMをインストール
まずOpenAI GYMをWindowsで動くようにします。
Windows用って書いてますが、実はLinuxでもやることは全部同じです。
なので同じやり方でLinuxでもコンピュータにゲームをさせることができます。
以下のサイトを参考にどんどんいろんなソフトを入れていきます。
Windows 10のLinux/Ubuntu互換環境でbashを使う
http://www.atmarkit.co.jp/ait/articles/1608/08/news039.html
Windows上でOpenAI/gymを実行してみる
http://qiita.com/onelittlenightmusic/items/11eefde5ddad57fd0727
2. いろいろインストール
上記で一応OpanAI GYMだけは動くようになったのですが、Atariのゲームや、機械学習のライブラリのTensorflowとKerasがまだ入っていません。なのでインストールします。
apt-get install python-dev
apt-get install python-opengl
apt-get install python-skimage
apt-get install cmake
apt-get install zlib1g-dev
apt-get install tensorflow
apt-get install git
pip install gym
pip install gym[atari]
pip install keras
export TF_BINARY_URL=https://storage.googleapis.com/tensorflow/linux/cpu/tensorflow-0.10.0-cp27-none-linux_x86_64.whl
pip install $TF_BINARY_URL
こんな感じでどんどんインストールします。
3. Kerasのバックエンドを設定
次にKerasはデフォルトではtheanoを使うように設定されているのでtensorflowを使うように設定を変更します。
KerasをTensorFlowバックエンドで試してみた
http://tjo.hatenablog.com/entry/2016/06/09/190000
上記のサイトを参考に
~/.keras/keras.json
を変更します。
変更前
{"epsilon": 1e-07, "floatx": "float32", "backend": "theano"}
変更後
{"epsilon": 1e-07, "floatx": "float32", "backend": "tensorflow"}
4. Atariのゲームをするプログラムと学習結果をとってくる
ゲームをするプログラムと学習データを取ってきます。
DQNをKerasとTensorFlowとOpenAI Gymで実装する
https://elix-tech.github.io/ja/2016/06/29/dqn-ja.html
上記のサイトにコードとデータがあるので取ってきます。
サイトでは
python dqn.py
と入力すればコンピュータがゲームをしてくれると書いてありますが、実際にはデフォルトではゲームの学習を始めてしまいます。
学習はGPUがあるPCでも非常に時間がかかるので今回は省略します。
5. ソースを一部直す
dqn.pyのソースを以下のように変更し、学習結果をテストするモードにします。
学習結果をテストするくらいならばGPUが載っていない普通のPCでもできます。
変更前
LOAD_NETWORK = False
TRAIN = True
変更後
LOAD_NETWORK = True
TRAIN = False
6. コンピュータにゲームをさせる。
python dqn.py
と入力します。
やったーーーーーー。
きちんとゲーム画面が表示されて生意気にもゲームしてるじゃん。
長かったけどついに僕のWindowsマシンでコンピュータにゲームをさせることができました。
冒頭にも書きましたが、ゲームを学習したりプレーする部分のソースコードは367行しかありません。たったそれだけでゲームすることができちゃうんです。深層強化学習って面白いですね。
0 件のコメント:
コメントを投稿