昨日読了。
AlphaGo、AlphaZero、AlphaStarを中心に、ゲームAIを詳説。さまざまなAI技術の集大成であることがわかる。
- AlphaGo(2016)
- モンテカルロ木探索の候補手を以下の手法で絞り込む
- 1手を打つ間に数万回のシミュレーション
- 最も訪問回数の多いノードを選択
- 候補の絞り込み:
- 盤面を評価する価値ネットワーク(CNN)+行動を選択するための方策ネットワーク(CNN)、碁石を画像として受け取る
- 価値ネットワーク: 状態価値として盤面の勝率(-1〜+1)を求める
- 方策ネットワーク: 次の手の確率分布(0〜1 x 19x19)を求める
- 学習
- 第1ステージ: SL方策ネットワーク(CNN)、人間同士の対戦を教師データとする
- SL: Supervised Learning(教師あり学習)
- 第2ステージ: RL方策ネットワーク(方策勾配法のREINDFORCE)で自己対戦
- RL: Reinforcement Learning(強化学習)
- 候補の評価(以下を半々で組み合わせ)
- 軽量な機械学習で高速にロールアウト
- 第2ステージで得た価値ネットワークで評価
- AlphaGoZero(2017)
- 人間の対局データを用いた教師あり学習は行わない
- モンテカルロ木探索による自己対局
- DNNで学習し、学習前後のモデルで対戦〜強いモデルの選択を繰り返す
- CNN〜ResNetの単一ネットワークで、方策と価値を出力
- 方策ヘッド、価値ヘッドは、CNN+FCNの組み合わせ
- ロールアウトは廃止し、価値だけを信じる
- AlphaZero(2017)
- 囲碁に加えてチェスや将棋にも対応
- ベイズ最適化によって検索のハイパーパラメータを調整
- MuZero(2019)
- 囲碁、チェス、将棋に加えて、Atali57にも対応
- ゲームのルールそのものを経験から学習
- 長期的な先読みは苦手
- AlphaStar(2019)
- リアルタイム戦略ゲームで、大局的な戦略に基づいて経済や戦闘を管理するマクロ操作と各ユニットを細かく操作して局地的な戦いに勝利するミクロ操作のバランスを取る
- 不完全情報ゲーム、長期計画が必要、行動空間が非常に大きい、といったことに対応
- 仮想リーグ戦を用意し、そこでそれぞれのエージェントに異なる目標や内発的動機を与えて、多様性のあるエージェント群を育てる(マルチエージェント学習)
- 単なる自己対戦では成長が止まってしまう場合がある
- 学習の基本問題である破滅的忘却を防ぐことにも役立ち、多様なスキルをプールしておくことができる
- 単に勝率の高い行動をするのではなく、人に近い行動をする(模倣学習)
- Actor-Critic型