自己対戦

Self-Play

自己対戦とは

自己対戦(Self-Play)とは、強化学習エージェントが自分自身のコピーや過去のバージョンと対戦することで方策を改善する学習手法です。対戦相手を別途用意する必要がなく、エージェント自身が常に適切な難易度の相手となるため、効率的に強くなれるという利点があります。

表:自己対戦の要点まとめ
ひとことで言うと自分自身のコピーと対戦して、際限なく強くなっていく学習方法。
何がうれしいか常に同じ強さの相手がいるので、学習に適した難易度が自動的に保たれる。
注意点特定の戦法に偏ることがある。過去のバージョンも相手に混ぜて防ぐ。

自己対戦の仕組み

エージェントは自分自身のコピーと対戦し、その結果を報酬として方策を更新します。方策が改善されると対戦相手のレベルも自動的に上がるため、カリキュラム学習的な効果が自然に生じます。AlphaGoやAlphaZeroなどではこの手法が驚くべき成果を上げました。

図:自己対戦のサイクル
1現在のAI同士で対戦同じ強さの相手
▶
2勝敗データを収集どの手が良かったか
▶
3学習して強くなる方策を更新
▶
4相手も強くなる難易度が自動で上がる
↺ 1〜4をくり返すと際限なく強くなる

過去バージョンとの対戦

単純に最新の自分と対戦するだけでは、特定の戦略に過度に特化してしまうリスクがあります。過去のバージョンのプールから対戦相手をランダムに選ぶ手法(PFSP: Prioritized Fictitious Self-Play)は、多様な戦略への対応能力を維持するために有効です。

自己対戦の応用

囲碁、チェス、将棋などのボードゲーム、StarCraftやDota 2などのビデオゲーム、さらにはロボット格闘技やカード戦略ゲームなど、対戦型のタスクで広く応用されています。OpenAI Fiveはチーム対戦でも自己対戦が有効であることを示しました。