次回の技術書典に、参加している強化学習の勉強会のメンバで合同誌として頒布を行うべく執筆を行っている。
自分は、ネタとしてAlphaStarについて選んだのだが、書く内容がまとまらないのでブログにもアウトプットすることにする。
StarCraft IIについて
StarCraft IIは、ブリザード・エンターテイメントが開発した1対1で対戦を行うリアルタイムストラテジー(RTS)ゲーム。
日本語版が発売されていないため、日本ではあまり知名度が高くないが、海外(欧米、アジア)ではeスポーツ大会が開かれるくらい人気*1。
AlphaStarのブレークスルー
AlphaStarのアーキテクチャ
(ゲーム画面ではなく)ゲームの内部情報(ユニットリストとそれらのプロパティ)を入力として受け取り、行動(一連の命令)を出力する。
ニューラルネットワークの構成
以下の要素を組み合わせている。
- transformer(ユニットを埋め込み表現にする)(関連論文:Attention Is All You Need、Deep reinforcement learning with relational inductive biases | OpenReview)
- deep LSTM core(関連論文:LONG SHORT-TERM MEMORY)
- auto-regressive policy head(関連論文:[1708.04782] StarCraft II: A New Challenge for Reinforcement Learning)
- a pointer network(関連論文:Pointer Networks)
- centralised value baseline(関連論文:Counterfactual Multi-Agent Policy Gradients)
一つ一つの詳細を理解するには、論文を読み込む必要がある。
エージェントの学習アルゴリズム
はじめに匿名の人間のリプレイデータから、基本的なミクロ戦略とマクロ戦略を模倣した。
それにより、ゲームに実装されている"エリート"レベルAI(人間のゴールドレベル相当)に95%勝つようになった。
その後、マルチエージェント強化学習により訓練する。
マルチエージェントをリーグ戦で戦わせて、自分とは異なるエージェントから学べるようにする。
既存のエージェントから分岐して新しいエージェントが動的にリーグに追加される。
population-based trainingとmulti-agent reinforcement learningのアイディアを取り入れている。
リーグが進み新しいエージェントが作成されるとそれに対抗する新しい戦略が出現する。
いくつかの新しいエージェントが単に前の戦略を改良した戦略を実行する一方で、他のものは全く新しいビルドオーダー、ユニット構成、およびマイクロ管理計画からなる劇的に新しい戦略を発見する。
リーグの多様性を促進するために、各エージェントは個別の学習目標を持っている。
あるエージェントは特定の敵を倒すという目的を持っているが、他のあるエージェントは全体的に戦いを行い、別のエージェントはユニットの建築を行う。
パラメータの更新
ニューラルネットワークの重みは他のエージェントとの対戦から、強化学習によって更新され、自分自身の学習目標を最適化する。
重み更新則は、以下のアルゴリズムを使用する。
- off-policy actor-critic(関連論文:IMPALA: Scalable Distributed Deep-RL with Importance Weighted Actor-Learner Architectures)
- experience replay(関連論文:Self-Improving Reactive Agents Based On Reinforcement Learning, Planning and Teaching)
- self-imitation learning(関連論文:Self-Imitation Learning)
- policy distillation(関連論文:[1511.06295] Policy Distillation)
訓練環境
訓練は、分散環境で行われ、何千ものエージェントが並列で訓練された。
リーグは、エージェントにつきTPU v3を16個使用して、14日間行われた。
実時間では 200年に相当する。
最後のエージェントは、リーグのナッシュ分布(最も効果的な戦略の組み合わせ)の構成要素により選ばれた。
対戦は1GPUのデスクトップPCで行われた。
引用されている、それぞれの論文を理解するとなるとかなり大変そうです。
技術書典までには間に合いそうにもないので、上記の内容を肉付けして執筆することにします。
AlphaStarと同様にRTSで成果を出しているOpenAI Five(詳細、Model Architecture)は、5対5の対戦に対応しています。
ユニットを埋め込み表現にしたり、LSTMを使ったり共通点はありますが、学習則はAlphaStarとは異なっておりそちらも気になっています。