6月4日 に Unityシンガポール 主催の勉強会Machine Learning Business Workshopと言う勉強会に参加してきました。

内容は Unity の機械学習ライブラリである ML-Agents基本的な技術説明と、Unityの機械学習がどのような使われ方がされているかの事例紹介でした。
ML-Agents_01

講師は、技術説明に関しては Technical Evangelist の Marek Marchlewicz が、事例紹介は営業の Stijn De Keyser です。

【本記事の内容】
 1.営業からのOpeningトーク
 2.ML-Agentsの基本技術説明
 3.ML-AgentsのGameへの適用事例
 4.Non-GamingでのUnityの有効性
 5.Non-GamingでのML-Agents使用事例紹介


【1. 営業からのOpeningトーク】

まず、営業の Stijn から Unite の最初に良くある Unity のシェアなんかの数字の紹介。

今回のテーマの機械学習は Non-Game での利用も Unity は積極的に押していることから、Game から Non-Game への Unity の利用は拡大してきていることの図。これもどこかの Unite で見たことがありますが。
ML-Agents_02

そして、Unity 使用事例の画像。IKEA の ARアプリも Unity だったんですね。
ML-Agents_03


【2. ML-Agentsの基本技術説明】

ここからは Technical Evangelist の Marek が機械学習自体や Unity ML-Agents について解説してくれました。

まず、機械学習とは と言うところから。さすがに、ここに来た人達がそこから聞きたいとは思ってなかったと思いますが。(基本説明の詳細はここでは省きます。)
ML-Agents_04
ML-Agents_05
  
そして、Unity の機械学習ライブラリ ML-Agents の基本説明。
ML-Agents_06

まあこれも、ML-Agents を使ったあることがある人にとっては基本の基本の、ML-Agents は TensorFlow を使用するとか、学習手法として「教師あり学習」「教師なし学習」「強化学習」「模倣学習」「カリキュラム学習」等あるとかの説明。
ML-Agents_07
ML-Agents_08


 
【3. ML-AgentsのGameへの適用事例】

そして、Game上での ML-Agents 使用デモ。まず、2つのとてもシンプルなゲームへの適用例がデモされました。

1つは、ランダムに現れるキューブにうまくボールを当てるゲームへの適用。
もう1つは、重力で落下するヘリコプターをクリックで上昇させ、決まった高さでホバリングさせるゲームへの適用。
ML-Agents_09

そして、いくつか ML-Agents に含まれるサンプルゲームが紹介されました。
ML-Agents_10


【4. Non-GamingでのUnityの有効性】

そして、再度営業の Stijn がマイクをとり、Non-Gaming 産業での Unity、ML-Agents の使用に関して説明。

実際、今回の話で一番興味深かったのはこのパートでしたね。他の話はよく知られた話でした。この Non-Gaming 産業での利用も話は聞いていましたが、あまりネット上なんかに情報がなかったので。
ML-Agents_11

Autonomous Vehicle での Computer Vision について、現実世界のデータを使用する方法は、Training Set として事例を集め Training をし、評価を行う形となる。
ML-Agents_12

その Autonomous Vehicle に関して現実世界のデータを使用して Trainingデータを集めるにはとてもお金がかかり、かつ実際に発生したデータしか集められない
ML-Agents_13

そして、実際に起こりうる全ての状況を、リアルな世界でテストするのは不可能である。例えば、以下のような異常な状況。

確かに、異常。高速道路にカートに乗ったおじさんが遊びにやってくる(左上)のも、道を戦車が突然横断する(右上)のも、リアルな世界でテストできますかと言うところですね。
ML-Agents_14

このようなシミュレーションに Unity がなぜ最適か?

・Unityは、Real-time 3D Engine である。
:現実世界の物体と同じように3D空間で扱え、Unityの Physicsを利用して現実世界のセンサーを再現できる。

・Unityは、Open Platform であり、Asset Store も充実。
:既存のAssetを使って容易に環境を実現したり、大きな開発者コミュニティがあるので問題が起きた場合の対処が可能。

・Unity には各産業をサポートする組織がある。
ML-Agents_15



【5. Non-GamingでのML-Agents使用事例紹介】

そして、Non-Gaming での Unity、ML-Agents を使用したシミュレーションの使用事例を2つ紹介。

まず、1つ目が 自動車制御のシミュレーション に関して。

SynCity とは CVEDIA が提供するシミュレーション用の Dataset です。3Dモデルで構築されたシミュレーション用の街を、明るさや天気も変えながら各種シミュレーションに使用可能。その SynCity を利用して Unity上で自動車制御のシミュレーションを実施。
ML-Agents_16

中国の Baiduはそれらを使用して車の自動運転のシミュレーションを実施しているそうです。
昼間や夜等 異なる環境でのシミュレーションを実施。
ML-Agents_17

Unityの機能を利用して各種センサーを再現してシミュレーション
ML-Agents_18


次に、Smart City のシミュレーション への活用。

Unity の Seattle のオフィスがある Bellevue と協力して行っているプロジェクト。
街を移すカメラの映像を解析して状況を認識するための Computer Vision の実証プロジェクト

その状況を機械学習するのに、現実世界で全ての状況・条件の映像を集めきれるわけはないので、Unity上の 3D空間を使用してシミュレーション。それを Unity内のカメラで映した映像で Computer Vision の機械学習をしていくわけです。
ML-Agents_19

ML-Agents_20


なるほど。
3Dゲームエンジンである Unityはリアルな 仮想3D空間を作るのに優れている。
それを利用して、リアルタイム3D映像作成なんかに多く使われているようですが、3Dシミュレーションにも使われてきているのですね。
そこにこの Unity ML-Agents の機械学習が活かされていると。

Unite の Keynote でもよく言われておりますが、Unity はゲーム以外の産業へかなり力を入れているようですね。Unityユーザーとしてはとても喜ばしいことです。


Sponsored Link