不完全情報ゲームにおけるAIの開発

 不完全情報ゲームにおけるAIの開発

2020年5月30日 日経学会2020年度春季大会の企画セッションでの発表資料です.
https://www.jeameetings.org/2020s/program1-3.html#pm1

69007acdac41a6c1def5448476995a20?s=128

Kenshi Abe

May 30, 2020
Tweet

Transcript

  1. 不完全情報ゲームにおけるAIの開発 株式会社サイバーエージェント AI事業本部 AI Lab 阿部拳之 2020/05/30

  2. ⾃⼰紹介 ▪ 名前 – 阿部 拳之(あべ けんし) – @bakanaouji(ばかなおうじ) ▪

    経歴 – 東京⼯業⼤学総合理⼯学研究科知能システム科学専攻(〜2017年) ▪ 強化学習×進化計算をメインに研究 – 株式会社ハル研究所(2017年〜2018年) ▪ ゲームプログラマー – 株式会社サイバーエージェント AI事業本部 AILab(2018年〜) ▪ 強化学習・不完全情報ゲーム・⿇雀AIについて研究
  3. はじめに ▪ ⿇雀は多⼈数不完全情報ゲームの⼀つ ▪ 不完全情報ゲームは完全情報ゲームにない難しさが存在 – 情報が部分的にしか観測できない – モンテカルロ⽊探索のようなアルゴリズムが適⽤できない ▪

    特にポーカーを中⼼として完全情報ゲームと違ったアプローチが提案 ▪ 本発表では,不完全情報ゲームにおけるAI開発へのアプローチを花札・ ポーカーを実例にして紹介
  4. Summary 1. ⼆⼈零和不完全情報ゲームの攻略 – 花札を実例として 2. 三⼈以上のプレイヤが存在する不完全情報ゲームへの挑戦 – ポーカーを実例として

  5. ⼆⼈零和不完全情報 ゲームの攻略

  6. 花札「こいこい」 場札 ⼿札 ⼿札 ⼭札 合札 ▪ 12ヶ⽉×4=48枚の札を⽤いてプレイ 1. 札を「各プレイヤ」と「場」に配る

    2. ⽚⽅のプレイヤが⼿札を1枚出す – 場に同じ⽉の札があれば,その 札と出した札を取得 – そうでなければ場に追加 3. ⼭札から1枚めくって2と同様の処理 4. 取得した札で役が成⽴していれば, 「あがり」か「こいこい」を選択 – 「あがり」なら役の得点をも らって終了 – 「こいこい」ならゲーム続⾏ 5. ⼿番交代して2から繰り返し 合札
  7. ⼆⼈零和不完全情報ゲームにおける 最適な戦略 ▪ そもそも,⼆⼈零和不完全情報ゲームにおける最適な戦略とは︖︖ ▪ 対戦相⼿の戦略があらかじめ分かっていれば最適応答を計算すれば良い ▪ でも実際には相⼿がどんな戦略取ってくるかなんて分からない

  8. ⼆⼈零和不完全情報ゲームにおける 最適な戦略 ▪ ナッシュ均衡 – どのプレイヤも⾃分の戦略を変更することによって,より⾼い得点を得るこ とができないような戦略の組み合わせ – 各プレイヤの戦略を! ,利得を!

    とすると,ナッシュ均衡戦略の組み合わせ ∗は以下の式を満たす ∀, ! ! ∗, #! ∗ = max $! "∈&! ! (! ', #! ∗ ) – 対称性があるゲームの場合,相⼿のどんな戦略にも負けない戦略 →花札も先⼿と後⼿を交互に繰り返せば対称的 ▪ ⼆⼈零和不完全情報ゲームではナッシュ均衡戦略を計算できれば負けなそう
  9. ナッシュ均衡戦略の計算 ▪ ゲームの情報集合数が⼤きい場合,厳密なナッシュ均衡戦略の計算は難しい... – (花札の情報集合数)> 10() ▪ できる限りナッシュ均衡戦略に近い戦略を求める – 代表的なアルゴリズム︓Counterfactual

    Regret Minimization (CFR)
  10. Counterfactual Regret Minimization ▪ 基本的な流れ – 「この⼿を取ったほうが良かった」という後悔 (regret) を元に戦略を更新 ▪

    Counterfactual Regret ! * , = #! $# (! +→- * , − ! *, ) – 「現在の戦略*を情報集合において⾏動を取るよう に変更したら,どれだけ利得が増えるのか」を定式化 ! " ⼿札 " Regret = +5 Regret = -2 何出したら良いかな︖ Regret Minimization in Games with Incomplete Information (2008) https://papers.nips.cc/paper/3306-regret-minimization-in-games-with-incomplete-information を出したほうが 良かった・・・
  11. Counterfactual Regret Minimization ▪ 基本的な流れ – 「この⼿を取ったほうが良かった」という後悔 (regret) を元に戦略を更新 ▪

    Counterfactual Regret ! * , = #! $# (! +→- * , − ! *, ) – 「現在の戦略*を情報集合において⾏動を取るよう に変更したら,どれだけ利得が増えるのか」を定式化 ! " ⼿札 " Regret = +5 Regret = -2 何出したら良いかな︖ が必ずへ向かうように振る舞い, それ以外が$に従った時にに到達する確率 においてを取るように変更した時の期待利得 から$に従った時の期待利得 Regret Minimization in Games with Incomplete Information (2008) https://papers.nips.cc/paper/3306-regret-minimization-in-games-with-incomplete-information を出したほうが 良かった・・・
  12. Counterfactual Regret Minimization ▪ これまでのregretの総和に基づいて,戦略を更新 – Cumulative Counterfactual Regret !

    . , = 5 */0 . ! *(, ) – 戦略の更新式 ! .10 , = max(! . , , 0) ∑ -∈2(+) max(! . , , 0) , 5 -∈2(+) max(! . , , 0) > 0 1 | | , ℎ をもっと出す ようにするぞ︕ を出したほうが 良かった・・・
  13. Counterfactual Regret Minimization ▪ = 1, ⋯ , までの戦略! *を平均化した戦略

    B ! .がナッシュ均衡戦略へと収束する ことが理論的に保証 – B ! . , = ∑#%& ' 6! (# + $#(+,-) ∑#%& ' 6! (# + – ただし,⼆⼈零和不完全情報ゲームのみ保証 – 三⼈以上では収束の保証はなし ▪ 実⽤的にも⾼速︕︕ ▪ それでも花札の情報集合数(> 10())は厳しい・・・ →そもそも戦略を保持するための容量が⾜りない →ゲームを抽象化 (abstraction) して,情報集合数を現実的なサイズまで減らす
  14. Abstraction ▪ ゲームを抽象化することによって情報集合数を削減 ▪ Abstractionの⽤い⽅ – 抽象化したゲームのナッシュ均衡戦略を計算→実際のプレイ時に⽤いる ▪ 花札のためのabstractionをいくつか考えてみました –

    各プレイヤの⾏動履歴を忘却する(History Abstraction) – 対称的な⽉を同形とみなす(Month Abstraction) – 取得できそうな札のみ観測する(Open Card Abstraction)
  15. History Abstraction ▪ 各プレイヤが取った⾏動を忘却 ▪ 現在の観測が同じなら,同⼀の 情報集合とみなす ⼿札 ⼿札 合札

    場札 ⼭札 ⼿札 ⼿札 合札 場札 ⼭札 現在の状況 ⼿札 ⼿札 合札 場札 ⼭札 ⼿札 ⼿札 合札 場札 ⼭札 現在の状況 同じ 情報集合
  16. Month Abstraction ▪ 対称性がある⽉を同形とみなす ▪ 対称性がある⽉を⼊れ替えても 情報量は変わらない(ハズ) 6⽉ 10⽉ 1⽉

    3⽉ 5⽉ 4⽉ ⼿札 ⼿札 合札 場札 ⼭札 ⼿札 ⼿札 合札 場札 ⼭札 同じ 情報集合
  17. Open Card Abstraction ▪ 取得できる場札以外は観測しない ⼿札 ⼿札 合札 場札 ⼭札

    ⼿札 ⼿札 合札 場札 ⼭札 取れない場札を隠す
  18. 実際に花札AIを作ってみる ▪ Abstractionをしてもまだゲームサイズが⼤きすぎるので,今回は1/3サ イズのゲームで実験 ▪ ミニ花札 – ゲームに⽤いる札 – 役

    三光 (5点) タネ (1点) タン (1点) カス (1点) 1⽉ 3⽉ 9⽉ 8⽉ ⾚短 (5点)
  19. 実験結果 ▪ CFRによって得た戦略を評価するために,ランダム/ルールベースプレイ ヤと100万回対戦 – ランダムプレイヤ︓いつでもランダムに⾏動決定 – ルールベースプレイヤ︓なるべく札を取れるように⼿札選択. ▪ ⼈⼯的なプレイヤに対しての平均得点

    – vs ルールベースプレイヤ︓+0.75点 – vs ランダムプレイヤ︓+1.50点 ▪ 平均得点が0より⼤きいので,⼈⼯的なプレイヤより強い︕︕ 解説ブログと実装コード https://cyberagent.ai/blog/research/2522/ https://qiita.com/bakanaouji/items/f70d7948931c96d94ef8 https://github.com/bakanaouji/cpp-cfr
  20. 三⼈以上のプレイヤが存 在する不完全情報ゲーム への挑戦

  21. 三⼈以上の零和不完全情報ゲームの 難しさ ▪ ⼆⼈零和ゲーム – CFRにおける平均戦略がナッシュ均衡戦略に収束する保証がある – ナッシュ均衡戦略に従っていれば⾃分の損失を最⼩限に抑えることができる ▪ 三⼈以上の零和ゲーム

    – CFRにおける平均戦略がナッシュ均衡戦略に収束する保証がない – ナッシュ均衡戦略に従っていても負けることがある
  22. 三⼈以上の零和不完全情報ゲームの 難しさ < 00 ∗ , (0 ∗ > <

    0( ∗ , (( ∗ > < 00 ∗ , (( ∗ > ナッシュ均衡その1 ナッシュ均衡その2 これもナッシュ均衡 ▪ ナッシュ均衡はゲームに対して複数個存在 ▪ ⼆⼈零和ゲーム – 各プレイヤが独⽴にナッシュ均衡戦略を選択し たとしても,両プレイヤの戦略の組み合わせは ナッシュ均衡となる ▪ 三⼈以上の零和ゲーム – 各プレイヤが独⽴にナッシュ均衡戦略を選択し た場合,全プレイヤの戦略の組み合わせはナッ シュ均衡ではない可能性がある – ナッシュ均衡戦略に従っているのに戦略を変え たほうがメリットがある可能性がある →ナッシュ均衡戦略でも負ける可能性が・・・
  23. 三⼈以上の零和不完全情報ゲームの 難しさ < 00 ∗ , (0 ∗ , 80

    ∗ > < 0( ∗ , (( ∗ , 8( ∗ > < 00 ∗ , (( ∗ , 88 ∗ > ナッシュ均衡その1 ナッシュ均衡その2 < 08 ∗ , (8 ∗ , 88 ∗ > ナッシュ均衡その3 ナッシュ均衡︖︖ ▪ ナッシュ均衡はゲームに対して複数個存在 ▪ ⼆⼈零和ゲーム – 各プレイヤが独⽴にナッシュ均衡戦略を選択し たとしても,両プレイヤの戦略の組み合わせは ナッシュ均衡となる ▪ 三⼈以上の零和ゲーム – 各プレイヤが独⽴にナッシュ均衡戦略を選択し た場合,全プレイヤの戦略の組み合わせはナッ シュ均衡ではない可能性がある – ナッシュ均衡戦略に従っているのに戦略を変え たほうがメリットがある可能性がある →ナッシュ均衡戦略でも負ける可能性が・・・
  24. 三⼈以上の零和不完全情報ゲームの 難しさ ▪ 三⼈以上の零和ゲーム – CFRがナッシュ均衡に収束するかも保証されていない – そもそもナッシュ均衡戦略に従うのがいいのかすらも怪しい →では,どんな戦略に従うのが良いのか︖︖ ▪

    実⽤的には,三⼈以上の零和ゲーム(主にポーカー)にCFRを適⽤するだけで ある程度強い戦略はできるらしい – この実験的な事実を利⽤したのが2019年登場のポーカーAIのPluribus
  25. Pluribus ▪ 6⼈プレイヤのポーカー(Heads up No-limit Texas Hold’em)でプロを超えた ▪ ある程度の戦略をCFRによって計算しておき,それを実際のプレイ中に改善 ▪

    アルゴリズムの流れ 1. 予めCFRによってある程度の強さの戦略を計算しておく 2. 実際のプレイ中に遭遇したSubgameにおける戦略をCFRで計算 →その戦略に従ってプレイ ▪ プレイ中の戦略計算時には,深さ制限探索で探索するノード数を減少 – プレイヤの数が増えて状態数も膨⼤な数になるので,実際のプレイ中に戦 略の計算が終わらないことに対処 Superhuman AI for multiplayer poker (2019) https://science.sciencemag.org/content/early/2019/07/10/science.aay2400
  26. Depth Limited Search 1. ある深さのノード(葉ノード)に到達するまでは通 常と同様に探索 2. 葉ノードに到達したらノードのvalueを推定 – Monte

    Carlo Rolloutによって推定 – 予め計算しておいたk = 4個の戦略の中から戦略 を選択,葉ノード以降はその戦略に従って⾏動 ▪ ポーカーでよく使われるAbstractionを⽤いて計算 された戦略 ▪ 降りることに特化した戦略 ▪ コールすることに特化した戦略 ▪ レイズすることに特化した戦略 – ノードのvalueが戦略に依存したものであることを 近似的に表現 Fig. 4. Real-time search in Pluribus. The subgame sh nodes indicates that the player to act does not know w information subgame. Right: The transformed subga strategy. An initial chance node reaches each root nod reached in the previously-computed strategy profile (o time in the hand that real-time search is conducted). T which each player still in the hand chooses among k chooses. For simplicity, 2 k = in the figure. In Pluribu selection of a continuation strategy for that player f terminal node (whose value is estimated by rolling continuation strategies the players chose). Fig. 4. Real-time search in Pluribus. The subgame shows just two players for simplicity. A dashed line between nodes indicates that the player to act does not know which of the two nodes she is in. Left: The original imperfect- information subgame. Right: The transformed subgame that is searched in real time to determine a player’s
  27. Pluribusの結果 ▪ 5⼈のプロ vs Pluribus – プロ相⼿に⾼い勝率︖︖ – (実際には負けているケースもある)

  28. Team Maxmin Equilibrium VS 利得関数!() 利得関数" () 利得関数# () 利得関数$()

    ただし! + " + # + $ = 0 ▪ 3⼈以上プレイヤが存在するゲームの解概念 ▪ プレイヤを「共通の利得関数を持つチーム」と 「敵対者(⼀⼈)」に分割したゲームを考える ▪ プレイヤを分割したゲームを「⼆⼈零和ゲー ム」としてみなして,ナッシュ均衡を計算 Team-Maxmin Equilibria (1997) https://www.sciencedirect.com/science/article/abs/pii/S0899825697905273
  29. Team Maxmin Equilibrium ▪ 3⼈以上プレイヤが存在するゲームの解概念 ▪ プレイヤを「共通の利得関数を持つチーム」と 「敵対者(⼀⼈)」に分割したゲームを考える ▪ プレイヤを分割したゲームを「⼆⼈零和ゲー

    ム」としてみなして,ナッシュ均衡を計算 VS 利得関数! + " + # () 利得関数$ () ただし! + " + # + $ = 0 結託 Team-Maxmin Equilibria (1997) https://www.sciencedirect.com/science/article/abs/pii/S0899825697905273
  30. Team Maxmin Equilibriumの特性 ▪ 均衡が必ず存在する ▪ (⼀般的に)均衡がユニークな期待利得を持つ – 相⼿全員が結託してきたworst caseでの利得を最⼤化する戦略が得られる

    – 均衡選択を気にする必要がなくなる
  31. Team Maxmin Equilibriumの問題点 ▪ 効率的な計算が困難 – 完全記憶でないため,CFRなどのアルゴリズ ムは収束保証がない – 巨⼤な展開型ゲームではまだまだ計算が困難

    ▪ 実際の多⼈数ゲームにおけるTeam Maxmin Equilibriumの有効性は未知 – 誰かが⼤損してでも⾃分を負かしにくる状況 は現実には起こりにくいのでは︖ – そこまで悪いケースまで考えなくても良さそ う︖ VS 利得−100 利得−10 利得55 利得55
  32. おわりに ▪ 3⼈以上のプレイヤが存在する不完全情報ゲームにおけるAI開発はチャレンジン グな問題 ▪ 花札や⿇雀を中⼼に不完全情報ゲームを攻略していきたい ▪ 3⼈以上の不完全情報ゲームの戦略について議論したい →是⾮ディスカッションしましょう︕ ご静聴ありがとうございました