2018年12月17日、ML-Agents(ver0.6)が新規にリリースされました。以前のバージョン(ver0.5)と比べますと、機械学習を行うための開発環境導入方法についてはver0.5とそれ程大差ありません(少し変更点あり)が、特にBrain Typeの設定方法に大きな変更があります。
そこで本ページでは主に機械学習を行うための開発環境導入方法、Brain Typeの設定方法について、ver0.5からの変更点をメインにまとめていきます。
ver0.5での各種設定の手順解説ページ(これらが基本)
・機械学習を行うための開発環境導入方法 → こちら
・Brain Typeの設定方法 → こちらのページの後半部
なお、こちらのページ中間部でML-Agents学習環境の基本を解説していますが、ML-Agentsの基本的な考え方・仕組みはver0.6でも同様です。ver0.6では一部の設定方法だけ変更された、という感じです。その変更点を本ページで解説していきます!
以降の説明は、↑これら↑のページをお読み頂いた前提で書いていきますので、まだの方は↑これら↑のページを先にお読み下さい(または本ページと並行してお読み下さい)。
開発環境の導入方法(ver0.5→0.6変更点)
まずは開発環境の導入方法手順についてです。大まかな手順はver0.5からほぼ変更はありませんが数点だけ変更がありますので、変更点だけを以下にまとめていきます。以下の説明では、こちらのページと同様、公式サンプルの「3Dball」を用いて機械学習させるまでの手順の変更点を書いていきます(「3Dball」の内容詳細については別ページ参照)。
・「File→Build Settings→Player Settings(左下の方)」選択後、Other Settings の項目設定時(右図参照)
- Scripting Runtime Version:.NET 4.x Equivalent(Experimentalとか書いてたり書いてなかったり)に設定【変更なし】
- Scripting Defined Symbols:ENABLE_TENSORFLOWに設定【変更なし】
- Allow 'unsafe' Code:チェックを入れる【新規追加】
・次にBrain Typeの設定ですが、ここの設定手順がver0.5→0.6で大きく変更されましたのでご注意下さい。
- 「UnitySDK/Assets/ML-Agents/Examples/3DBall/Prefabs」フォルダ中の「Game/Platform」選択。
- 「UnitySDK/Assets/ML-Agents/Examples/3DBall/Brains」フォルダ中の「3DBallLearning」を、左上図のようにAgentのBrainにドラッグ&ドロップする(注:Inspector画面は「Platform」のまま操作する)。PrefabのBrainを変更したため、Scene中の全Platform(全Agent)のBrainが一括変更されました。
- 右上図中の「Ball3DAcademy」内のBrainsに、先程と同じ「3DBallLearning」をドラッグ&ドロップする。control欄にチェック入れる。
これで、機械学習の準備が完了しました(ver0.5でのBrain Type:Externalに設定した作業に対応)。次以降の、.exeファイルをBuildする手順以降はver0.5と同様になります。
Brain Type設定方法の詳細(ver0.6)
先程Brain Type設定の手順を解説しました。上の説明だけだと、手順が増えただけ…?のような印象を受けますが、この点について、もう少し追記しておきます。ver0.6変更点のメイン部分にもなりますので、しっかりおさえておきましょう。
ver0.5での表現だとBrain Typeには4種類ありましたね。ver0.6でもそこの考え方は同様ですが、Brain Typeの設定方法について変更がありました。ここではその手順を説明していきます。
まず、Brainを変更したいAgentのInspectorを開きます(一括変更したい場合は先程と同様、AgentのPrefabを選択)。開くと右図のような画面が出て来ますので、設定したいBrainアセットをAgentのBrainにドラッグ&ドロップすることで変更出来ます。
各種Brainアセットと紐づけることで、以下のような挙動になります。
・Brainを「Learning Brain」(Assets→Create→ML-Agents→Learning Brainで新規作成)アセットに設定することで機械学習(ver0.5でのBrain Type:Externalに対応)、又は学習モデル(○○.bytes)を使用(ver0.5でのBrain Type:Internalに対応)出来ます。機械学習のBrainパラメータ設定(ver0.5ではBrain.csにて設定していた項目)は、上図左上のようにLearning BrainアセットのInspector画面にて行います(項目の詳細はver0.5から変更なし)。また、学習モデル(○○.bytes)設定も本BrainアセットのInspector画面内で行います(組み込みたい学習モデルをドラッグ&ドロップする)。
・Brainを「Player Brain」(Assets→Create→ML-Agents→Player Brainで新規作成)アセットに設定することでプレイヤー自身が遊ぶ(ver0.5でのBrain Type:Playerに対応)ことが出来ます。プレイヤーが遊ぶ際のキー設定(ver0.5ではBrain.csにてBrain Type:Player時に設定していた項目)は、上図右のようにPlayer BrainアセットのInspector画面内で行います(設定方法はver0.5と同様)。
・Brainを「Heuristic Brain」(Assets→Create→ML-Agents→Heuristic Brainで新規作成)アセットに設定することでにAgent操作スクリプト(○○Decision.cs)に基づきAgentを動かす(ver0.5でのBrain Type:Heuristicに対応)ことが出来ます。Agent操作スクリプト(○○Decision.cs)設定は、上図左下のようにHeuristic BrainアセットのInspector画面内で行います(ドラッグ&ドロップして組み込む)。
最後に(ver0.6でのバグについて…etc)
こちらのページにてリリースノートが書かれていますが、このページ曰く、「Windowsでは機械学習をCtrl+Cで途中終了(通常では中断した段階での学習モデル(○○.bytes)が保存されますが…)しても、学習モデルは保存されませんので気を付けてね~」とのこと…。
なんちゅう死活問題なことを…orz(よく使う機能なのに…(´;ω;`))
バージョンアップで早めに修正されることを祈りましょう…。
→2019年1月12日にver0.6aがリリースされ、本バグは修正されましたとのこと…めっちゃありがたい…( ̄人 ̄) 詳しくはコチラのページを参照して下さい。
よって、Windowsユーザーは極力ver0.6aを使用するようにしましょう!
これからもML-Agents(ver0.6)について色々いじっていきますので、便利な機能などが判明しましたら、また本ブログで紹介していきます!また、本ページに間違い等ございましたらメール等でご連絡頂けると幸いです。