TadaoYamaokaの開発日記

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

AlphaStarの論文を読む その8(教師あり学習、強化学習)

今回はMethodsの教師あり学習強化学習についてです。

教師あり学習

  • 各エージェントは、人間の行動を模倣するために、リプレイから教師付き学習を通じて最初に訓練される。
  • 教師あり学習は、エージェントの初期化と多様な探索の維持の両方に使用される。
  • このため、主な目標は、StarCraftの複雑さを捉えた多様なポリシーを作成することにある。

データセット、観測と行動、アーキテクチャ

統計z

  • 各リプレイから、各プレーヤーのビルド順序(最初の20の建設された建物とユニットとして定義)、累積統計(ユニット、建物、効果として定義)、およびゲーム中に出現したアップグレードをエンコードする統計zを抽出する。
  • 教師あり学習強化学習の両方でzで方策を調整し、教師あり学習ではzを時間の10%でゼロに設定する。

訓練方法

ファインチューニング、多様性

  • MMRが6200(16,000ゲーム)を超える勝利したリプレイのみを使用して、方策をさらにファインチューニングする。
  • ファインチューニングにより、組み込みのエリートボットに対する勝率がプロトス対プロトスで87%から96%に改善された。
  • ファインチューニングされた教師ありエージェントは、テラン、プロトス、およびザーグでそれぞれ3947、3607、3544 MMRと評価された。
  • ゲーム内のすべてのユニットを構築することができ、ゲームごとに質の多様性がある(拡張データ図4)。
拡張データ図4 | ゲームに組み込まれたユニットの分布

f:id:TadaoYamaoka:20191122082335p:plain
Protoss AlphaStar Supervised(左)とAlphaStar Final(右)が複数のセルフプレイゲームで構築したユニット。AlphaStarSupervisedはすべてのユニットを構築できる。

強化学習

  • エージェント対エージェントのゲームに基づいてAlphaStarのパフォーマンスを改善するために強化学習を適用する。
  • 対戦結果(負けで-1、引き分けで0、勝ちで+1)を終端の報酬r_{T}として使用し、ゲームに勝つという真の目標を正確に反映するために割引なしで使用する。
  • アクタークリティックのパラダイムに従い、価値関数V_{\theta}\left(s_{t}, z\right)r_{T}を予測するために訓練され、方策\pi_{\theta}\left(a_{t} | s_{t}, z\right)を更新するために使用される。

強化学習におけるStarCraftの課題

  • StarCraftは、強化学習の問題と見なされると、いくつかの課題を提起する。
  • ドメインの複雑さと報酬の希薄性のため、探索が困難である。
  • 方策は、訓練を通じてさまざまな戦略を実行できる必要がある。 そして、長い期間と複雑な行動空間のために、オフポリシーの学習が困難である。

探索と多様性

  • 私たちは人間のデータを使用して、探索を支援し、訓練を通じて戦略的多様性を維持する。
  • 最初に、教師あり方策で方策パラメータを初期化し、教師あり方策と現在の方策の間のKLダイバージェンスを継続的に最小化する。
  • 次に、人間のデータからランダムにサンプリングした戦略統計zに従うように、擬似報酬でメインエージェントを訓練する。
  • これらの疑似報酬は、サンプリングされたビルド順序と実行されたビルド順序間の編集距離(レーベンシュタイン距離)、およびサンプリングされた累積統計と実行された累積統計間のハミング距離を測定する(補足データ詳細アーキテクチャを参照)。
  • 疑似報酬の各タイプは、25%の確率でアクティブ(ゼロ以外)であり、各疑似報酬に対して個別の価値関数と損失が計算される。
  • 強化学習で優れたパフォーマンスを達成するには、人間のデータの使用が重要であることがわかった(図3E)。

f:id:TadaoYamaoka:20191101085707p:plain

価値と方策の更新

  • 新しい軌跡はアクターによって生成される。
  • 非同期に、軌跡を格納する再生バッファーを使用して、モデルパラメーターはラーナー(learner)によって更新される。
  • このため、AlphaStarはオフポリシーのデータの影響を受けるため、オフポリシーの補正が必要になる可能性がある。
  • V-trace*1などのオフポリシーの補正方法は、StarCraftに使用したような大規模で構造化された行動空間では非効率的であることがわかった。
  • ハイブリッドアプローチを使用してこれに対処する。
  • 方策はV-traceを使用して更新され、価値の推定値はTD(𝜆)*2を使用して更新される。
  • TD(𝜆)はオフポリシーの補正を適用しない(図3Iのアブレーション)。

f:id:TadaoYamaoka:20191122085204p:plain

  • 価値の推定値の分散を減らすために、相手の観測値を価値関数への入力として使用する(図3Kのアブレーション)。

f:id:TadaoYamaoka:20191122085307p:plain

  • 評価中に価値関数は不要なため、これらは訓練中にのみ使用されることに注意する。

V-trace

  • 方策\pi_{\theta}\left(a_{t} | s_{t}, z\right)では、V-traceのオフポリシー補正を使用すると、学習の安定性が向上した。
  • 大きな行動空間による早期のトレースカットを緩和するために、アクションタイプ、遅延、および他のすべての引数間の独立性を想定し、それらを個別に更新する。

UPGO

  • V-trace方策更新に加えて、以下の方向に方策パラメーターを更新するupgoing policy update(UPGO)を導入する。


\displaystyle
\rho_{t}\left(G_{t}^{\mathrm{U}}-V_{\theta}\left(s_{t}, z\right)\right) \nabla_{\theta} \log \pi_{\theta}\left(a_{t} | s_{t}, z\right)
ここで

\displaystyle
G_{t}^{\mathrm{U}}=\left\{\begin{array}{ll}{r_{t}+G_{t+1}^{\mathrm{U}}} & {\text { if } Q\left(s_{t+1}, a_{t+1}, z\right) \geq V_{\theta}\left(s_{t+1}, z\right)} \\ {r_{t}+V_{\theta}\left(s_{t+1}, z\right)} & {\text { otherwise }}\end{array}\right.
は上昇リターン、Q\left(s_{t}, a_{t}, z\right)は行動価値の推定値、\rho_{t}=\min \left(\frac{\pi_{\theta}\left(a_{t} | s_{t}, z\right)}{\pi_{\theta^{\prime}}\left(a_{t} | s_{t}, z\right)}, 1\right)はクリップされた重要度比、\pi_{\theta^{\prime}}はアクターの軌跡を生成した方策である。

  • 自己模倣学習と同様に、この考え方は、行動方策が平均よりも悪い行動をとる場合にブートストラップすることにより、予想よりも良いリターンを伴う部分軌跡から方策を更新することである(図3Iのアブレーション)。

f:id:TadaoYamaoka:20191122085204p:plain

  • StarCraftの大きな行動空間でQ\left(s_{t}, a_{t}, z\right)を近似することは難しいため、1ステップターゲットQ\left(s_{t}, a_{t}, z\right)=r_{t}+V_{\theta}\left(s_{t+1}, z\right)で行動価値を推定する。

全体の損失

感想

ある程度上位の人間のリプレイで教師あり学習した後に、最上位のプレイヤーでファインチューニングを行う方法は、泥臭い手法のように思いますが、機械学習ではやはりこういった手法が有効なようです。

強化学習において行動の多様性を確保するには、人間のリプレイの統計が重要であることが示されています。
多様性の確保にはAtariの最難関 Montezuma’s Revengeを攻略したRandom Network Distillationといった人間の統計を使用しない方法もあるようですが、人間のリプレイが大量に手に入る場合は、人間の統計を使う方が効率がよさそうです。

価値関数の更新にはオフポリシー補正なしのTD(λ)、方策の更新には、オフポリシー補正にV-trace、1ステップ収益の代わりに部分的にブートストラップする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の開発日記