Unityではじめる機械学習・強化学習 Unity ML-Agents実践ゲームプログラミング その2
CHAPTER 2 サンプルの学習環境の実行
環境設定
Python (Anaconda)
機械学習と言えばPythonですね。Unityで機械学習を行うためにPythonのスクリプトを使うのでPythonが必要となります。また、Pythonのライブラリを使うことからAnacondaを使うことが推奨されます。
これから先はPythonの知識がないと詰んでしまいます。
だから最近、Pythonの勉強をしていたんですね。
これがメガトン構文です。
Unity ML-Agents
Unityで機械学習させるためのアセットとPythonのスクリプトです。
TesorFlowSharp plugin
TensorFlowSharp plugin をクリックしてダウンロードできます。
動かしてみる
参考にしたサイト。
Anaconda Navigator でターミナルを開いて、
pyhon3 learn.py ball3d.app --train
を入力すると本に書いてあったんですが、僕の環境はwindowsなので、
python learn.py ball3d.exe --train
とすると動きました。まあ、ml-agentsのpythonフォルダに3dBallを保存していなかったので、具体的には下のようになっています。
(mlagents) C:\FreeSoft\ml-agents-master\python>python learn.py C:\MyWoks\UnityMLAgents\3Dball\3Dball.exe --train
今気が付いたんですけど、MyWoksになっていますね。
ん?そもそも入力はなんなんだ?
TensorBoardで学習状況を確認する
Localhost: 6006 でTensorBoardを見ることができるようです。
各項目の説明は下から。
Lessonはカリキュラム学習ではないので、0のままです。
cumulative reward: 累積報酬はスッテプ数が増加するにつれて増加していきます。
entropy: 減少してくことが好ましいです。
episode length: 3DBallのようなゲームの実行時間が長ければプラスの評価の場合、増加していくことが望ましいです。
learnin rate: 学習率は減少してくことが望ましいです。
policy loss: 学習成功時に減少するので、継続的に減少することが望ましいです。
value estimates: 報酬の予測値です。これは増加していくことが望ましいです。
value loss: 予測する報酬と実際の報酬との差です。最終的に減少することが望ましいです。
学習成果
感想
何がおこっているんだ・・・。
何を入力しているのか分からないので、何を学習させているのか分かりません。多分、ボールの位置と板の傾きから入力を決めていると思うんですが、例題としては難しいような気がします。
倒立振子より問題のスケールが大きいよね?
次の章は迷路ゲームなのでまだ分かりやすいと思います。