(2019/1/11 ML-Agents(ver0.6)についてのコメントを追記)
こちらのページは、ML-Agents(ver0.5)にて機械学習を行うための開発環境導入方法をまとめたページになります。
ML-Agents関連の調査を始めた当時(2018年9月)、ML-Agentsの最新版はver0.5でした。「導入方法とか、テキトーにググれば何か情報出てくるやろー」と当初軽く考えていたのですが、どのページを参考にしてもエラーが出たりして全然インストールが出来ず…何故!!!???と一旦は完全に行き詰ってしまいました。
それでも色々粘って調べた様子だと、どうやらver0.4→0.5の更新で多少操作方法が変わってるみたい(大まかな方向性は変わってないと思いますが、素人にとってはちょっとの変更でも乗り越えるのは大変…)で、ver0.4までの手法を(無理やり)取ろうとして失敗しているようでした。しかも当時は、ただでさえML-Agents関連の情報は少ない中、ver0.5向けの情報が書いてあるサイトというとさらに情報が限られ…、といった情報不足になかなか苦戦しました。
そこで本ページではML-Agents(ver0.5)の導入方法をまとめていきます。本ページの手順通りに実施すれば、導入が出来ると思います(出来ない場合はご連絡頂けると助かります)。
2018年12月17日、ML-Agents(ver0.6)が新規にリリースされました。ver0.6での開発環境導入方法は本ページで以下に紹介している方法から若干の変更があります。変更点についてはこちらのページにまとめましたので、ML-Agents(ver0.6)を導入される際は本ページと併せて参考にして下さい。
まず最初に、こちらのページから、ML-Agentsのライブラリをダウンロードします(Clone or downloadのボタンよりZIPファイルをダウンロード)。するとml-agents-masterというフォルダが入手出来るので、適当な場所(注)に保存しておきます。
(注)フォルダの保存場所(パス)は日本語(全角文字)が混じっていない箇所を推奨します。例えば、私ワガハイの場合はC:/unityに保存しています。これ以降の手順でダウンロードする他のファイルも同様に日本語がパスに入らない場所への保存を推奨します。
ml-agents-master内のよく用いる代表的なフォルダを以下にまとめます(ver0.4→0.5でフォルダ名が一部変わったようです)。
フォルダ名 | コメント・説明 |
docs | 様々なドキュメントがmdファイルで保存されています。これを読めばML-Agentsの基本が分かると思います(ただし英語)。 |
config | 学習方法や機械学習関連のパラメータを設定する「trainer_config.yaml」が本フォルダに保存されています。 |
ml-agents | Pythonの各種パッケージは本フォルダにインストールします。機械学習させたいプロジェクトの.exeファイルをBuildするのもこちらのフォルダです(ver0.4までのpythonフォルダに対応)。 |
UnitySDK | 機械学習させたいプロジェクトには本フォルダ中の「UnitySDK/Assets/ML-Agents」フォルダをコピペする。サンプルもこちらのフォルダ中にある(ver0.4までのunity-environmentフォルダに対応)。 |
以下では開発環境の導入方法の手順をまとめていきます。大まかな手順はver0.4から変更はありませんが、細かい点は変更がありますのでご注意ください。ver0.4→0.5で変更があった箇所や、重要な箇所については青字または赤字で示していきます。
・docs/Basic-Guide.md 内(もしくはこちらのページ)の「TensorFlowSharp plugin」をクリック(ページの最初の方です)して「TFSharpPlugin.unitypackage」をダウンロードする
・Anaconda公式サイトからPython 3.x 64bit版のインストーラをダウンロード→指示に従ってPythonをインストール(Python 3.6推奨?)
・「Anaconda Prompt」というショートカットからコマンドプロンプト立ち上げ
・「conda create -n ml-agents python=3.x」(xはインストールしたバージョンで)→しばらく待つ、途中の質問には「y(=yes)」で答える
・「cd <「ml-agents-master/ml-agents」フォルダのパス>」と入力(フォルダ移動)(参考:ver0.4までは「/python」フォルダに移動)
・「pip install .」と入力→しばらく(結構?)待つ、これでPythonのパッケージが本フォルダにインストールされる
以下では開発環境導入後、機械学習の実行方法の手順を書いていきます。こちらも、大まかな手順はver0.4から変更はありませんが、細かい点は変更がありますのでご注意ください。ver0.4→0.5で変更があった箇所や、重要な箇所については青字または赤字で示していきます。
今回はサンプル(ml-agents-master/UnitySDK/Assets/ML-Agents/Examplesに保存(ver0.4までは青字部がunity-environment))の一つである「3Dball」を用いて機械学習させてみます。「3DBall/Scenes」フォルダ内にある「3DBall.unity」を立ち上げてみて下さい。右のような画面が出てくると思います。このゲームの内容詳細については別ページにて解説しますので、とりあえずここでは機械学習を実行するための諸々の基本設定を行っていきましょう。
・Unityで「Assets→Import Package→Custom Package」選択。先程ダウンロードした「TFSharpPlugin.unitypackage」をインポート
・「File→Build Settings→Player Settings(左下の方)」選択。以下の項目を設定(設定変更するとUnityの再起動を要求される?)。
- Run In Background:チェック付ける
- Display Resolution Dialog:Disabledに設定
- Scripting Runtime Version:.NET 4.x Equivalent(Experimentalとか書いてたり書いてなかったり)
- Scripting Defined Symbols:ENABLE_TENSORFLOWに設定
・「Ball3DAcademy→Ball3DBrain」で、Brain Type:Externalに設定(本設定の詳しい意味についてはこちらのページの後半にて解説)
・「File→Build Settings」選択。BuildするSceneを3DBallに設定する。.exeファイルのBuild先は「ml-agents-master/ml-agents」にする(参考:ver0.4までは「/python」フォルダにBuild)。
・Pythonスクリプトによる学習:以下の手順でコマンドプロンプトに入力
「cd <「ml-agents-master/ml-agents」フォルダのパス>」
「mlagents-learn ../config/trainer_config.yaml --run-id=○○ --train」
1行目でml-agentsフォルダに移動し、2行目で機械学習を開始します。この2行目がver0.5で大きく変更されているようで、ver0.4まで入力していた学習環境ファイル(.exeファイル)の名前は特に不要のようです。
また、mlagents-learnコマンドにて利用できるパラメータは、以前でのver0.4のlearn.pyコマンドで利用できるパラメータと同じようです。例えば、「--run-id=○○:推論モデルの保存先を指定」や「--train:学習実行」といったパラメータは同様の書き方で使用可能です。
そしてコマンドプロンプトの方に「'○○Academy' started successfully!」って表示が出たら機械学習が無事開始されます!
・推論モデル(○○.bytes)の保存先は「ml-agents-master/ml-agents/models/<指定フォルダ名>」になります。
このページでは、ML-Agents(ver0.5)にて機械学習を行うための開発環境導入方法の話をしました。とりあえずML-Agentsで遊ぶための表面的な手順の説明をしただけですので、各設定の意味だったり、機械学習が行われる仕組み等については、本ページだけではよく分からないと思います。本ブログでは、サンプル集解説その0の方でML-Agentsの基本についての解説をしておりますので、併せてご覧いただくと、ML-Agentsに対する理解がより深まるかと思います。是非ご覧ください!