2019年3月24日Unityで機械学習をしてみたい・・・ML-Agentsのサンプルシーンは動かせたけど、その先何をすればいいのかわからない・・・こんな疑問を解消したい!そんな思いでこの記事を書きました。この記事では、UnityでML-Agentsを利用し機械学習をするまでの具体的な流れをまとめていきます。現時点で以下のようなシーンを作れるようになったので、そこで学んだ実装までの流れを解説します。同様の機能は、以下のリンク先のシーンを再現したものになります。https://github.com/Unity-Technologies/ml-agents/blob/master/docs/Learning-Environment-Create-New.mdこの記事の目標は、機械学習するためのコードの書き方を学ぶことです。どこから手を付けていいかわからない人はぜひ学んでいってください!ML-Agentsをインストールし、サンプルシーンを機械学習できている状況から話を始めます。インストールができてない方は、以下の記事を参考にML-Agentsの設定をしてきてくださいね。機械学習実装までの流れML-Agentsを利用して機械学習を実装するまでの具体的な流れを解説します。機械学習に必要なのは、「Academy」、「Brain」、「Agent」の3つです。この順で、作成していきます。それぞれの中身はどんな風になっているのか、詳しく見ていきましょう。1.「Academy」を作成まず一番初めにつくるのが、「Academy」です。Academyは機械学習の方法や設定を決めることができます。Academyは機械学習の枠組みだと考えて差し支えないと思います。結論だけ言いますと、既にML-Agentsに含まれているクラスを引き継ぐことだけしておきましょう。ここら辺がややこしいのですが、ML-Agentsには「Academy」という名前のクラスが既に作成されています。機械学習をする際は、この「Academy」クラスを継承するだけで、簡単なものなら動かせます。具体的には、以下のメソッドをオーバーライド(上書き)することができます。各ステップ開始時に呼ばれる<Academy作成>1.空のGameObject作成→名前を「プロジェクト名Academy」に変更。BallAcademy」3.スクリプトを開き、以下のように記述する。2.で作成したスクリプトを1.で作成したGameObjectへ割り当てるこれでAcademyは作成完了です。公式サンプル程度のものなら、ここから何もいじらなくても動かせます。お次は「Brain」を作成していきましょう。「Academy」の次は、「Brain」を作成します。Brainはその名の通り「脳」の役割を持ちます。与えられた情報から最適な行動を決定するための部分です。具体的には、後述する「Agent」にて決められた行動から報酬が最大となるように、最適な行動を選択、実行します。Brainには、以下の3種類があります。Brainだけですね。Brainは実際に自分が動かすことができるので、シーンが正常に機能するかを確認することができます。Brainはまだ使ったことがないのでわかりません。申し訳ない...具体的なBrain作成方法は以下の通りです。<Brain作成>1.[Assets]>[Create]>[ML-Agents]>[Brain]から作成したいBrainを選択。Brainを作っておきましょう。Brainも同時に作っておきましょう。Brainと同じにしておかないとエラーがでますので注意してください。「Academy」、「Brain」ができました。最後に「Agent」を作成します。Agentは、アクションを行うオブジェクトのことを指します。Agentを機械学習することで最適な行動をとらせるように訓練していくわけですね。Agent作成の具体的な流れは以下のようになります。2.を1.へ割り当てるまずはAgentクラスの継承を忘れずにしておきましょう。{}BallAgentスクリプトには以下のようなメソッドを定義します。下記コードが私の作成した球を転がすAgentスクリプトのコードになります。サンプルシーンの「PushBlock」を参考に作成しました。Brainで動作の確認をし、サンプルシーンを機械学習させるのと同様の手順で学習できます。CollectObservationsメソッドによるState定義と、報酬の与え方が機械学習に大きな影響を与えるので、そこら辺を最適に設計することが大切です。■まとめいかがでしょうか。ML-Agentsで機械学習を実装する流れが少しでもイメージできたらすぐ試してみてください。私はサンプルシーンを自分で再現できるようになりました。次回は自作の機能も作ってみたいですね。ML-Agentsは2017年にベータ版が公開されたばかりなので、この記事を書いている2019年3月時点でも、まだまだ情報は少ない印象を受けます。この記事がお役に立てば幸いです。ML-Agents実践ゲームプログラミング」という書籍とサンプルシーンです。こちらの書籍を読めば、Brainの設定内容などが理解できるので、サンプルシーンを読み進めていくことができます。ML-Agentsについて書かれている書籍は、2019年3月時点でこの本だけですね。2018/08/03Amazon楽天ブックスYahooAmazonの情報を掲載しています最後まで読んでいただきありがとうございました。ML-AgentsでUnityちゃんを動かしてみた管理人プロフィール当サイト(your-3d.com)の管理人のゆあーさんと申します。このサイトでは、私がZBrushやunityなどで調べたことを共有出来たらいいなと思い開設しました。読んでくださった皆様のお役に立てたら幸いです。https://your-3d.booth.pm/プロフィールページ作りました。3d管理人のゆあーさんです。生まれは北国、現在は東京に住んでます。趣味はプログラミング、モデリング、あとブログです。このブログに書いている内容ですね。ゲームもたまにしてます。