TadaoYamaokaの開発日記

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

MuZeroの論文を読む その7(ハイパーパラメータ、データ生成)

付録C ハイパーパラメータ

  • 簡単にするために、以前の研究と同じアーキテクチャの選択とハイパーパラメータを優先的に使用する。
  • 具体的には、AlphaZeroのネットワークアーキテクチャと探索の選択肢から始めた。
  • ボードゲームでは、AlphaZeroと同じUCB定数、ディリクレ探索ノイズ、および探索ごとに同じ800のシミュレーションを使用する。
Atariのシミュレーション回数
  • Atariの分岐因子がはるかに小さく、方策が単純であるため、探索を高速化するために探索ごとに50のシミュレーションのみを使用した。
  • 図3Bに示すように、アルゴリズムはこの選択にあまり敏感ではなかった。
  • また、R2D2*1と同じ割引(0.997)と価値の変換(ネットワークアーキテクチャの節を参照)を使用する。

f:id:TadaoYamaoka:20191126233406p:plain

ハイパーパラメータの詳細
  • 本文に記載されていないパラメーター値については、擬似コードを参照。

付録D データ生成

  • 訓練データを生成するには、ネットワークの最新のチェックポイント(1000訓練ステップごとに更新)を使用して、MCTSでゲームをプレイする。
  • ボードゲーム囲碁、チェス、将棋では、行動を選択するために、1回の動きにつき800回のシミュレーションが探索される。
  • Atariでは、行動空間がはるかに小さいため、1回の動きにつき50回のシミュレーションで十分である。
リプレイバッファ
  • ボードゲームの場合、ゲームが終了するとすぐに訓練ジョブに送信される。
  • Atariゲームの長さははるかに長い(最大30分または108,000フレーム)ため、200移動ごとに中間シーケンスが送信される。
  • ボードゲームでは、訓練ジョブは受信した最新の100万ゲームをメモリ内のリプレイバッファに保持する。
  • Atariでは、視覚的観測がより大きく、長さ200の最新の125,000シーケンスが保持される。
経験生成
  • ボードゲームドメインでの経験の生成中には、AlphaZeroで説明されているものと同じ探索スキームが使用される。
  • このスキームのバリエーションを使用して、Atariドメインでは、最初のk回の移動だけでなく、各ゲームの期間中の訪問カウント分布から行動がサンプリングされる。
  • さらに、訪問数の分布は、温度パラメーターTを使用して以下の通りパラメーター化される。

\displaystyle
\begin{equation}
p_{\alpha} = \frac{N(\alpha)^{1 / T}}{\sum_{b} N(b)^{1 / T}}
\end{equation}
\tag{6}

温度パラメータ
  • Tは、ネットワークの訓練ステップ数の関数として減衰する。
  • 具体的には、最初の500k訓練ステップでは1の温度が使用され、次の250kステップでは0.5の温度が使用され、残りの250kのステップでは0.25の温度が使用される。
  • これにより、訓練の進行に合わせて行動の選択が貪欲になる。
感想

ボードゲームのハイパーパラメータは、AlphaZeroに合わせています。
Atariは行動空間の大きさに合わせて、シミュレーション回数を小さくしています。
リプレイバッファのサイズは、Atariの方が多く取られています。

AlphaZeroの自己対局では、30手までは訪問数に応じたボルツマン分布から手をサンプリングして、それ以降はグリーディーに手を選択していました。
MuZeroでもボードゲームでは同じですが、Atariでは、ゲームの終了までボルツマン分布から行動をサンプリングしています。
ただし、ゲームの進行に合わせて温度パラメータを小さくしています。
理由は述べられていませんが、多様なAtariのゲームに対応するために探索的な行動がある程度必要だったのではないかと思います。

次回はネットワークについてです。
(続く)