ゲーム開発エンジン「Unity」を使って強化学習!

2023年06月06日

どうもお久しぶりです、M2の松原です。 ここ数週間でだいぶ暑くなってしまいましたね。僕の部屋はデスクトップをフル稼働しているせいか、気温がいくつだろうが室温は容赦なく30℃を超えてしまっています。とはいえ6月中にエアコンを付けるのはなんだか地球に負けてしまっている気がする。と思い、多少身の危険を感じながらも扇風機で耐える日々を過ごしています。中学生の頃剣道部だった強みがここに来て発揮されましたね。良いことです。この記事をご覧の皆様は、そんな無駄な対抗心は燃やさずに、エアコンをガンガン使って日本の電力事業に貢献していきましょう。

さて、今回は僕の研究であるUnity ML-Agentsを使った強化学習についてのお話です。 僕は以前こちらの記事で紹介した通り、Unityの中でロボットを複数台設置して、目的地まで自律走行をさせるということをしてきました。しかし、これまでのシステムでは、汎用性が皆無という重大な欠点がありました。 よってそのシステムを進化させるべく、強化学習に手を出したという訳です。

とはいっても、こんなところで論文を書くような真似は死んでも嫌なので、学習経過やそのモデルを使った実際のUnity内での走行について軽く紹介しようと思います。 概要は、大きめの環境の中央付近に、ロボットを模した赤い立方体を適当にエリア分けした中にランダムで配置し、エージェントである青い立方体が左の小さい白い立方体を目指して走行するというものになります。 動画はそのまま記載できないらしいので、面倒だと思いますがクリックして見てみてください。 まずは学習初期から。

全く使い物になりませんね。しかしここから彼は凄まじい成長を遂げていきます。 それがこちらの学習中期です。 動きとしては中々悪くないものになってきました。 そこからまたしばらく学習を続けていくと… こんな風になります。

もうゴールまで到達できるようになりましたね。しかしまだ粗削りな部分があるので学習続行、最適な経路を走行するための最終調整が行われた学習後期がこちら

素晴らしいですね。右も左もわからなかったエージェントがこうして目的地まで走行してくれるようになると、我が子のように嬉しく思います。はじめてのおつかいの保護者の方々はこんな気持ちなのでしょうか。 以上が直近の研究内容になります。今月末に名古屋にて学会がありますので、そこに向けて仕上げていこうと思います。そのうち名古屋の記事も上がるのではないでしょうか。 それでは、どうもありがとうございました。

参考文献: https://unity.com/products/machine-learning-agents