Edited at

Unityで機械学習やってみる(ML-Agents) 最初のサンプル動かすとこまで

More than 1 year has passed since last update.

環境 mac

Unity 2017.4.4.f1

ちょっとUnityで機械学習試して見たいのでやってみる

学習させるところまでとりあえず・・・。


必要なものをダウンロード


Unity ML-Agentsのアセットをダウンロードする

Unity Machine Learning Agents Toolkit

中身はこんな感じ

スクリーンショット 2018-08-07 00.07.40.png


TensorFlowSharpプラグインをダウンロード

ここから



上記リンクのBasic GuideのところにあるDownloadをクリックするとpackageをダウンロードできる

unitypackageの状態で落とせるよ


Pythonをインストールしてない人はPythonもインストール

わからないときはターミナルから

python --version

すればバージョンが表示される。

2.7.10だったので3系インストールする

手っ取り早くAnacondaでPhthonの環境構築

2系と3系があるけど3系の方をチョイス

そしてインストールして起動


Anaconda起動

左メニューEnvironmentsを選択し、左下のCreateボタンを押す

スクリーンショット 2018-08-07 00.23.14.png

適当に名前つけて、Pythonのバージョンを設定してCreate

スクリーンショット 2018-08-07 00.23.38.png

作成したものをクリックしてOpen Terminalでターミナルが開く

スクリーンショット 2018-08-07 00.28.15.png

バージョンを確認

スクリーンショット 2018-08-07 00.32.28.png


ML-Agentsのアセットサンプルを動かす

まずはUnityで新規プロジェクト3Dで作成

ダウンロードしたUnity ML-Agentsnounity-environmentのAssetsフォルダを作成したプロジェクトに突っ込む

スクリーンショット 2018-08-07 00.20.04.png

そしてTensorFlowSharpのプラグイン TFSharpPlugin.unitypackageもインポート

これ結構大きい

ここまでできたら

PlayerSettingのResolution and Presentationの

Runin Backgroundをチェック

Display Resolution DialogをDisabled

Other SettingsのScripting Runtime VersionをExperimental(.NET 4.6 Equivalent) Unity再起動するよ

Scripting Defined SymbolsにENABLE_TENSORFLOW を記載

スクリーンショット 2018-08-07 00.43.06.png


シーンの設定

現状でこのようなフォルダ構成になっているはずなので

ML-Agents/Examples/3DBall/Scenes/3DBallのシーンを開く

スクリーンショット 2018-08-07 00.44.33.png

ボールを落とさないように板を傾けるやつです

スクリーンショット 2018-08-07 00.46.37.png

学習方法の設定は

ヒエラルキーのBall3DAcademy/Ball3DBrainのインスペクターにある

Brain.csのBrainTypeで変更します。

学習させたいので今回はExternalに。

デフォルトだとPlayerになっていて十字キーで自分で操作できます

スクリーンショット 2018-08-07 00.49.32.png

Brain TypeはPlayer, Heuristic, External, Internalの4種類

Playerは人間が動かす

Heuristicはコードで動かす

ExternalはUnityEditor上もしくはコンソールからの起動で自動で学習させる

Internalは学習させたデータを使って動かす

BuildSettingにシーンを追加してmacでビルド

このまま実行してもボールが落ちるだけなので学習させる


必要なPythonのパッケージのインストール

ターミナルにてml-agents-masterのpythonフォルダに移動

pip install .

上記コマンドを実行

すると色々インストールされる。

スクリーンショット 2018-08-07 01.10.14.png

pythonフォルダの状態で

python3 learn.py <ビルドしたappのパス> --train

上記コマンドを実行するとappが立ち上がって勉強し始める

study.gif

しばらく放置すると落とさなくなってきてる!

study2.gif

デフォルトだとStepが50000だから結構ほっとかないと終わらなかった。

もっと少なくすればよかった --save-freq=回数 のパラメータを設定してあげれば変更可能

終わるとball3D_ppo.bytesがml-agents-master/python/models/ppoに出力されます

スクリーンショット 2018-08-07 01.26.29.png

ソースとかまだ読んでないからあまり中身わかってないけど・・・

一旦ここまで。