3月19日から3月23日にサンフランシスコで行われたGDC(Game Developers Conference)に関して、Unity の Keynoteの部分は以前 紹介記事を書きました。
Unity Keynote in GDC2018

その際、より小規模な技術セッションが開かれ、それらの多くが Youtube で公開されております。
今回はその中で自分が気になったセッションの1つ、Danny Lange による「Unity Machine Learning: ML Agents」のセッションを紹介いたします。
スピーカーは VP of Machine Learning and AI の Danny Lange(彼は Keynote の AI のパートでもプレゼンをしていました)と、Lead Engineer on ML-Agents の Arthur Juliani です。

実際の Youtube に公開されている映像は以下のリンクから確認できます。
 
まず、Danny Lange が、AI の基本的なことを説明していました。
ちなみに、彼は現在 Unity の Machine Learning のトップなわけですが、以前は Uber で Machine Learning のトップを勤め、その前は Amazon、その前は Microsoft と、各社で Machine Learning のトップとして活躍してきた Marching Learning 界の大物ですね。
彼のプレゼンパートは AI とは何か? Intelligence の定義は? かなり Academic な始まり方です。
ゲームエンジンは Intelligence に影響を与える環境を作り出すのにとても適していると言うようなはなし。

そして Unity に関して、より具体的に Unity ML-Agents とは、どんな構成となっており、何ができるかということが、Arthur Juliani より説明されました。
私はもともと Unity で機械学習をどのように使えるかと言う部分のイメージをわかせたかったので、こちらのほうがとても興味深かったです。
そちらの内容は以下のようなものでした。

まず、具体的に Unity ML-Agents を使う際のワークフローの説明。
ざっくり言うと以下のような感じ。
1. Unityで環境を構築する
2. Paython, TensorFlow を用いて Agent のトレーニングをする
3. その Agent を Unity の環境に埋め込む
GDC2018_AI_01 (プレゼン資料より)

そして、ここからが私が一番聞きたかったところ。彼からいくつかの Unity ML-Agents で行った機械学習の例が紹介されました。
(以下にあるイメージは全て、本Sessionで使われていたデモ映像からの切り抜きです。)

1.Reinforcement Learning の例 ①
10 Agents と1 Brain:独立した報酬
ゴール:出来るだけ速く遠くまで前に移動する
報酬:前への速度に対してプラスの報酬
GDC2018_AI_02(デモ映像より)

2.Reinforcement Learning の例 ②
2 Agents と1 Brain:独立した報酬
ゴール:できるだけ長くラリーを続ける
報酬:Net をうまく越えてプラス0.1、ボールを落として マイナス 0.1
GDC2018_AI_03(デモ映像より)

3.Reinforcement Learningの例 ③
4 Agents と Multi Brain:競い合いでの報酬
ゴール(Striker):相手からゴールを獲得
ゴール(Keeper):相手の攻撃からゴールを守りきる
報酬(Striker):自分のチームがゴールを獲得 プラス1、相手チームがゴールを獲得 マイナス 0.1
報酬(Keeper):相手チームがゴールを獲得 マイナス1、自分のチームがゴールを獲得 プラス0.1
 GDC2018_AI_04(デモ映像より)

4.Curriculum Learning の例
人間の学習方法と同じように、簡単なタスクから徐々に難しいタスクを学習する。
GDC2018_AI_05(デモ映像より)

5.Imitation Learning の例
Keynote で Danny の AI の説明で紹介された。
人がデモを行い、AI がそこから学ぶ。
(デモ映像では左側が人が操作、右側が AI で人の操作から学習している。)
 GDC2018_AI_06(デモ映像より)

6.On-demand Decision Making の例
青いオブジェクトがバナナに当たるとボーナス
弾む瞬間にどちらに飛ぶかの Decision Making をしているとのこと。
GDC2018_AI_07(デモ映像より)

Unity の Unity ML-Agents、前から まずは触ってみたかったのですが、使い道がいまいちイメージできずにいました。
今回のセッションではかなり実験的な例のみですが いくつか分かりやすい例が紹介され、なんとなくUnity ML-Agents のイメージはわきました。
次は、ゲームやゲーム以外の目的でも実際に使ってリリースする段階にまできたものの例が見たいですね。その応用例は自分でも考えて試してみます。

Sponsored Link