LIS (Life in Silico)をMacで動かす


LISはドワンゴ（dwango）社が開発したディープラーニングと強化学習を体験できるアプリケーションです。

話題になってから少し時間が経過しましたが、Unityを使うという心理的障壁から手を出せずにいました。年末なのでやるか、と思ったのですがUnityの障壁はほぼ感じることなくできました。ここに記録を残しておきます。

ということで、Unity初心者（初めて動かす）でもできる手順を書いておきます。

## 準備

事前に、Unityをインストールしておく必要があります。

READMEにある通り。Macなので、リポジトリをクローンして、

```bash
$ git clone git@github.com:wbap/lis.git
$ cd lis
```

必要なものをインストールして、

```bash
$ pip install -r python-agent/requirements.txt
```

データを持ってきます。これ40分くらいかかりました。

```bash
$ ./fetch.sh
```

サーバーを動かします。

```bash
$ cd python-agent
$ python server.py
```

Unityを起動するときにOpenを選び、 `unity-sample-environment` をOpenしました。アラートが出ましたが、そのまま、進んだらプロジェクトが起動しました（Unity初心者）。

下記のSceneディレクトリの中のSimpleを選択し、

![Unity_5_5_0f3_Personal__64bit__-_sample_unity_-_unity-sample-environment_-_PC__Mac___Linux_Standalone__Personal___OpenGL_4_1_.png](https://qiita-image-store.s3.amazonaws.com/0/24041/66663a92-e28c-fbb2-10c2-94125614402d.png "Unity_5_5_0f3_Personal__64bit__-_sample_unity_-_unity-sample-environment_-_PC__Mac___Linux_Standalone__Personal___OpenGL_4_1_.png")

画面上部のスタートボタンを押します。この状態で2,3分待ちました。READMEによると、caffeのモデルを読み込むのに時間がかかるようです。

![Unity_5_5_0f3_Personal__64bit__-_sample_unity_-_unity-sample-environment_-_PC__Mac___Linux_Standalone__Personal___OpenGL_4_1_.png](https://qiita-image-store.s3.amazonaws.com/0/24041/509a7cb7-0da0-5870-9e67-4a181450143b.png "Unity_5_5_0f3_Personal__64bit__-_sample_unity_-_unity-sample-environment_-_PC__Mac___Linux_Standalone__Personal___OpenGL_4_1_.png")


この状態で、数分待ちました。

## 動き出す

なんか、変な視点で動き出しました！

![Unity_5_5_0f3_Personal__64bit__-_sample_unity_-_unity-sample-environment_-_PC__Mac___Linux_Standalone__Personal___OpenGL_4_1_.png](https://qiita-image-store.s3.amazonaws.com/0/24041/20472b52-82a9-1011-d705-8d687fa641ab.png "Unity_5_5_0f3_Personal__64bit__-_sample_unity_-_unity-sample-environment_-_PC__Mac___Linux_Standalone__Personal___OpenGL_4_1_.png")

なにやら、緑の箱にぶつかると報酬を得られる様子（ログが出てる）。そして、最初は避けていたのに、どんどん自分から当たっていく？

Sceneを押したら、視点変えられた。こんなんなったー。なんか可愛い。

![Unity_5_5_0f3_Personal__64bit__-_sample_unity_-_unity-sample-environment_-_PC__Mac___Linux_Standalone__Personal___OpenGL_4_1_.png](https://qiita-image-store.s3.amazonaws.com/0/24041/107aa140-a3b9-81d3-cdde-7d83c9110a1e.png "Unity_5_5_0f3_Personal__64bit__-_sample_unity_-_unity-sample-environment_-_PC__Mac___Linux_Standalone__Personal___OpenGL_4_1_.png")


## 報酬履歴を見る

READMEにある通り、

```bash
$ cd python-agent
$ python plot_reward_log.py
```

これで見れると思ったら、下記のエラーが出ました。

```bash
$ python plot_reward_log.py
Traceback (most recent call last):
  File "plot_reward_log.py", line 1, in <module>
    import matplotlib.pyplot as plt
ImportError: No module named matplotlib.pyplot
```

エラーで検索して、matplotlibをインストール。

```bash
$ pip install matplotlib
```

次はこれ。

```bash
Traceback (most recent call last):
  File "plot_reward_log.py", line 2, in <module>
    import pandas as pd
ImportError: No module named pandas
```

同様に。

```bash
$ pip install pandas
```

再度、実行してみました。

![Figure_1_and_python-agent_—_Python_plot_reward_log_py_—_134×54_and_LIS__Life_in_Silico_をMacで動かす_and_Kobito.png](https://qiita-image-store.s3.amazonaws.com/0/24041/0c32f7bd-5360-ea08-9653-d857eb9b26f9.png "Figure_1_and_python-agent_—_Python_plot_reward_log_py_—_134×54_and_LIS__Life_in_Silico_をMacで動かす_and_Kobito.png")


でました〜。やった。まだ回数が少ないながらも、少しずつrewardが獲得できるようになっている？

ということで、lis動かせて楽しかった&#x1f601;

## その後...

数時間起動して、LISの動きを見て見たら、ちゃんと緑のブロックにあたりに行ってる！

![Figure_1_and_python-agent_—_Python_plot_reward_log_py_—_134×54_and_イーロン・マスク氏が関わるOpenAIの人工知能プラットフォーム「Universe」を動かしてみる.png](https://qiita-image-store.s3.amazonaws.com/0/24041/94bb224f-cf88-5cf9-6bd6-4c0f9998dc46.png "Figure_1_and_python-agent_—_Python_plot_reward_log_py_—_134×54_and_イーロン・マスク氏が関わるOpenAIの人工知能プラットフォーム「Universe」を動かしてみる.png")

うれしかった...。

## 参考

- [wbap/lis](https://github.com/wbap/lis)


## お願い

冒頭の定義など間違っていたら優しく教えていただければ...。