イーロン・マスク氏が関わるOpenAIの人工知能プラットフォーム「Universe」を動かしてみる

December 28, 2016

Universe とは

イーロン・マスク氏の OpenAI、人工知能学習プラットフォーム「Universe」をオープンソース化 - ITmedia ニュースの説明がわかりやすいので引用します。

Universe では、AI エージェントは人間と同じようにコンピュータを使えるという。画面を見たり、仮想キーボードとマウスを使って操作する。これにより、人間がコンピュータでこなすタスクをエージェントに学習させることができるとしている。

さらに、

Universe には、環境として 2600 の Atari ゲーム、1000 の Flash ゲーム、ブラウザのタスクなどが含まれる。

準備

conda

とりあえず、condaの環境があった方が良いということなので、Quick installを参考にインストールします。

Minicondaを開いて、必要なファイルをダウンロードします。

ダウンロードしたファイルを実行します。

$ sh Miniconda3-latest-MacOSX-x86\_64.sh

ダイアログ形式で訪ねてくるので、それに回答してインストール完了です(ただし、python に詳しくないので conda 環境を構築するのが良いことなのかはわかりません…)。

Universe のインストール

README 通り。

$ git clone https://github.com/openai/universe.git
$ cd universe
$ pip3 install -e .

で、うまくいくかと思ったのですが、エラーが出ました。必要に応じて下記の対応を行います。

$ xcode-select --install
$ pip3 install numpy incremental
$ brew install golang libjpeg-turbo

さらに、

Failed building wheel for fastzbarlight

とエラーが出た場合は、XQuartz を入れる必要があるということです。

$ brew install Caskroom/cask/xquartz

さらに、

configure: error: unable to find XShmQueryVersion in -lXext!
  specify XSHM\_LIBS or configure --without-xshm to disable the extension
  See \`config.log' for more details.
  Could not build fastzbarlight: ...
...
Failed to build fastzbarlight

と出た場合は(これには苦しめられました…)、ログや Issue など探ったのですが、うまくいかず結局、fastzbarlight のファイルをダウンロードして、個別にインストールしようとするもうまくいかず、fastzbarlight が setup 時に利用している zbar(fastzbarlight は zbar のラッパー)自体がおかしいいというヒントを得たので、ダウンロードした fastzbarlight の setup.py の中にある zbar の指定を homebrew で入れたものに変えました(ちなみに、homebrew で入れたバージョンは念のため --without-xshm しました)。

本家の Issue にも書いておきました…: fastzbarlight build failed on MacOSX 10.11.6 · Issue #51 · openai/universe

\# extra_link_args=\[os.path.join(os.path.dirname(\_\_file\_\_), 'src/fastzbarlight/vendor/zbar-0.10/zbar/.libs/libzbar.a')\],
extra_link_args=\[os.path.join(os.path.dirname(\_\_file\_\_), '/usr/local/Cellar/zbar/0.10_2/lib/libzbar.a')\],

そして、pip を使わずマニュアルインストールです。

$ cd /path/to/fastzbarlight
$ python setup.py install

これで、fastzbarlight のインストールが成功しました…はぁはぁ…。

再度、

$ pip install -e .

を実行して成功することを確認します。

Docker をインストールします。おすすめは、Docker for Macということです。Docker アプリケーションを立ち上げて、

$ docker ps
CONTAINER ID        IMAGE               COMMAND             CREATED             STATUS              PORTS               NAMES

ができることを確認します。

起動!

README にあるコードを Python の REPL に貼り付けます(とりあえず!)。起動にはちょっと時間がかかりました(15 分くらい?)。

import gym
import universe  # register the universe environments

env = gym.make('flashgames.DuskDrive-v0')
env.configure(remotes=1)  # automatically creates a local docker container
observation\_n = env.reset()

while True:
  action\_n = \[\[('KeyEvent', 'ArrowUp', True)\] for ob in observation\_n\]  # your agent here
  observation\_n, reward\_n, done\_n, info = env.step(action\_n)
  env.render()

これで、接続して…、パスワードは README に書いてあります。

$ open vnc://localhost:5900
``

![Dec 29 2016 05 12 10](images/blogDec-29-2016-05-12-10.gif "Dec-29-2016 05-12-10.gif")

やったー!(とりあえずここまで)

## 参考

- [openai/universe: Universe: a software platform for measuring and training an AI's general intelligence across the world's supply of games, websites and other applications.](https://github.com/openai/universe)
- [イーロン・マスク氏のOpenAI、人工知能学習プラットフォーム「Universe」をオープンソース化 - ITmedia ニュース](http://www.itmedia.co.jp/news/articles/1612/06/news053.html)

Profile picture

Written by morizotter who lives and works in Tokyo building useful things. You should follow them on Twitter