TadaoYamaokaの開発日記

個人開発しているスマホアプリや将棋AIの開発ネタを中心に書いていきます。

AlphaStarについて

次回の技術書典に、参加している強化学習の勉強会のメンバで合同誌として頒布を行うべく執筆を行っている。
自分は、ネタとしてAlphaStarについて選んだのだが、書く内容がまとまらないのでブログにもアウトプットすることにする。

AlphaStarについて

Google DeepMindが開発した、StarCraft IIで初めて人間のトッププロに5-0で勝利したAI。

StarCraft IIについて

StarCraft IIは、ブリザード・エンターテイメントが開発した1対1で対戦を行うリアルタイムストラテジー(RTS)ゲーム。
日本語版が発売されていないため、日本ではあまり知名度が高くないが、海外(欧米、アジア)ではeスポーツ大会が開かれるくらい人気*1
f:id:TadaoYamaoka:20190804150945p:plain

AlphaStarの技術情報

現時点では、まだ論文は公開されていないが、査読付き論文誌に向けて準備されている*2

現時点での情報源

AlphaStarのブレークスルー

従来のAIの課題

従来のAIは、以下のような課題に対処できなかった。

  • じゃんけんのような単一の戦略がないゲーム
  • 不完全情報(部分観測)
  • 長期的なプランニング
  • リアルタイム
  • 広い行動空間

StarCraftを、これらの課題に対処するためのAI研究の「グランドチャレンジ」と位置づけた。
リザードの協力のもとオープンソースStarCraftの学習環境PySC2(人間のゲームのリプレイを含む)をリリースした。
AlphaStarは、そこでの研究からの複数のブレークスルーを組み合わせることによって生み出された。
f:id:TadaoYamaoka:20190804150427p:plain

AlphaStarのアーキテクチャ

(ゲーム画面ではなく)ゲームの内部情報(ユニットリストとそれらのプロパティ)を入力として受け取り、行動(一連の命令)を出力する。
f:id:TadaoYamaoka:20190804154718p:plain

ニューラルネットワークの構成

以下の要素を組み合わせている。

一つ一つの詳細を理解するには、論文を読み込む必要がある。
f:id:TadaoYamaoka:20190804150322p:plain

エージェントの学習アルゴリズム

はじめに匿名の人間のリプレイデータから、基本的なミクロ戦略とマクロ戦略を模倣した。
それにより、ゲームに実装されている"エリート"レベルAI(人間のゴールドレベル相当)に95%勝つようになった。

その後、マルチエージェント強化学習により訓練する。
マルチエージェントをリーグ戦で戦わせて、自分とは異なるエージェントから学べるようにする。
既存のエージェントから分岐して新しいエージェントが動的にリーグに追加される。
population-based trainingmulti-agent reinforcement learningのアイディアを取り入れている。

リーグが進み新しいエージェントが作成されるとそれに対抗する新しい戦略が出現する。
いくつかの新しいエージェントが単に前の戦略を改良した戦略を実行する一方で、他のものは全く新しいビルドオーダー、ユニット構成、およびマイクロ管理計画からなる劇的に新しい戦略を発見する。
f:id:TadaoYamaoka:20190804162129p:plain

リーグの多様性を促進するために、各エージェントは個別の学習目標を持っている。
あるエージェントは特定の敵を倒すという目的を持っているが、他のあるエージェントは全体的に戦いを行い、別のエージェントはユニットの建築を行う。
f:id:TadaoYamaoka:20190804154001p:plain

パラメータの更新

ニューラルネットワークの重みは他のエージェントとの対戦から、強化学習によって更新され、自分自身の学習目標を最適化する。
重み更新則は、以下のアルゴリズムを使用する。

訓練環境

訓練は、分散環境で行われ、何千ものエージェントが並列で訓練された。
リーグは、エージェントにつきTPU v3を16個使用して、14日間行われた。
実時間では 200年に相当する。
最後のエージェントは、リーグのナッシュ分布(最も効果的な戦略の組み合わせ)の構成要素により選ばれた。
対戦は1GPUのデスクトップPCで行われた。


引用されている、それぞれの論文を理解するとなるとかなり大変そうです。
技術書典までには間に合いそうにもないので、上記の内容を肉付けして執筆することにします。
AlphaStarと同様にRTSで成果を出しているOpenAI Five(詳細Model Architecture)は、5対5の対戦に対応しています。
ユニットを埋め込み表現にしたり、LSTMを使ったり共通点はありますが、学習則はAlphaStarとは異なっておりそちらも気になっています。