AI 全自动玩斗地主,靠谱吗?Douzero算法教程

你觉得,AI 全自动玩斗地主,胜率能有多高?

真就有100%胜率,实现欢乐豆自由?

我让这个 AI 自己玩了一小时,结果出乎意料。
AI 全自动玩斗地主,靠谱吗?Douzero算法教程_第1张图片
先不着急说最终结果,我们先来看看这个 AI 有多强。

01

Ai斗地主,就是通过 AI 算法分析游戏画面,获取玩家角色、手牌等信息。

完全自主决策这把是否叫地主,是否加倍,以及如何出牌。

设定好程序,不需要我们参与,AI 自己就能玩一下午。

AI 全自动玩斗地主,靠谱吗?Douzero算法教程_第2张图片

算法名字是 DouZero,快手团队开发的。

不是要把欢乐豆归零的意思——

意思是像 AlphaZero 一样从零开始训练,不需要你教他怎么打,完全自己学习。

系统只需要给出正负反馈,算法就会自我强化,做出最有效的行为决策。

跟训狗是一个道理。

AI 全自动玩斗地主,靠谱吗?Douzero算法教程_第3张图片

斗地主的所有牌型总共有27472种。相对与围棋上亿万种的走法,算是小巫见大巫了。

那实现的难点在哪呢?

围棋是所有棋子都摆在棋盘上,对弈双方都能看到,这属于"完全信息博弈"。

而斗地主每个玩家都看不到其他人的手牌,从博弈论的角度看,斗地主是“不完全信息博弈”。

并且还要综合考虑合作机制。

两个农民玩家对抗地主玩家。不仅要保证自己赢,也要辅助队友赢。

对于AI来说就更有挑战性了。

02

这里简述一下算法原理。

DouZero 是一个基于深度蒙特卡罗算法来打斗地主的强化学习算法。

所谓的蒙特卡罗就是通过不断的重复实验来估计真实价值的方法。

而在DouZero中,引入了Deep Monte-Carlo (DMC)方法。所谓DMC,就是用神经网络替换Q表,并使用均方误差 (MSE) 更新Q网络。

AI 全自动玩斗地主,靠谱吗?Douzero算法教程_第4张图片
让q价值最大化,q价值指的是在某个状态做某个动作预期的价值是多少。

感觉屏幕对面的你,已经在打哈欠了,我们不多说了,具体的大家可以看看算法论文。

论文链接:
https://arxiv.org/abs/2106.06135

那胜率到底多高呢?

咱们首先声明一下,我们不支持任何形式的外挂,玩游戏就图一乐呵,真让 AI 全自动去打,游戏也就失去了本身的意义。

我们只是测试算法的可行性,我让 AI 打了20局游戏,赢了13局,输了7局。综合胜率在65%。

不过样本数量不够大,官方数据中显示,AI 综合胜率大概在60%左右

总体来看,可以达到普通玩家水平。

本以为 AI 斗地主会很厉害。

60%的胜率,就这?

03

这已经是上百种斗地主 AI 算法的最高胜率了,其他算法还有20%胜率的,效果感人。

AI 斗地主没有想象中的厉害,为什么呢?

因为斗地主是个运气成分很强的游戏。

牌好的时候,闭着眼睛打也能赢。牌烂的时候,高手也救不了你。

所以只有在自己和对手的牌相对均衡的情况下,AI的优势才能被明显体现。

有时候也会出现不可思议的打法。

比如下面这种情况,我自己打不一定能赢。
AI 全自动玩斗地主,靠谱吗?Douzero算法教程_第5张图片
上面视频 51s 的时候,AI还会先出K,测试地主的大牌。

wx搜索【喵宁一】查看视频
第一时间阅读文章~

“鲁迅先生”说过:打好烂牌才算本事。

大写的牛!

计算机非常擅长在完全信息下做搜索,而人类玩家则更擅长在非完全信息下进行推理和决策。

尽管斗地主属于非完全信息游戏,但以AI对于对手手牌的概率分布估计能力,以及基于此所做出的细粒度搜索和判断能力,都将远胜于人类。

人类,危!

随着 AI 推理决策、高效学习能力的提高,AI 外挂会势如破竹,横卷游戏界。

特别是FPS类射击游戏,已经有成熟的 AI 外挂了。这种纯拼技术的游戏,AI胜率几乎百分百。

给游戏业带来了巨大的挑战。

并且不仅仅是游戏业,随着深度强化学习的快速发展,这一技术被应用于军事的步伐也越来越快了。

围棋 AI 已经超越了人类,斗地主 AI 也能战胜普通水平。不出意外,未来空战,AI 超越人类飞行员也是迟早的事。

这不是空穴来风。

美军已经毫不掩饰他们在这个领域的野心了。

那个时候战争形态跟现在都会发生天翻地覆的变化。

如果大国人工智能已经达到高水平,甩出别国几条街。

我们有生之年极有可能会看到,一方没有伤亡,另外一方被灭亡的战争。

战争打到什么程度,只取决于大国愿意付出多少成本,世界舆论压力,其他大国是否干预。

只有提高自己的硬实力,才有话语权。

国家如此,人也是如此。

04

最后还是逃脱不出技术号的本质,上个教程。

第一步:下载项目

项目地址:
https://github.com/Vincentzyx/DouZero_For_HLDDZ_FullAuto

这个项目在DouZero 算法的基础上,加入了自动出牌、自动叫牌等模块。

项目里面已经有训练模型了,不需要我们再单独下载了。

第二步:配置环境

# 安装依赖
pip3 install -r requirements.txt
pip3 install douzero

这里要注意遇到下面的错误,是因为pytorch版本不对应,需要检查更换一下版本。

RuntimeError: .xxx.pth is a zip archive did you mean to use torch.jit.load()?

第三步:测试运行

确认自己的屏幕缩放比,项目默认是 125%,电脑默认是100%。

python debug_screenshot.py

修改main.py文件中的第58行。

# 原代码
helper.ScreenZoomRate = 1.25
#修改为
helper.ScreenZoomRate = 1.00

运行项目,会出现自动开始的页面。

python main.py

打开游戏,注意这个游戏指的是qq游戏中的欢乐斗地主,不是腾讯游戏。

这个坑我已经替你们踩过了——

点击自动开始,如果想要自动开始下一把,点击单局按钮,换成自动就可以了。

AI 全自动玩斗地主,靠谱吗?Douzero算法教程_第6张图片

你可能感兴趣的:(深度学习,python,计算机视觉,人工智能)