Minecraftで強化学習?!データセット「MineRL」の誕生

Minecraftで強化学習?!データセット「MineRL」の誕生

3つの要点

✔️3D環境を用いた強化学習用プラットフォーム「MineRL」の誕生
✔️6000万を超える大規模な状態と行動のデータセットを保有
✔️既存手法による学習結果とその難しさが、「MineRL」によって確認できる

「MineRL」を用いて開催された強化学習のコンペティションの紹介動画

本記事では、3D空間を一人称視点で行動し、探索やクラフトができるサンドボックス型ゲーム「Minecraft」における、実験環境およびデータセット「MineRL」を提供した論文を紹介します。実験環境とデータセットが提供されたことで、誰でもMinecraftを用いて強化学習を実装できるようになりました。

強化学習とは、環境からデータを主体的に獲得し、行動を最適化していく枠組みです。2016年、強化学習を使用した「AlphaGo」が囲碁の世界王者に勝利したニュースは、世界に衝撃を与えました。その「AlphaGo」は、3000万ものデータで教師あり学習した後に、強化学習で行動を最適化しています。この例のように、強化学習において、高いスコアや複雑な行動を獲得するには、教師となるデータセットは必要不可欠です。

2Dやある程度制限された空間では、強化学習を用いて人間より高いスコアを獲得できるようになった一方、より現実に近い3D環境での高いスコアの獲得が課題になっています。Minecraft環境での汎用性のある強化学習手法が実現すれば、実世界の応用へ前進することを意味します。それゆえ、この実験環境とデータセットの提供は、とても意味のあるものだと考えています。

本記事では、まずはじめにゲーム「Minecraft」について簡単に説明します。次に、実験環境およびデータセット「MineRL」について簡単に説明します。そして、論文の実験結果を用いて「Minecraft」環境における学習の難しさを示し、まとめに入っていきます。

3D環境サンドボックス型ゲーム「Minecraft」

photo by BagoGames

「Minecraft」とは、3D空間を一人称視点で行動し、探索や建築ができるサンドボックス型のゲームです。2019年5月時点で、パズルゲーム「テトリス」を抜いて、世界で最も売れたゲームになりました。

ゲームとして単一の目的が与えられないため、建築やサバイバル生活など、自由に楽しむことが出来ます。強化学習的な観点からみると、3D空間かつ一人称視点で自由に目的を設定できることや、クラフトを用いた階層型タスクを生み出せることから、広大な探索空間かつ疎な報酬環境、つまり、より現実に近い環境を意図的に作り、シミュレーションすることができます。

Minecraftでは、クラフトシステムによる階層型のタスクを生み出すことが、固有の難しさとなっています。以下の図で、一部アイテムの階層性を示します。

「Minecraft」内のアイテムが示す階層性

それぞれのノードは、Minecraft固有のアイテムやブロック、キャラクターで、各種アイテムの作成に欠かせない関係性を表しています。ここに表示されている関係は、ゲーム内のアイテムの一部分に過ぎません。これらから、Minecraftにおけるアイテム取得の階層性の複雑さを確認することが出来ます。

「MineRL」

それでは、実験環境及びデータセットを提供する強化学習用プラットフォーム「MineRL」について説明します。

「MineRL」は、本サイトの記事“自然言語処理×強化学習の最前線”に紹介されている、Minecraftを使った強化学習用プラットフォーム「Malmo」にデータセットを追加し、安定・高速化してさらに使いやすくしたものです。

人間のデモンストレーション収集の仕組みを、以下の図で簡単に説明します。

デモンストレーションを収集する仕組み

図のように、ゲームの記録を許可するプレイヤーのまとまった軌跡を、データ格納庫に保存します。そして、レンダリングを経てパラメータを調整し、データセットとして保存します。保存されるデータとしては、1/20秒ごとの状態と行動のペアです。状態としては、RGBの映像フレームやプレイヤーのインベントリ、ステータス、プレイヤーのGUI利用記録などで、行動としては、キーボードタッチや視点変化、アイテムのクラフトなどが存在します。

次に、「MineRL」が提供するタスクをピックアップして紹介します。

ObtainDiamond

目的:ダイヤモンドの取得

観測データ:装備アイテム、インベントリ、1人称視点画像

行動:attack, jump, craftなど含む14種

報酬:中間アイテム及びダイヤモンドの取得に応じて、それぞれ一度だけ割り振られる

例)木の斧(+8), 石の斧(+32), ダイヤモンド(+1024)

プレイヤーはランダムな位置からスタート。目的地まで行けばゴール…という簡単な話ではなく、ダイヤモンド取得へたどり着くために多くの中間アイテムが必要となります。かなり複雑なタスクなので、学習は非常に困難です。

Treechop

目的:64個の原木の獲得

観測データ:一人称視点画像

行動:attack, jump, backなど含む9種

報酬:原木を入手するごとに(+1)

プレイヤーは、鉄の斧を持った状態でスタートします。原木は、クラフトの素材となる資源です。こちらのタスクは、ダイヤモンドの取得に比べればはるかに簡単なタスクです。

Navigate

目的:指定されたゴールへの到達

観測データ:コンパスの角度、インベントリ、一人称視点画像

行動:attack, jump, backなど含む10種

報酬:ゴール到達で(+100)

プレイヤーは、コンパスを持った状態でランダムな位置からスタートします。実験設定として、報酬がある程度与えられる密な報酬環境と、目的地到達時のみしか報酬が与えられない疎な報酬環境の2種類存在します。密な報酬環境では、こちらもダイヤモンドの取得に比べれば簡単なタスクです。

実験結果

では、先ほど紹介したTreechopとNavigateのタスクについて、強化学習手法Dueling Double DQN(DQN), Pretrained DQN(PreDQN), A2Cと、教師データで学習するBehavioral Cloningを用いて実験した結果を以下に示します。

各学習手法と、人間及びランダムな行動との比較

Navigate(S)が疎な報酬環境、Navigate(D)が密な報酬環境です。この結果から一目で分かることは、学習されたエージェントはどのタスクにおいても人間のスコアに劣っていることです。そして特筆するべきは、Treechopのタスクです。強化学習手法3種の手法においてのスコアが、人間のスコア64に対し、5以下に収まっていることです。このタスクで取得する原木は、ダイヤモンドを取得するタスクをはじめとして、アイテムのクラフト及び取得において必須アイテムとなります。つまり、アイテムの取得が目的のタスクでは、これらの手法では、アイテムをクラフトする以前に、原木すら十分取得できずにゲームが終了する可能性が高いことを意味します。

以上より、このMinecraftの環境における学習が如何に難しいかが分かります。また、次のグラフで、人間のデモンストレーションを用いる場合と、用いない場合についての結果を比較します。

 Navigate(D)タスクの学習における、人間のプレイデータの有無の比較

このグラフからわかる通り、人間のエキスパート軌跡を用いたPretrained DQNの方が、DQNより高いスコアを獲得していることが分かります。「MineRL」で提供されるタスクにおいて、高いスコアを獲得するエージェントを生み出すには、このデータセットである人間のエキスパート軌跡をどのように用いるかが鍵となってくるでしょう。

まとめ

今回の記事では、3D環境サンドボックス型ゲーム「Minecraft」を用いた強化学習用プラットフォーム「MineRL」について紹介しました。限られた画像情報と複数の行動パターンから、強化学習によって3D空間の行動を最適化するエージェントを生み出すことはとても難しいタスクです。しかし、冒頭でも説明したように、それらのタスクでハイパフォーマンスを残すエージェントの学習手法や、新しいモデルの開発は、現実空間での強化学習の応用に大きく前進することを意味します。そして、それら技術の発展には、このような大規模なデータセットの存在は欠かせません。そういった意味で、このデータセット及び実験環境の提供には、とても有益なものと考えられます。

「MineRL」では、今回紹介した以外にも実験環境が提供されていています。また、ObtainDiamondにおいては、コンペティションの対象タスクになっているので、興味のある方は下記のURLから確認してみてください。

http://minerl.io/competition/

MineRL:ALarge-ScaleDatasetofMinecraftDemonstrations

written by WilliamH.Guss, BrandonHoughton, NicholayTopin, PhillipWang, Cayden Codel, ManuelaVeloso and RuslanSalakhutdinov
(Submitted on 29 Jul 2019)

Accepted at IJCAI 2019
Subjects:Machine Learning (cs.LG); Artificial Intelligence (cs.AI); Neural and Evolutionary Computing (cs.NE); Machine Learning (stat.ML)

この記事をシェアする