11
13

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?

More than 3 years have passed since last update.

Counterfactual Regret Minimaization(CFR)の基礎

Last updated at Posted at 2019-09-15

ポーカーAIのアルゴリズムを調べていたら、CFRというアルゴリズムが基礎であることが分かった。元論文を読んでCFRについてまとめながら理解した。これはその記録である。

CFRは、 $\epsilon$ ナッシュ均衡を実現する平均戦略 $\bar\sigma$ を繰り返し計算で求めるアルゴリズムである。

CFR の提案論文(だと思っているが違うかもしれない) Regret Minimization in Games with Incomplete Informationのアルゴリズムの基礎部分を中心に解説する。論文中の証明は省略する。定理番号は元論文と異なることに注意。

この文章は不十分な箇所が多い。この記事を足がかりに次に進んでいただければ幸い。

そもそもなぜ $\epsilon$ ナッシュ均衡を求めるのか

そもそもナッシュ均衡を求める理由について先に述べる。この節の説明はCounterfactual Regret Minimization – the core of Poker AI beating professional players]を参考にした。

  • ナッシュ均衡とは

    Nash Equilibrium is a strategy profile (set of strategies for all players involved) such that no single player has incentive to deviate.

  • ナッシュ均衡戦略は強いのか。

    playing Nash Equilibrium will in practice result in zero payoff then (you will not lose playing it in expectation). Exploitability of a strategy from a Nash Equilibrium pair is zero – it means that if you play it, your opponent best exploit strategy will have a zero payoff in expectation. You are guaranteed to draw in worst case.

  • 完全情報ゲームでは、強化学習によって期待利得を最大化する戦略を求める。しかし、不完全情報ゲームではナッシュ均衡を満たす戦略を求めるらしく、少し雰囲気が違うようだ。

regret と $\epsilon$ ナッシュ均衡の関係

ラウンド $T$ におけるプレイヤー $i$ の average overall regret $R^T_i$ を以下のように定義する。

R_i^T = \frac{1}{T}{\rm max}_{\sigma_i^{\ast}\in\Sigma_i}\sum_{t=1}^T(u_i(\sigma_i^{\ast},\sigma_{-i}^t)-u_i(\sigma^t)) 

average overall regret $R^{T}_{i}$ の説明

  • $\sigma^t$ はラウンド t での、全プレイヤーがとる行動の確率分布。$\sigma$ のことを単純に戦略という。
  • $u_i(\sigma^t)$ はプレイヤー $i$ の効用(utilityの訳)の期待値で、$u_i(\sigma^t)=\sum_{h\in Z} u_i(h)\pi^{\sigma}(h)$ と表される。
    • $Z$はゲーム終了までいった行動のヒストリーの集合で$h$はその元。
    • $u_i(h)$ はヒストリー $h$ でゲーム終了したときの、プレイヤー $i$ の効用。
    • $\pi^{\sigma}(h)$ は戦略 $\sigma$ のもとで、$h$ が起こる確率。
  • ${\rm max}_{\sigma_i^{\ast}\in\Sigma_i}\sum_{t=1}^Tu_i(\sigma_i^{\ast},\sigma_{-i}^t)$ は、$i$ に可能な戦略の集合 $\Sigma_i$ の元$\sigma_i^{\ast}$ を動かしたときに、$T$回のゲームを通した効用の和の最大。
  • 以上より、(1) は現在の戦略を $\sigma_i^{\ast}$ にしておけば、$T$ 回の平均でこれだけ儲かっていた、という後悔を表す。

また、平均戦略 $\bar\sigma^T_i$ を$t=1\sim T$ でのプレイヤー $i$ の平均戦略と定義する。特に 情報集合 $I\in\mathcal{I_i}$ のもとでの、とりえる各行動 $a\in A(I)$ の平均戦略(確率値)は以下のように書ける。(論文では$\bar\sigma_i^t$と書いてあるが、$t$ではなく$T$の方が良いと思う。この文章では$T$でいく。)
$$
\bar\sigma^T_i(a|I) = \frac{\sum_{t=1}^T\pi_i^{\sigma^t}(I)\sigma^t(a|I)}{\sum_{t=1}^T\pi_i^{\sigma^t}(I)}
$$
$R_i^T$ と $\bar\sigma^T_i$ には以下の関係が知られている。

定理1 「ゼロサムゲームにおいて、ラウンド Tで両プレイヤーの average overall regret が $\epsilon$ 未満ならば、 $\bar\sigma^T$ は 2$\epsilon$ 均衡戦略である。 」

つまり、i=1,2 について、$R_i^t$ が 収束するような収束アルゴリズムを用いれば、$\epsilon$ ナッシュ均衡に収束する平均戦略 $\bar\sigma$ が得られるということ!

CFRの導入~~どのように average overall regret を収束させるのか

immediate counterfactual regret を以下のように定義する。

R^T_{i,imm}(I) = \frac{1}{T}{\rm max}_{a\in A(I)}\sum_{t=1}^T\pi_{-i}^{\sigma^t}(I)(u_i(\sigma^t|_{I\to a},I)-u_i(\sigma^t,I))

上式の説明

  • $u_i(\sigma^t,I)$: counterfactual utility.
    • the expected utility given that information set I is reached and all players play using strategy σ except that player i plays to reach I.
    • This can be thought of as a “counterfactual” as it is the value to player i of be a strategy profile identical to σ except that player i always chooses action a when in information reaching information set I ifthe player had tried to do so.

$R^{T,+}_{i,imm}={\rm max}(R^T_{i,imm},0)$ とする。immediate counterfactual regret と average overall regret について以下の関係がある。

定理2 $R^{T}_{i} \leq \sum_{I\in \mathcal{I}} R^{T,+}_{i,imm}(I)$

つまり、右辺 $\sum_{I\in \mathcal{I}} R^{T,+}_{i,imm}(I)$ を最小化できれば、 $R^{T}_{i}$ を最小化することができ、定理1から $\epsilon$ ナッシュ均衡戦略が求まるということですね!

immediate counterfactual regret の重要な特徴は、$\sigma_i(I)$ だけを操作して最小化ができる点であることである。

Blackwell のアルゴリズムを用いて各情報集合ごとに独立に regret を更新する。
$$
R^T_i(I,a)=\frac{1}{T}\sum_{t=1}^T\pi_{-i}^{\sigma^t}(I)(u_i(\sigma^t|_{I\to a},I)-u_i(\sigma^t,I))
$$
とし(記法がややこしいがaverage over all regret とは別物)、$R_i^{T,+}(I,a)={\rm max}(R_i^T,0)$ と定義すると、$T+1$ の戦略を以下のように更新する。
$$
\sigma_i^{T+1}(a|I) = \begin{cases}
\frac{R_i^{T,+}(I,a)}{\sum_{a\in A(I)}R_i^{T,+}(I,a)} & {\rm if\ } \sum_{a\in A(I)} R_i^{T,+}(I,a)>0 \\
\frac{1}{|A(I)|} & {\rm otherwise.}
\end{cases}
$$
行動は、その行動を選択しなかったことによる正のcounterfactual regret に比例して選択される。

定理3 プレイヤー $i$ が上式に従って行動を選択するならば、$R^T_{i,imm}\leq\Delta_{u,i}\sqrt{|A_i|}/\sqrt{T}$となり、したがって $R_i^T\leq\Delta_{u,i}|\mathcal{I_i}|\sqrt{|A_i|}/\sqrt{T}$ となる。ここで、$|A_i|={\rm max}_{h:P(h)=i}|A(h)|$。

よってこの繰り返しアルゴリズム(これがCFRそのもの!)を用いれば、average oveall regret は0に収束し、ナッシュ均衡戦略が求まる!

TODO: 心(counterfactual の嬉しさ)をもっと説明する。

CFRの課題

課題1

CFR はそのままではポーカーなどの大きな情報空間を持つゲームには適応できない。
TODO: 詳細を調査してまとめる。

課題2

3人以上のゲームではCFRの収束が保証されていない(らしいが、文献はどこだろうか。)

CFRの効率化と他の手法との組み合わせ

実際には上記で説明した生のCFRは使われず、CFRの改良や他の手法との組み合わせが使われる。

CFRの改良として例えば以下があるようだ。

また、CFRと組み合わせて使われる手法として以下があるようだ。

  • abstraction
  • blueprint strategy
  • nested subgame solving
  • self improvement during the event
    • これらは libratus で使われている。

参考情報

コードレベルでのCFRの解説

CFRの実験コードは、例えば以下で解説されている。

その他の応用例

  • ポーカーのほかにも花札を解くためにも使われているようだ。
    • またこの方のこのスライドは、調査の初めに雰囲気を知るためにとても参考になった。

数式

  • 見出し中の数式をレンダリングする方法が分からなかった。
  • 下付き文字が入っているとうまくレンダリングしてくれず、_を\_に書き換えるとレンダリングが通ったりした(しなくても通ることがある)。
11
13
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
11
13

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?