【AlphaHoldem】端到端强化学习玩德州扑克
强化学习端到端玩德州扑克。
所解决的问题?
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种情况。
Trinal-Clip损失函数
从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
的情况下,很难收敛。作者给出了两点主要的原因:
- 当
π
θ
(
a
t
∣
s
t
)
≫
π
θ
o
l
d
(
a
t
∣
s
t
)
\pi_\theta\left(a_t \mid s_t\right) \gg \pi_{\theta_{o l d}}\left(a_t \mid s_t\right)
πθ(at∣st)≫πθold(at∣st),和
A
^
t
<
0
\hat{A}_t<0
A^t<0的时候,会导致
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的卓越论文。
参考链接
更多推荐
所有评论(0)