TadaoYamaokaの開発日記

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

AlphaStarの論文を読む その10(リーグ構成)

リーグ構成(Populating the League)

  • 訓練中、新しいプレイヤーを作成するためにスナップショットが作成されたときの訓練対象の対戦相手の分布と、教師ありパラメーターにリセットされる確率のみが異なる3つのエージェントタイプを使用した。

メインエージェント

  • メインエージェントは、35%SP、50%PFSPの割合でリーグの過去のすべてのプレイヤーに対して訓練され、さらに15%のPFSPマッチは、エージェントがもはやメインエクスプロイトを打ち負かすことができなくなったメインプレイヤー(forgotten players)と対戦する。
  • forgotten playersや強力なエクスプロイターが存在しない場合、代わりに15%がセルフプレイに使用される。
  • 2 \cdot 10^9ステップごとに、エージェントのコピーが新しいプレイヤーとしてリーグに追加される。
  • メインエージェントはリセットされない。

リーグエクスプロイター

  • リーグエクスプロイターはPFSPを使用して訓練され、凍結されたコピーは、ゲームの70%以上で、または2 \cdot 10^9ステップのタイムアウト後に、リーグ内のすべてのプレイヤーを倒したときにリーグに追加される。
  • この時点で、エージェントが教師ありパラメーターにリセットされる確率は25%である。
  • 直観的には、リーグエクスプロイトがリーグ内のグローバルな盲点を識別しているということである(リーグ内のプレイヤーは誰も負けることはできないが、それ自体は必ずしも堅牢ではない)。

メインエクスプロイター

  • メインエクスプロイターはメインエージェントと対戦する。
  • 半分の時間で、現在の勝率が20%未満の場合、エクスプロイターは、メインエージェントによって作成されたプレイヤーに対して𝑓_{\text {var }}の重み付けでPFSPを使用する。
  • これは、学習を促進するカリキュラムを形成する。
  • それ以外の場合、十分な学習シグナルがあり、現在のメインエージェントと対戦する。
  • このエージェントは、ゲームの70%以上で3つのメインエージェントが全員敗北したとき、または4 \cdot 10^9ステップのタイムアウト後にリーグに追加される。
  • その後、教師ありパラメーターにリセットされる。
  • メインエクスプロイターはメインエージェントの弱点を特定し、その結果、それらをより強固にする。
感想

3種類のエージェントが存在し、それぞれに役割が設定されています。

メインエージェントはあらゆる弱点に対処できるエージェントで、エクスプロイターは弱点を突くことに特化したエージェントです。
エクスプロイターには2種類あり、リーグ全体の弱点を見つけるリーグエクスプロイターと、メインエージェントの弱点を見つけるメインエクスプロイターです。

それぞれ条件に達するとスナップショットが作成されて、リーグに追加されていきます。
エクスプロイターは、その際パラメータが初期化される場合があります。
そうすることで、特定の戦略を見つけたエージェントがその戦略を忘れずに残り続け、また新たな戦略を見つけられるエージェントが継続して生まれることになるので、メインエージェントがより堅牢になるという仕組みのようです。

リーグのエージェントが増え続けることになりますが、優先順位付きFictitious Self-Playを使用しているので、無駄な対戦相手が選ばれないようになっています。

(続く)

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の開発日記