5月7日から9日に東京国際フォーラムで行われた Unite 2018 Tokyo の個別セッションをまた1つ紹介します。
今回紹介するのは Unity Technologies で Head of Global Evangelism Content を務める Mike Geig が行った「Unity for ディープ・ラーニング:ツールキット『ML-Agents』のご紹介 」。
最近ホットな話題の機会学習です。

彼はこのセッションで、Unity がリリースしているUnity 上で深層学習モデルのトレーニングとデプロイを可能にするツール ML-Agents を用いて、機械学習のデモや設定法を詳しく説明しています。
ML-Agents に関する個別セッションですので、Keynote などで出る単なるトレーニング後の結果デモだけでなく、設定、トレーニングの実施、トレーニング後のAIの使用と順々に詳しく説明してくれています。
(本セッションの映像は以下から見られます。)


彼は実際は Unity のエバンジェリストの偉い方で、AI の専門家と言うわけではないのですが、実演をたくさん行ってくれてとても分かりやすかったです。さすがエバンジェリストの親分です。

【Imitation Learning のデモ】
では、このセッションの内容ですが、まずは Keynote でもよく Unity の機械学習の取り組みとして紹介されている Imitation Learning のデモ映像が流されます。
この映像は機械学習の例としてはとても分かりやすく、絵になる良い例ですよね。
カーレースの車を左側が人間が操り、その人間の操作を学習しているのが右側の車となります。
Unite 2018 Tokyo AI_01(セッション映像の切抜)

彼曰く、25秒の学習で人間のように難しいS字カーブも曲がれるようになり、数分で完璧に人間レベルに到達できたとのこと。

【機械学習の基本説明】
そして、この分かりやすいデモ映像を流してから、機械学習の基本説明に入ります。
なぜ機械学習を Unity で行う必要があるか。
それは、機械学習を行う環境は「Visual Complexity(見た目の複雑さ)」「Physical Complexity(物理的な複雑さ)」「Cognitive Complexity(認識性に関する複雑さ)」を満たしている必要があり、Unity の作り出す3D,2Dゲームの空間は、それら全てを満たした環境を簡単に実現できるためであると。
Unite 2018 Tokyo AI_02(セッション映像の切抜)

うん。確かにその通り。機械学習と Unity はとても親和性が高いですね。

そして、Unityの機械学習のシステム構成を説明。
Unite や Unityブログ、ML-Agents の解説等、いろいろなところで掲載されている以下の構成図を使って、Agent、Brain、Academy の各コンポーネントを説明。
Unite 2018 Tokyo AI_03(セッション映像の切抜)

【ML-Agents の具体的な設定法の説明】
ここから、本題の ML-Agents の具体的な設定法が説明されます。
冒頭に紹介した Imitation Learning のカーレースを例に、細かな設定法が詳しく説明されました。
ML-Agents のフォルダ構成の説明、Project Setting の設定での注意点。
そして、Basic Academyコンポーネント、Brainコンポーネントの設定法を詳しく説明。
このデモケースでのソースで重要な修正ポイントとして、Agent の動きを記述する AgentAction、
Ray を Cast して結果を取得している CollectObservation、Agent が Faild したときに呼び出される AgentReset を説明。

設定が終わると、トレーニング自体のデモを実施。
彼のその場での操作を Imitation Learning させ、最初のデモのように30秒くらいで、実際にうまく走れるようになりました。

学習のデモ後、学習した bytesファイルを unity に取り込みます。
その取り込み方法を説明して、最後に学習した AIを使って車を走らせます。数分の学習でとてもうまく走っています。
最後の結果だけでなく、学習部分も含めて一連の流れと、個々の設定法を見るととても理解が深まります。

AI関連は自分の一番興味がある部分ですので、この紹介記事、けっこう詳しく書こうかと思います。前半、後半に分けて、できるだけ多くの内容を載せたいと思います。
と言うことで、つづきは次回。


Sponsored Link