見出し画像

Unityによる知性の育て方 | DeepMind

以下の記事を参考に書いてます。

Using Unity to Help Solve Intelligence | DeepMind

1. 概要

人工知能の研究において、最も重要な進捗状況は、幅広い環境で目標を達成するエージェントの能力です。このような環境を構築するための既存プラットフォームは、通常、それらが基盤となるテクノロジーによって制約されているため、進捗状況を評価するために必要なシナリオのサブセットしか利用できません。これらの欠点を克服するために、広く普及している汎用ゲームエンジンである「Unity」を使用して、より多様で複雑な仮想シミュレーションを作成する方法を紹介します。主に「強化学習」の分野での使用を目的として、環境のオーサリングを簡素化するために開発された概念とコンポーネントについて説明します。

また、実験結果の堅牢性と再現性を向上させるための、パッケージングと再配布環境の実用的なアプローチを紹介します。そして、他のソリューションと比べてUnityが多様であることを説明するために、公開した論文のアプローチで作成した環境を紹介します。Unityをニーズに適合させた方法から他の人がインスピレーションを得て、親しみやすさが増すにつれて、ますます多様で複雑な環境が、私達のアプローチから出現することを期待しています。

◎ DeepMindで構築したUnity環境

画像1

2. 多様な学習環境

AGI」(Artificial General Intelligence : 汎用型AI)を追求する中で、私達は「多様な学習環境」で目標を達成できるエージェントを育てることを目指しています。 私達が作成した環境をエージェントが学習する時、私達は継続的に新しい環境を作成して、まだテストされていない認知能力を調査する必要があります。

ゲームは常に人工知能(AI)の研究に課題をもたらしてきました。最も有名なのは、「バックギャモン」「チェス」「囲碁」などのボードゲームです。 「スペースインベーダー」「Quake III Arena」「Dota 2」「StarCraft II」などのビデオゲームも、最近AI研究で人気を博しています。ゲームは成功の明確な尺度があり、進行状況を経験的にレビューし、人間に対して直接ベンチマークできるため、題材として最適です。

「AGI」の研究が進むにつれて、より複雑なゲームに対する研究コミュニティの関心も高まります。同時に、個々のビデオゲームを研究環境に変換するために必要なエンジニアリング作業は管理が難しくなります。そのため、汎用ゲームエンジンは、幅広いインタラクティブ環境を作成するための最もスケーラブルな方法になります。

3. 汎用ゲームエンジン

「Minecraft」ベースの「ProjectMalmo」、「Doom」ベースの「ViZDoom」、「Quake IIIArena」ベースの「DeepMindLab」などのゲームエンジンでは、すでに多くの「AGI」の研究が行われています。これらのエンジンは、新しい環境をすばやく作成するためにスクリプト化できます。また、多くは古いハードウェア用に作成されているため、最新のハードウェアで非常に高速に実行でき、パフォーマンスのボトルネックを排除します。

しかし、これらのゲームエンジンにはいくつかの重要な機能がありません。たとえば、「DeepMind Lab」はナビゲーションの学習には優れていますが、オブジェクトがどのように移動して相互作用するかなどの常識的な概念の学習には適していません。

4. Unity

「DeepMind」では、柔軟で機能豊富なゲームエンジンである「Unity」を使用しています。 「Unity」の現実的な物理シミュレーションにより、エージェントは現実の世界により密接に基づいた環境を経験できます。最新のレンダリングパイプラインは、リアルな照明や影など、より微妙な視覚的な手がかりを提供します。UnityスクリプトはC#で記述されており、読みやすく、特注のエンジンとは異なり、全ての機能にアクセスできます。マルチプラットフォームのサポートにより、自宅のラップトップで、またはGoogleのデータセンターで大規模に環境を実行できます。最後に、Unityエンジンが進化し続けるにつれて、独自のエンジニアリング時間を大量に費やすことなく、将来を見据えたものにすることができます。

「Unity」には、既存ゲームを学習環境として利用できるようにする作業を手軽に行える、「ML-Agents」と呼ばれる機械学習ツールキットが提供されています。「DeepMind」は、大規模に実行される多種多様な異種環境の構築に重点を置いているため、代わりに「dm_env_rpc」を使用します(以下を参照)。

◎ DeepMindで作成されたUnity環境

画像2

5. 従来のビデオゲームとの違い

従来のビデオゲームはリアルタイムでレンダリングされます。画面上の1秒は、シミュレーションでは1秒に相当します。しかし、AI研究者にとって、ゲームは単なるデータの流れです。多くの場合、ゲームはリアルタイムよりもはるかに高速に処理できます。ゲームの速度が刻々と大きく変化しても問題はありません。

さらに、多くの強化学習アルゴリズムは複数のインスタンスに対応します。つまり、1つのAIで数千のゲームを同時に実行し、それらから一度に学習することができます。

このため、レイテンシではなくスループットを最適化します。つまり、ゲームを可能な限り何度でも更新し、それらの更新を一定の速度で生成することを心配する必要はありません。1台のコンピュータで複数のゲームを実行し、プロセッサーコアごとに1つのゲームを実行します。従来のゲームメーカーに共通の頭痛の種であるガベージコレクションなどの機能によって引き起こされるストールは、ゲームが一般的に高速に実行される限り、私たちにとっては問題ではありません。

6. コンテナ化とdm_env_rpc

ゲームは、プレーヤーが見たり聞いたりできるように画像、テキスト、およびサウンドを出力し、ある種のゲームコントローラーから入力コマンドを受け取ります。このデータの構造は、AI研究者にとって重要です。 たとえば、テキストは通常、画面に描画されるのではなく、個別に表示されます。 このデータ形式の柔軟性は非常に重要であるため、環境とエージェントの境界として機能する「dm_env_rpc」という新しいオープンソースライブラリを作成しました。

dm_env_rpc」を使用することで、環境をコンテナ化し、公開することができます。コンテナ化とは、Dockerなどのテクノロジーを使用してプリコンパイルされた環境バイナリをパッケージ化することを意味します。コンテナ化により、私たちの研究を独立して検証することができます。コンパイラやオペレーティングシステムの違いによって混乱する可能性があるオープンソースよりも、実験を再現するための信頼性が高く便利な方法です。環境をコンテナ化する方法の詳細については、「dm_memorytasks」に関する作業を参照してください。

7. 関連



この記事が気に入ったらサポートをしてみませんか?