用地表最强斗地主AI-DouZero实现连炸玩法AI

用地表最强斗地主AI-DouZero实现连炸玩法AI

原创 AIGC布道者-王兴 AIGC布道者 2023年04月05日 16:32 江苏

1、介绍douZero

DouZero是一个为斗地主设计的强化学习框架。斗地主十分具有挑战性。它包含合作、竞争、非完全信息、庞大的状态空间。斗地主也有非常大的动作空间,并且每一步合法的牌型会非常不一样。DouZero由快手AI平台部开发。

【核心算法】 - DouZero将深度蒙特卡洛(Deep Monte Carlo, DMC)动作编码并行演员(Parallel Actors)相结合的方法,为斗地主提供了一个简单而有效的解决方案。和最近火热的深度学习都属于机器学习范畴。

优势:a)、0数据要求即可训练

            b)、超参数很少,避免调参的麻烦

劣势:方差大,因为蒙特卡洛方法的核心是:基于某些状态(手牌、出牌历史等)进行某个动作(过牌、压牌等),然后获得结果奖励。但在同样的状态和动作下,如果位置不同/对手队友能力不同,对结果都会产生极大的影响。解决方案是更多的样本,尽可能得到合理的估计。

【截止目前胜率最高的AI】官方数据显示,DouZero的胜率在60%左右,远高于斗地主平均胜率47%,条件允许的话,后续会在实际游戏中进行大样本验证。

【应用场景】有2个需求是比较容易想到的:

1、做一个斗地主外挂

2、修改斗地主规则,使其适合连炸斗地主变种玩法【本文任务】

【相关信息】    

    论文地址:https://arxiv.org/abs/2106.06135

    论文代码:https://github.com/kwai/DouZero

    在线试玩:https://douzero.org

2、本次任务:训练AI,使其适合“连炸斗地主”的新玩法

目前支持的斗地主玩法是经典规则,用官方提供的预训练模型,会出现各种“低智商”操作,所以我们需要对整个项目进行二次开发

1、前期准备:尽量找GPU强的服务器,当然也可以用CPU训。

  • 拉最新的代码:

git clone https://github.com/kwai/DouZero.git

  • 安装依赖包:

cd douzero / pip3 install -r requirements.txt

2、实现步骤:

1、修改代码增加「连炸」规则

图片

代码改动量不大,主要改动类可以参考截图,增加连炸规则和相关出牌和计分逻辑(注意:评估和训练都需要进行调整)

2、训练。

经过亲自试验和多方验证,目前官方网盘提供的权重数据和实际演示用的并非一致(演示的聪明很多)。所以即使不改变斗地主规则,想要获得可商用的AI模型权重,也必须得自己重新训练。但是本次训练碰到了卡点:

在AutoDL选了一台V100尝试开跑,从下面截图可以看到fps大概平均每秒900(优化后可以达到2000)。官方建议一轮训练需要100,000,000,000frames, 如果按单卡跑需要1157天。即使100张卡也需要12天,而且多卡训练本身就是一个技术难点。

图片

目前解决方案:

  • 简化网络结构 

  • 尽可能优化代码性能

  • 调整超参数

截止发文,以上3个方案均在尝试中,如果有相关大牛能够协助,请联系我!

3、评估

    3.1、生成评估数据

图片

    3.2、测试评估数据

拿了训练了一晚的权重进行了测试(只训练了2000多万步...),然后抽取其中一局数据做评估:

手牌和底牌:

图片

操作:

图片

2000万步的AI可能等于刚出生3个月的宝宝水平,下次试试10亿步的【未完待续

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

强化学习曾小健

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值