Unityを使って機械学習

Unityと言えばゲーム制作などで利用されるケースがたくさんあると思います。しかし、大学で論文を聴講していた際にUnityを用いた災害シミュレーションなどを行っていた研究グループなどもいてシミュレーションソフトとして利用するということを知ります。

そこで今回はUnityを用いて機械学習をシミュレーションしようと思います。

はじめに

本環境で使用したソフト、言語などです。

Unity2018.4.8f1(ここにモデルを配置してシミュレーションを行う)

Python(機械学習を行うのに必要です。詳細は後述します)

Anaconda(こちらもPythonに付属して必要なライブラリや機械学習を行うためのツール等入っています。)

ml-agents(Unity環境で使用可能な機械学習ライブラリです。オープンソースです)

環境構築

最初にシミュレーションソフトになるUnityをダウンロード・インストールします。

https://unity3d.com/jp/get-unity/download

Unity Hubをダウンロードし、インストーラに従ってUnityをインストールしてください

ヴァージョンは私が使っているのが2018.4.8f1なのでそれと同じなら問題ないです。

Pythonをダウンロードします。

https://www.python.org/downloads/

ヴァージョンは

Python 3.5.7辺りなら問題ないです。

インストールし終わると、PATHを通すかと聞かれるのでチェックボックスにチェックを入れてください

Anacondaのダウンロード・インストール

Anacondaは科学計算・機械学習等のパッケージを管理できたり、実行環境を提供している便利なソフトなので合わせて入れておくといいです。

https://www.anaconda.com/distribution/

Python 3.7 versionを選択してください

また、お使いのコンピュータのOSを選択してダウンロードしてください。

機械学習ライブラリ「ml-agents」のダウンロード・インストール

オープンソース

https://github.com/Unity-Technologies/ml-agents

入ったら右のClone or DownloadをクリックしてDownload ZIPで圧縮フォルダをダウンロードして解凍してデスクトップに保存してください。

手順

手順は大きく分けて

  • Unityを起動してプロジェクトの新規作成。ライブラリの読み込み
  • サンプルを実行
  • 学習するための準備
  • 学習、モデルの生成
  • モデルを用いて実際に動かしてみる。評価

です。順に詳細を書いていきます。

Unityでプロジェクト新規作成

Unity Hubを起動すると以下の画面が出ます。

右のボタンからプロジェクトを新規作成してください。名前は自分が分かりやすい名前でいいです。

しばらく待つと以下の画面が出てきてこのソフト上でシミュレーションしていきます。

左上のメニューバーからFile->Open Sceneで先ほどダウンロードしたml-agentsのsceneを選択します。

階層を示します。

デスクトップ->ml-agents-master(ダウンロードしたフォルダ)->UnitySDK->Assets->ML-Agents->Examples->3DBall->Scenes

になります。(今回は例として3DBallで解説します。)

すると3DBallのsceneを開くことができます。

Playボタンを押せばそのままサンプルを実行することができます。

学習させてみる

次に用意したモデルを学習させてみます。

Anaconda promptをインストールするとスタートメニューに

  • Anaconda Navigator
  • Anaconda Prompt
  • Jupyter Notebook
  • Spyder

などインストールされていると思います。

そのなかでAnaconda Promptを選択してください。

Anaconda promptが開けたら

->conda create -n ml-agents python=3.6 と入力

実行するか聞かれたらyと入力して実行

フレームワークのインストール

終わったら以下を入力します

->actvate ml-agents

->pip installl tensorflow==1.7.1と入力してフレームワークをインストールします。

ml-agentsが使うライブラリのインストール

コマンド画面から

cd desktop\ml-agents-master と入力してフォルダ移動し、

->pip install mlagents と入力

->cd ml-agents-master\ml-agents-envs と入力してフォルダ移動し

->pip install -e. と入力

cd .. でml-agents-masterに戻り、 cd ml-agents で別のフォルダに移動

->pip install -e. を再度入力します。

これで必要なライブラリをそろえました。

AIの学習実行

->cd ..でml-agents-master に戻り、

以下のコマンドで学習を実行します。

>mlagents-learn config/trainer_config.yaml –run-id=firstRun –train

と入力してください。

上記のような画面が出て、INFO:mlagents.envs:Start training by pressing the Play button in the Unity Editor. と書かれていればOKです。

この間にUnityの画面に行ってPlayボタンを押すと学習開始しますということです。

Unityで行う設定は

Ball 3D Academyのsceneを選択し、右のscript部分のcontrollのチェックをつけてください

それが終わったらUnityのPlayボタンを押してください。

AIが学習している風景です。

1000Stepごとにログ出力され、最大50000Stepまで学習できます。

中断する場合はctrlキー+Cです。

学習が終わるとml-agents-master->models->firstRunに3DBallLearning.nnという学習モデルが生成されます。

このファイルをUnitySDK->Assetsフォルダにコピーして、先ほどの3DBall AcademyのControllのチェックを外します

そして、Brainフォルダの3DBallLearningを選択して、さっきの学習モデルを選択します。

そしたらUnityのPlayボタンをおして、自分が学習したモデルを使って実行することができます。

他にもいくつかの機械学習できるライブラリがあるので別記事で投稿していこうと思います。

コメントする

メールアドレスが公開されることはありません。 * が付いている欄は必須項目です

CAPTCHA