Search Unity

私達は、Unity を人工知能(AI)研究の主要なプラットフォームにするための取り組みを熱心に進めています。ここ数週間のうちに私達は、複数の研究者グループが Unity の可能性に気付き利用していることを知りました。OpenAI が Unity を使用してロボットの手の「握る」タスクのトレーニングを行っているほか、カリフォルニア大学バークレー校のあるグループは好奇心ベースの新しい学習アプローチの実験に Unity を使用しています。本日は、私達の「AI 研究コミュニティを支える」使命を果たすための一歩として、更なる改良とリソースの公開をお知らせできることを嬉しく思います。

このリリースには、より柔軟なアクション指定およびカリキュラム学習が可能な新バージョンの ML-Agents toolkit(v0.5)のほか、Unity の執筆した ML-Agents および Unity プラットフォームに関する研究論文、トレーニングワークフローに ML-Agents 環境をより簡単に統合するための研究者向け Gym インターフェース、そして深層強化学習研究者に使用されているContinuous Control(連続制御)ベンチマークのいくつかを再現する新しい学習環境のセットが含まれいます。

AI プラットフォームとしての Unity についての研究論文

Unity と ML-Agents Toolkit の研究プラットフォームとしての導入数が増加するに伴い、このプラットフォームの概要をまとめた参照可能な論文を求める声が数多く寄せられました。ここに、待ちに待たれた論文『Unity: A General Platform for Intelligent Agents』のプレプリントがついに公開となりました。これは arXiv でご入手可能となっています。この参照論文には、他の類似プラットフォームの性能を基にそれらを更に拡張したシミュレーションプラットフォームとしての Unity のビジョンのご紹介や、研究ツールとしての ML-Agents Toolkit の(基本的な設計と追加的機能の両方をカバーした)概要説明が含まれています。また Proximal Policy Optimization アルゴリズムを使用したサンプル環境のベンチマーク結果と、比較参照用に Unity 従業員によるヒューマンベンチマーク結果の小さなコホートも提供されています。これらの基準値が整った状態で、研究者グループの皆様がこれを凌ぐ結果を得られ、出来るだけ多くのサンプル環境で「超人的な」パフォーマンスを実現されることを願っております。

Gym インターフェースへの対応

ML-Agents Toolkit の初版リリース時には、学習環境とのインタラクト用にカスタムの Python API を提供しました。これは、既存の慣習に制約を受けない強力で柔軟な環境とのインタラクト方法を提供したかったからです。これにより、複雑な混合観測空間を用いた、マルチエージェントおよびマルチブレイン学習を扱うシナリオが可能になりました。またリサーチコミュニティの多くの方から、こうした環境用の Gym ラッパーについての質問が寄せられました。Gym とは、シミュレーション環境とインタラクトするための標準化された一般的な方法のひとつです。ですから、ここに Unity 環境とのインタラクトに使用できる Gym インターフェースの完成をご報告できることは喜ばしいことです。Gym の使用に関わる実験パイプラインを構築された研究者の皆様は、他の Gym 環境を Unity のものに簡単に取り換えられるようになります。Gym インターフェースについての詳細は、本パッケージに関するページをご覧ください。

Marathon Environments のご紹介

この一年、私達のコミュニティメンバーである Joe Booth 氏が、深層強化学習関連の文献で一般的に使用されている Continuous Control(連続制御)ベンチマークの古典的なセットを、ML-Agents Toolkit を使用して Unity 環境として再実装する作業に取り組んで来ました。これらの環境には、DeepMind Control Suite および OpenAI Gym 内で使用可能な環境に基づいた、Walker、Hopper、Humanoid、Ant が含まれます。これらの環境は、エージェントが出来るだけ速く一貫して前方に走れるようにすることを目標とするものであるため、集合的に「Marathon Environments」と呼ばれています。これは、リサーチコミュニティの皆様が、このような古典的なタスクでアルゴリズムのベンチマーキングを手軽に開始していただけるようにご提供するものです。

これは、ゲーム業界のベテランから機械学習研究者に転身した Joe Booth 氏の貢献によって実現されました。こちらをクリックしてこれらの環境をダウンロードし、是非ご自分でお試しになってみてください。以下に、Joe 氏がこれをどのように実現したか、彼自らの言葉による説明を引用します。

Joe 氏自身の言葉

「私は、OpenAIDeepMind や、その他のツールによる連続制御と移動に関する研究が Unity や PhysX などのモダンなゲームエンジンにも応用可能かどうか確認したかったのです。『ゲームデザイナーが希望のアニメーションの YouTube URL を入力すれば、AI がそれを変化する環境に動的に反応しながら模倣する』という未来を想像してください ― 最高にクールですよね!これらのベンチマークを Unity 上で再作成するためのフレームワークを作成すれば、段階的なステップを踏むことが可能となります。

論文や小説のアイデアを実装したい場合、まず Hopper などのシンプルなモデルでテストを行うことで、Walker や Humanoid などのより複雑なモデルにスケールアップ可能な結果を得られるという自信を持つことができます。動的環境の習得コントローラー、およびスタイル変換に関する研究の中で、私がこの段階的アプローチをどのように使用しているかご確認いただけます。

他の方がどのように Marathon Environments を使用されるか拝見できるのを楽しみにしています。Gym の追加により、HERMAML など様々な最先端のアルゴリズムが ML-Agents に導入可能となり、私はこうした取り組みに喜んで提携・協力したいと思っています。」

その他の新機能

離散的アクション空間の拡張 ― 離散的アクション空間の機能の仕組みを変更し、この空間タイプを使用しているエージェントが一度に複数のアクション選択を行えるようにしました。以前のバージョンの ML-Agents ではエージェントは一度にひとつの離散的アクションしか選択できませんでしたが、v0.5 ではエージェント用のアクションブランチを作成できます。各ブランチがそれぞれ異なる(固定)数の選択可能なアクションを含むことができます。ランタイム中、選択がリクエストされた時に、エージェントは各ブランチ毎に 1 つのアクションを選択します。これは具体的に言うと、「WallJump」も現在そうなっているように、選択された方向への移動とジャンプの両方をエージェントが実行できるようになったということです。また環境「BananaCollector」も修正され、この環境内のエージェントは移動・方向転換・(可能な状況での)レーザー発射を行えるようになりました。

離散的アクションマスキング ― 特定の条件下では、エージェントは特定のアクションを実行不可にされる必要があります。例えば、空中にいるエージェントがジャンプするのは非合理的です。v0.5 では、エージェントの次の決定に関して「不可能なアクション」を指定できるようになりました。観測を収集する時に、1 つまたは複数の「不可能なアクション」をエージェントのアクションブランチ毎に(必要であれば)指定することができます。そのエージェントは次の決定ステップでそれらのアクションを一切実行しなくなります。これにより、アクションメソッド内に追加的なコードを記述することなしに、エージェントが「不可能なアクション」を実行するのを防ぐことができます。

環境「GridWorld」 を修正し、エージェントが壁の中に向かって歩こうとしてしまう結果となるアクションをマスクできるようにしました。マスクを行うと、エージェントがグリッド探索中に時間を無駄にしなくなるので、学習スピードが大幅にアップします。下のグラフは、アクションマスキングを使用した場合(青)と使用していない場合(赤)の学習プロセスを比較したものです。

メタカリキュラム ― カリキュラム学習は、エージェントが育つに従って次第に難易度が高くなる環境を作成できる、素晴らしい機能です。v0.2 で初公開されたこの機能が、v0.5 で改良され、メタカリキュラムが使用可能になりました。これを使用すると、複数のブレインを使用する環境内でカリキュラムのシナリオを作成することができます。これは、ブレイン毎にカリキュラムを別々に指定することで行えます。複数の種類のエージェントがそれぞれのペースで学習できる学習環境の作成が可能になりました。環境「WallJump」用のカリキュラムの例も含まれています。

まとめ

この新しいリソースと機能改良が研究コミュニティの皆様にお役立ていただけることを願っております。私達は今後もたゆまぬ取り組みとリリースによって、研究とゲーム開発者コミュニティの両方をサポートし続けます。コメントやフィードバック、ご質問をお持ちの方は GitHub の Issues のページまたはメール(ml-agents@unity3d.com)にてお気軽にご連絡ください。ハッピー・トレーニング!

コメント受付を終了しました。

  1. Hi, thanks for the blog post. I’m using the last version of ml-agents and I’m updating myself on the newest version. I’m going through the paper right now. There is a typo – We next outline the functionality
    and tools provided by our open source toolkit for creating high-quality and flexible simulation
    environments using Unity, and finally provide a set of benchmark results on our EXAMPLE EXAMPLE
    learning environments.
    (Example is repeated)
    Ml-agents is an amazing library.

    1. Arthur Juliani

      10月 11, 2018 6:38 pm

      Hi Divij,

      Thanks for pointing out the typo. It will be corrected in a future version of the paper.

  2. Amlesh @7091

  3. Tinder for pc

    9月 18, 2018 11:20 am

    Download Now

  4. James Morris

    9月 12, 2018 9:23 am

    I strongly urge pytorch to get first class support. In the mean time, with the option to train while ‘in’ /showing the environment, is that the best way to use pytorch?

    1. Arthur Juliani

      9月 12, 2018 7:31 pm

      Hi James. It depends on what you mean by support. It is currently possible to interact with Unity environments using a generic python api, or a gym wrapper. From there you are free to use pytorch to train models. If you are asking about integrating pytorch models into games for deployment, we are working on expanding the kinds of models/backends supported beyond TensorFlow.

  5. Good stuff!