Heads-up no-limit Texas hold’em (HUNL):8卡64核跑无限注德州扑克达到人类水平。有点类似DouZero单机上达到人类水平。
HUNL初始时,两名玩家会发两张盖牌。之后还有、翻牌、转牌、河牌、比牌。翻牌是三张,转牌一张,河牌一张。需要评估能够组成的5张牌中最大的。

动作空间有:过牌(check),跟注(call),加注(raise),弃牌(fold)。
五张牌的大小比较有:

DeepStack、Libratus都是做完abstract之后再接CFR类算法,但是CFR这类偏遍历的方式算起来计算资源的开销太大了。但是AlphaHoldem只在8卡的GPU上64个CPU核上训练了三天。
作者设计了一个伪孪生网络的结构(pseudo-Siamese),直接从输入学习输出的动作分布。除此之外,作者在状态表征、训练的loss、模型策略方面也都做了改进。

整体的网络结构如上图所示:输入是动作信息和卡牌信息的状态表征。送入到顶部和底部的孪生网络结构中。作者期望两个卷积网络能够学习不同的信息表征。由此还提出了一种新的loss函数Trinal-Clip Loss。self-play的时候也是选取的历史最佳的k个。整体设计就是这样,具体细节可以归功于三个方面:状态表征、Loss设计、Self-Play的模型选择。

card的信息就是六个通道,2张底牌、3张公共牌、1张转牌、1张河牌。每个通道是4x13的矩阵,1表示有这张牌(这里是考虑了花色的)。
对于动作信息,每个通道是
4
×
n
b
4 \times n_{b}
4×nb的矩阵,4分别表示玩家1的动作、玩家2的动作、两家动作之和、合法动作。总共最多会有4次下注,每次下注最多会有6个下注动作。所以总共是
24
×
4
×
n
b
24 \times 4 \times n_{b}
24×4×nb种情况。
从replay buffer中采样数据更新,算法采用PPO更新公式,ratio为:
r
t
(
θ
)
=
π
θ
(
a
t
∣
s
t
)
π
θ
′
(
a
t
∣
s
t
)
r_t(\theta)=\frac{\pi_\theta\left(a_t \mid s_t\right)}{\pi_{\theta^{\prime}}\left(a_t \mid s_t\right)}
rt(θ)=πθ′(at∣st)πθ(at∣st),其中
θ
\theta
θ为新策略,
θ
′
\theta^{\prime}
θ′为旧策略。
L p ( θ ) = E t [ min ( r t ( θ ) A ^ t , clip ( r t ( θ ) , 1 − ϵ , 1 + ϵ ) A ^ t ) ] \mathcal{L}^p(\theta)=\mathbb{E}_t\left[\min \left(r_t(\theta) \hat{A}_t, \operatorname{clip}\left(r_t(\theta), 1-\epsilon, 1+\epsilon\right) \hat{A}_t\right)\right] Lp(θ)=Et[min(rt(θ)A^t,clip(rt(θ),1−ϵ,1+ϵ)A^t)]
其中
ϵ
=
0.2
\epsilon=0.2
ϵ=0.2。作者在采用上述PPO原loss的情况下,很难收敛。作者给出了两点主要的原因:
policy loss的方差比较大。value的loss比较大。作者设计了Trinal-Clip Loss,对于policy部分,当
A
^
t
<
0
\hat{A}_t<0
A^t<0的时候,对下界也需要限制一下:
L t c p ( θ ) = E t [ clip ( r t ( θ ) , clip ( r t ( θ ) , 1 − ϵ , 1 + ϵ ) , δ 1 ) A ^ t ] \mathcal{L}^{t c p}(\theta)=\mathbb{E}_t\left[\operatorname{clip}\left(r_t(\theta), \operatorname{clip}\left(r_t(\theta), 1-\epsilon, 1+\epsilon\right), \delta_1\right) \hat{A}_t\right] Ltcp(θ)=Et[clip(rt(θ),clip(rt(θ),1−ϵ,1+ϵ),δ1)A^t]
其中
δ
1
>
1
+
ϵ
\delta_1 > 1+\epsilon
δ1>1+ϵ,作者这里设置的是3。对于value loss的clip设计为:
L t c v ( θ ) = E t [ ( clip ( R t γ , − δ 2 , δ 3 ) − V θ ( s t ) ) 2 ] \mathcal{L}^{t c v}(\theta)=\mathbb{E}_t\left[\left(\operatorname{clip}\left(R_t^\gamma,-\delta_2, \delta_3\right)-V_\theta\left(s_t\right)\right)^2\right] Ltcv(θ)=Et[(clip(Rtγ,−δ2,δ3)−Vθ(st))2]
参数
δ
2
\delta_2
δ2和参数
δ
3
\delta_3
δ3是我方玩家的下注和对方玩家的下注。这两个参数是动态生成的,就是为了减少value的方差。
这三种loss的效果对比如下:

简单的自博弈算法容易陷入循环克制的问题中,不容易收敛。AlphaStar的群体博弈(PBT),神经虚拟自博弈(NFSP)需要的资源开销比CFR的开销还要大。
AlphaHoldem采用了一种新型的Best-K自博弈方法。该方法通过在训练过程中测试历史模型的性能,挑选出K个最好的模型与现在最新的模型对打,不断通过强化学习提升自身性能。

总共8.6milion的参数,1.8milion的卷积参数,6.8milion的全连接参数。

一作是中科院博士生赵恩民,导师兴军亮。论文是AAAI的卓越论文。