浅谈德州扑克AI核心算法:CFR

本文首发于行者AI

引言

自2017年AlphaGo打败世界围棋冠军柯洁后,人工智能彻底进入大众视野,一时间棋牌类的AI在人工智能界掀起了一股大风。其实早在AlphaGo之前,人们就对棋牌类的人工智能发起了挑战,从简单的跳棋、五子棋,到更加复杂的中国象棋、国际象棋,以及最近非常热门的围棋和德州扑克,数十年间也是硕果累累。而相对于跳棋、象棋等完全信息游戏,德州扑克不仅要根据不完全信息进行复杂决策,还要应付对手的虚张声势、故意示弱等招数,其对应的博弈树无论是广度还是深度都十分庞大,它也一直都是科学家们想要攻克的高山。而在AlphaGO打败柯洁的同年,德扑AI DeepStack和Libratus也先后在 “一对一无限注德州扑克” 上击败了职业扑克玩家,在不完全信息博弈中做出了里程碑式的突破,而他们所采用的的核心算法就是Counterfactual Regret Minimization(CFR)。

1. Regret Matching

1.1算法原理

CFR算法的前身是regret matching算法,在此算法中,智能体的动作是随机选择的,其概率分布与 positive regret呈正比, positive regret表示一个人因为过去没有选择该行动而受到的相对损失程度。

这里对Regret Matching算法中的符号做出若干定义:

  • N = { 1 , 2 , . . . , n } N=\left\{1,2,...,n\right\} N={ 1,2,...,n} 表示博弈玩家的有限集合。玩家 i i i 所采用的的策略为 σ i \sigma_i σi

  • 对于每个信息集 I i ∈ ξ i , σ i ( I i ) : A ( I i ) → [ 0 , 1 ] I_i∈\xi_i,\sigma_i(I_i):A(I_i)→[0,1] Iiξi,σi(Ii):A(Ii)[0,1],是在动作集 A ( I i ) A(I_i) A(Ii)上的概率分布函数。玩家 i i i的策略空间用 Σ i \Sigma_i Σi表示 。

  • 一个策略组包含所有玩家策略,用 σ = ( σ 1 , σ 2 , . . . , σ n ) \sigma=(\sigma_1,\sigma_2,...,\sigma_n) σ=(σ1,σ2,...,σn).

  • 在博弈对决中,不同玩家在不同时刻会采取相应策略以及行动。策略下对应的动作序列发生概率表示为 π σ ( h ) \pi^\sigma(h) πσ(h),且 π σ ( h ) = ∏ i ∈ N π i σ ( h ) \pi^\sigma(h)=\prod_{i∈N}\pi_i^\sigma(h) πσ(h)=iNπiσ(h)

    这里的 π i σ ( h ) \pi^\sigma_i(h) πiσ(h)表示玩家 i i i使用策略 σ i \sigma_i σi促使行动序列 h h h发生的概率,除了玩家 i i i以外,其他玩家通过各自策略促使行动序列 h h h发生的概率为: π − i σ ( h ) = ∏ i ∈ N / i π j σ ( h ) \pi^\sigma_{-i}(h)=\prod_{i∈N/{i}}\pi_j^\sigma(h) πiσ(h)=iN/iπjσ(h)

  • 对于每个玩家 i ∈ N , u i : Z → R i∈N,u_i:Z→R iN,ui:ZR,表示玩家的收益函数。

  • 计算玩家在给定策略下所能得到的期望收益: u i ( σ ) = Σ h ∈ Z u i ( h ) π σ ( h ) u_i(\sigma)=\Sigma_{h∈Z}u_i(h)\pi^\sigma(h) ui(σ)=ΣhZui(h)πσ(h)

  • 纳什均衡:策略组 σ = ( σ 1 ∗ , σ 2 ∗ , . . . , σ n ∗ ) \sigma=(\sigma^*_1,\sigma^*_2,...,\sigma^*_n) σ=(σ1,σ2,...,σn)是纳什平衡当且仅当对每个玩家 i ∈ N i∈N iN,满足条件: u i ( σ ) ≥ m a x σ i ‘ ( σ 1 ∗ , σ 2 ∗ , . . . , σ n ∗ ) u_i(\sigma)\geq max_{\sigma_i^`}(\sigma^*_1,\sigma^*_2,...,\sigma^*_n) ui(σ)maxσi(σ1,σ2,...,σn)

  • 遗憾值:玩家在第T次采取策略的遗憾值为:
    R i T ( a ) = Σ T = 1 T ( μ i ( a , σ − i t ) − μ i ( σ i t , σ − i t ) ) R_i^T(a)=\Sigma_{T=1}^T(\mu_i(a,\sigma_{-i}^t)-\mu_i(\sigma_i^t,\sigma_{-i}^t)) RiT(a)=Σ

  • 1
    点赞
  • 26
    收藏
    觉得还不错? 一键收藏
  • 3
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 3
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值