Unityを使用して知能を解決するための利用
'Unityを利用した知能解決'
幅広い環境
人工汎用知能(AGI)の追求において、私たちは幅広い環境で目標を達成できるエージェントを作り出すことを目指しています。私たちのエージェントが私たちが作り出す環境をマスターするにつれて、未だ試験されていない認知能力を探求するために新たな環境を継続的に作り出さなければなりません。
ゲームは人工知能(AI)研究において常に挑戦を提供してきました。特にバックギャモン、チェス、囲碁などのボードゲームが有名です。最近では、スペースインベーダーやQuake III Arena、Dota 2、StarCraft IIなどのビデオゲームもAI研究で人気があります。ゲームは成功の明確な尺度を持つため、進捗状況を経験的に検証し、人間と直接的にベンチマークすることができます。
AGI研究が進むにつれて、より複雑なゲームに対する研究コミュニティの関心も高まっています。同時に、個々のビデオゲームを研究環境に変換するためのエンジニアリングの努力は管理が難しくなっています。汎用のゲームエンジンは、幅広い対話型環境を作成する最もスケーラブルな方法としてますます重要になっています。
汎用ゲームエンジン
Project Malmo(Minecraftをベースにしたもの)、ViZDoom(Doomをベースにしたもの)、DeepMind Lab(Quake III Arenaをベースにしたもの)など、ゲームエンジンでのAGI研究は既に多く行われています。これらのエンジンはスクリプト化され、迅速に新しい環境を作成することができます。また、古いハードウェア向けに作成されたものが多いため、現代のハードウェア上で非常に高速に実行することができ、環境自体がパフォーマンスのボトルネックになることはありません。
ただし、これらのゲームエンジンには重要な機能が欠けています。例えば、DeepMind Labはナビゲーションの学習に優れていますが、オブジェクトの移動や相互作用のような常識的な概念の学習には適していません。
Unity
DeepMindでは、柔軟で機能豊富なゲームエンジンであるUnityを使用しています。Unityのリアルな物理シミュレーションにより、エージェントは現実世界により密接に結び付いた環境を体験することができます。現代のレンダリングパイプラインは、リアルな照明や影のような微妙な視覚的な手がかりを提供します。UnityスクリプトはC#で記述されており、読みやすく、専用のエンジンとは異なり、すべてのゲームエンジンの機能にアクセスできます。マルチプラットフォーム対応により、自宅のノートパソコンやGoogleのデータセンターで環境を実行することができます。最後に、Unityエンジンが進化し続けることで、自身のエンジニアリングの時間を大量に費やすことなく将来に対応することができます。
Unityには、既存のゲームを学習環境として利用しやすくするための使用準備が整った機械学習ツールキットであるML-Agentsも含まれています。DeepMindでは、スケールで実行される様々な異種環境を構築することに重点を置いているため、dm_env_rpcを使用しています(以下を参照)。
従来のゲームとの違い
従来のビデオゲームはリアルタイムでレンダリングされます。つまり、画面上の1秒がシミュレーション上の1秒に等しいということです。しかし、AI研究者にとっては、ゲームは単なるデータのストリームです。ゲームは通常、リアルタイムよりもはるかに高速に処理できる場合があり、ゲームのスピードが瞬間的に大きく変動しても問題ありません。
さらに、多くの強化学習アルゴリズムは複数のインスタンスでスケールします。つまり、1つのAIが同時に数千のゲームをプレイし、それらすべてから学習することができます。
そのため、私たちはレイテンシではなくスループットを最適化しています。つまり、ゲームをできるだけ多く更新し、一定のレートでそれらの更新を生成することにはあまり気を使いません。1つのコンピュータで複数のゲームを実行し、1つのプロセッサコアあたり1つのゲームを実行します。従来のゲームメーカーにとってのよくある悩みであるガベージコレクションなどが原因で発生する停止は、ゲームが一般的に高速に実行されている限り、私たちにとっては心配の種ではありません。
コンテナ化とdm_env_rpc
ゲームは、プレーヤーが見たり聞いたりするための画像、テキスト、音声を出力し、またゲームコントローラからの入力コマンドを受け取ります。このデータの構造は、AI研究者にとって重要です。例えば、テキストは通常、画面に描画されるのではなく別々に表示されます。このデータ形式の柔軟性が非常に重要であるため、私たちはdm_env_rpcという新しいオープンソースライブラリを作成しました。このライブラリは環境とエージェントの間の境界として機能します。
dm_env_rpcを使用することで、環境をコンテナ化し、公開することができます。コンテナ化とは、Dockerのような技術を使用して事前にコンパイルされた環境バイナリをパッケージ化することを意味します。コンテナ化により、私たちの研究は独立して検証することができます。これは、コンパイラやオペレーティングシステムの違いによって混乱する可能性のあるオープンソース化よりも、実験を再現するためのより信頼性の高い便利な方法です。環境をコンテナ化する方法の詳細については、dm_memorytasksでの作業を参照してください。
We will continue to update VoAGI; if you have any questions or suggestions, please contact us!
Was this article helpful?
93 out of 132 found this helpful
Related articles