Unity を検索

2021 年の Unity AI でのインターン報告:ML-Agents ツールキットで学習を加速する

2021年9月30日 カテゴリ: テクノロジー | 9 分 で読めます
computer rendering of ml agents all looking at a light with solid background and line graphed floor
computer rendering of ml agents all looking at a light with solid background and line graphed floor
取り上げているトピック
シェア

AI@Unity では、ロボット工学、コンピュータビジョン、機械学習の分野における素晴らしい研究や製品に取り組んでいます。今夏、Unity にやってきたインターン生は、実際の製品に影響を与える AI プロジェクトに取り組みました。

ML-Agents ツールキット は、研究者やゲーム開発者が強化学習(RL)を用いて Unity 環境でエージェントを構築し、訓練することを可能にします。RL は、エージェントがどのようにしてタスクを実行するかより、どのようなタスクを実行する必要があるかのほうを簡単に指定できる場合に有効です。エージェントは、環境からの観測とタスクの報酬信号を用いて、タスクを完了するための行動を自ら選択することを学習します。

2021 年の夏、Unity にやってきたインターン生は熱心に働き、Unity の活動に貴重な貢献をしてくれました。以下のセクションでは、インターン生たちのプロジェクトや経験についてご紹介します。

発見可能な振る舞いの多様性

Kolby Nottingham さん(コンピューターサイエンス専攻、カリフォルニア大学アーバイン校)

エージェントを実世界またはシミュレーションされた世界に展開する時に、ユーザーはエージェントがどのようにタスクを完了するかを制御したいと思うことがよくあります。ユーザーはタスクが成功するだけでなく、ある特定の方法で実行されてほしいと考えています。こうした場合に望ましい動作を実現するのは難しく、環境パラメーターを調整しながらエージェントの再トレーニングを繰り返す必要が生じることも多くなります。このプロジェクトでは、トレーニング時に様々な振る舞いを学習し、エンドユーザーが好みの振る舞いを選択できるような方法を模索しています。

Maximum Entropy Diverse Exploration(MEDE)を実装し、ML-Agents ツールキットのタスクに適用しています。この方法では、学習中にエージェントがさまざまな方法でタスクを解決することを促し、学習後にユーザーが学習した振る舞いのうちどれを使用するかを指定できるようにします。振る舞いはあらかじめ定義されているのではなく、自動的に発見されます。MEDE では、元のタスクを解決しつつ、できるだけ振る舞いが多様なものになるように促します。エージェントは、あるエージェントの経験が特定の振る舞いから来ている確率を予測する識別器の学習を行うことで、行動を学習します。そして MEDE は、識別器がエージェントがどの行動を使っているかを簡単に見分けられるように、エージェントに行動の動機を与えます。

オリジナルの MEDE アルゴリズムでは、連続的な空間から行動をサンプリングするエージェントのみをテストしていました。このプロジェクトの一環として、離散的または連続的なものと離散的なものを混ぜ合わせたアクションセットを持つエージェントを扱えるよう、MEDE を修正しました。MEDE に加えられた変更点は、学習の堅牢性を向上させるためのパラメータースケジュールと識別器ネットワークの正則化の追加です。MEDE は元々、エージェントが学習する振る舞いの数をユーザーが定義する必要がありましたが、私たちはMEDE を、取りうる値の連続的な範囲を持つ振る舞いを扱うように拡張しました。連続的な行動を扱う MEDE では、エージェントは事実上、無限の数の振る舞いを学習することができ、学習したすべての振る舞いの間をスムーズに行き来できます。実際には、スムーズな振る舞いの行き来を実現できるかは、現在のタスクに大きく依存します。この一連の作業の目標は、RL の専門知識を必要とする調整作業を軽減し、Unity 環境であれば RL を専門家でなくても利用できるようにすることをです。

ML-Agents におけるハイパーパラメーターの簡略化

Scott Jordan さん(コンピューターサイエンス専攻、マサチューセッツ大学)

diagram showing how to create a behavior with deep reinforcement learning

強化学習(RL)は、効果的に使用すれば、最小限のコードで複雑な振る舞いを学習し、ゲーム内のノンプレイアブルキャラクター(NPC)やボットの役割を果たすことができます。RL を用いてエージェントの行動を学習する際に必要かつ困難なことは、学習率やネットワークサイズなどのアルゴリズムのハイパーパラメーターを指定することです。これらのパラメーターは直感的ではなくまた不安定なため、誤った設定をすると望ましい振る舞いの学習を妨げてしまうことがあります。そのため、RL を上手く適用するためには、RL の専門知識だけでなく、試行錯誤が必要になることが多いのです。今回のプロジェクトでは、パフォーマンスを最大化するために必要な変更回数を減らすことを目的に、さまざまなハイパーパラメーターの関係を発見することに焦点を当てました。

このプロジェクトの主な貢献は、一般的に使われていて効率も良い RL アルゴリズムである近接方策最適化(Proximal Policy Optimization; PPO)を修正し、調整されることが最も多い 5 つのハイパーパラメーターのうち、ユーザーが調整する必要があるのは 2 つだけにすることです。5 つのパラメーターを「頻度」と「作業」の 2 つのグループに分けることで、ハイパーパラメーターの数を減らします。「頻度」はエージェントの行動をどのくらいの頻度で変化させるかを、「作業」は学習プロセスの各ステップでエージェントの行動をどのくらい変化させるかを設定します。さらに、変数間の関係がよりよく理解されているため、学習時の計算効率を最大化するためにハイパーパラメーターの一部を自動的に調整することができます。アルゴリズムの変更をテストするために、Unity のゲームを毎回再ビルドすることなく、報酬関数や並列シミュレーションの回数などの特性を変更できるカスタム環境(RL エージェントの学習に使用できる Unity のゲーム)を作りました。この成果が ML-Agents ツールキットに統合されれば、ユーザーはこれまでよりもずっと試行錯誤を少なくし、それほど敏感ではないパラメーターの微調整によって、良い振る舞いを学習させるようになるでしょう。

ML-Agents のためのコンピュータービジョンセンサー

Grant Bowlds さん(コンピュータサイエンス・数学専攻、ヴァンダービルト大学)

Image showing computer vision picking up and identifying objects in a scene

私は、Unity の ML-Agents ツールキットで使うコンピュータービジョン(CV)センサーを開発する機会を得ました。ML-Agents ツールキットは、研究者やゲーム開発者が強化学習(RL)を用いて Unity 環境でエージェントを構築し、訓練することを可能にします。特に、視覚や数値に基づいた観測を使う場合は高い効果を発揮します。目標までの距離や方向などの数値的な観測により、エージェントは非常に素早く学習することができますが、数値的な観測を使用することには限界があり、多様な問題領域に対応することはできません。視覚的な観測は、エージェントの状態や環境を定量化することが困難な状況に適しています。しかし、視覚的な観測を使う場合は、数値的な観測を用いる場合よりもゆっくりとしたペースで、より多くのトレーニングを行う必要があります。私は、クリエイターが事前に学習した自分の CV モデルの出力を観測値として使用できるセンサーを作りました。これにより、多少の帰納的なバイアスが発生しますが、優れた結果をもたらしつつ学習を高速化することができます。このセンサーにより、独自の CV モデルを強化学習に活用しようとする顧客にとって、ML-Agents ツールキットがより利用しやすいものになります。

私のプロジェクトで最も難しかったのは、複雑な機械学習のワークフローの構築と運用でした。パイプラインのどの時点でもエラーが発生する可能性があるため、デバッグは非常に困難でしたが、意図をもって作業を行い、効率的に問題を解決する方法を多く学ぶことができました。このプロジェクトの次のステップは、デモを作成し、それを ML-Agents 拡張のリリースに組み込むことです。今回のプロジェクトで最も良かった点は、利用可能な Unity 製品の幅広さです。Computer Vision Perception パッケージを使用して合成データを生成し、センサーの CV モデルをトレーニングしました。Barracuda パッケージを使用してモデルをサポートし、ML-Agents ツールキットと ML-Agents Cloud を使用して、センサーの作成とエージェントのトレーニングを行いました。

私たちのチームに参加しましょう

Unity を使って挑戦的な人工知能プロジェクトに取り組み、実社会での経験を積むことに興味がある方は、AI 関連職の採用情報ページをご覧ください。また、学生の方向けには大学生向けの採用情報ページにて、募集中のポジションの情報を公開しております。ML-Agents ツールキットの GitHub に上がっているデモやチュートリアルを見て、自宅で自分の届けたい体験を作り始めることができます。

2021年9月30日 カテゴリ: テクノロジー | 9 分 で読めます
取り上げているトピック