TadaoYamaokaの開発日記

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

AlphaStarの論文を読む

Natureで発表されたAlphaStarの論文を読んでいきます。
無料で読めるPDFは、DeepMindのブログからダウンロードできます。

PythonとTensorFlowによる疑似コードも公開されており、Supplementary Dataからダウンロードできます。

Methodも含めると結構なボリュームがあるので、少しずつ記事にしていこうと思います。
理解できていない部分もあるので、勉強もかねて調べながら書いていきます。
ところどころ感想を挟んでいきます。
たぶん、まとまりのない内容になると思います。

概要

  • 多くの実際のアプリケーションでは、複雑な環境でのエージェントが必要
  • StarCraftは、複雑さとマルチエージェントの課題という点で実世界との関連性があり、人工知能の重要な研究課題となる
  • 以前の研究では、ゲームを単純化したり、手作りのサブシステムにしたりしてAIに有利であったにもかかわらず、人間のトッププレイヤーにかなわなかった
  • この論文では、汎用的な学習方法でStarCraftの課題に対処する
  • 人間とエージェントの両方のデータを使用するマルチエージェント強化学習アルゴリズム
  • ディープニューラルネットワークを使用する
  • 結果は、人間のプレイヤーに対するオンラインゲームで評価した
  • グランドマスターレベルに達し、人間プレイヤーの99.8%以上勝利した

StarCraftⅡについて

  • リアルタイムの戦略(RTS)ゲーム
  • 数百のユニットの個別に制御して、高度な経済的意思決定のバランスをとる必要がある
  • 非推移的ゲーム(じゃんけんの関係)
  • 反撃の戦略が多様
  • 素朴な自己対局では新しい戦略を発見できない
  • 自己対局での戦略は人間のプレイヤーにはおそらく効果的でない
  • 行動の組み合わせが必要な行動空間(数百のアクションタイプとそれに応じた選択。各ステップで約1026通りの選択肢)
  • 長期計画が必要(数十万のタイムステップ、約10分間)
  • 不完全な情報(カメラ外の一部の敵ユニットは除外される。人間と同様にカメラビューの移動が必要)
  • 人間の反応速度と公平性を保つため制約を課す(1分あたりの行動(APM)に制限。条件はプロプレイヤーが承認)
感想

強化学習のみでは、効果的な戦略をほとんど学習できなかったことは、以前の論文に書かれています。
カメラビューの移動は、以前のブログでプロプレイヤーに勝利したときに、不公平と指摘されていた点です。
今回の条件はプロプレイヤーのお墨付きのようです。
論文の執筆者にも、Team Liquidのメンバーが載っていました。

学習アルゴリズム

  • 模倣学習、強化学習、マルチエージェント学習を使用
  • 詳細はMethod(※後日記事にする予定)
  • AlphaStarの主要の要素は、方策\pi_\theta
  • ニューラルネットワークで表現される
  • ゲーム開始からの観測を入力として受け取り、行動を出力する
  • 人間のデータからサンプリングした戦略を要約する統計にも基づく
感想

人間データからの統計を併用する点が、以前との大きな違いです。
人間が発見できる戦略を強化学習アルゴリズムでは発見できないというのが現状で、最先端の強化学習アルゴリズムでもまだ人間には及ばないようです。
OpenAIのかくれんぼでも似たような課題に取り組んでいました。

アーキテクチャ

感想

自己注意メカニズムは、トランスフォーマーのことです。
自然言語処理のBERTなどで使われています。
AlphaStarでは、ユニットの埋め込み表現を作るために使われています。
前回のプロプレイヤーと対戦したバージョンでもトランスフォーマーは使われていました。
その前の論文では、1×1の畳み込みによりユニットの埋め込み表現を作っていました。

教師あり学習

  • エージェントのパラメータは最初は教師ありで訓練する
  • 人間のリプレイの公開データセットからサンプリング
  • 方策を人間の行動を予測するように訓練
  • これにより人間のプレイを反映した多様な戦略が生まれる

強化学習

  • その後、異なるエージェントに対して勝率を最大化するように設計された強化学習アルゴリズムで訓練
  • 対戦相手の選択は、後述のマルチエージェントの手順により決定
  • 強化学習アルゴリズムは、アクタークリティックと同様の方策勾配アルゴリズム
  • 非同期に収集したリプレイバッファを使用して経験再生を行う(オフポリシー学習)
  • つまり、以前の方策によって生成された経験から現在の方策を更新する
  • 大規模な行動空間では、以前の方策と現在の方策が一致する可能性が低い
  • 不一致でも効果的に学習できる手法を使用する: TD(λ)、重要度サンプリング(V-trace)および自己模倣アルゴリズム(UPGO)
  • 分散を減らすため価値関数には敵の視点からの情報も使用
  • 図3I、Kに相対的な重要性を示す

f:id:TadaoYamaoka:20191101000629p:plain

感想

通常、方策勾配法は、オンポリシーで学習されます。
オフポリシーで学習すると、分散と安定性を制御することが非常に困難であることが、ACERの論文に書かれていました。
ACERは、方策勾配法をオフポリシーで学習するSOTAな手法です。
AlphaZeroは、方策勾配法でもリプレイバッファを使用してオフポリシーで学習されていました。
おそらく、囲碁では以前の方策を使っても現在の方策とずれることが少ないことから成功しているのだと思います。

V-traceとUPGOについては、わかっていないので後で勉強して記事にするつもりです。

(続く)

AlphaStarの論文を読む - TadaoYamaokaの開発日記
AlphaStarの論文を読む その2 - TadaoYamaokaの開発日記
AlphaStarの論文を読む その3 - TadaoYamaokaの開発日記
AlphaStarの論文を読む その4 - TadaoYamaokaの開発日記
AlphaStarの論文を読む その5(アーキテクチャ) - TadaoYamaokaの開発日記
AlphaStarの論文を読む その6(アーキテクチャその2) - TadaoYamaokaの開発日記
AlphaStarの論文を読む その7(アーキテクチャその3) - TadaoYamaokaの開発日記
AlphaStarの論文を読む その8(教師あり学習、強化学習) - TadaoYamaokaの開発日記
AlphaStarの論文を読む その9(マルチエージェント学習) - TadaoYamaokaの開発日記
AlphaStarの論文を読む その10(リーグ構成) - TadaoYamaokaの開発日記
AlphaStarの論文を読む その11(インフラ) - TadaoYamaokaの開発日記
AlphaStarの論文を読む その12(評価) - TadaoYamaokaの開発日記
AlphaStarの論文を読む その13(分析、AlphaStarの一般性) - TadaoYamaokaの開発日記