来呀!AI喊你斗地主——首个搞定斗地主的深度神经网络
参加 2018 AI开发者大会,请点击 ↑↑↑
作者 | Anonymous authors
译者 | 蔡志兴
编辑 | Jane
出品 | AI科技大本营
【导读】近年来,从围棋到 Dota 团战赛,深度神经网络应用在各种游戏竞赛中不断取得突破。这一次,有人把这种方法用到斗地主游戏的研究中,可以说真的很接地气了!
本论文是 ICLR 2019 的投稿论文,目前该论文还处于双盲审状态,因此也还未公布作者。营长在看到这篇论文的时候,就想第一时间分享给大家。接下来,我们就一起来看看这个有趣的研究吧!也预祝作者的论文能够成功被接收,今后在这个项目上还可以再有进展!
摘要
近几年,深度神经网络在围棋,国际象棋和日本象棋(Shogi)等多款游戏中都能够击败人类。和这些棋类相比,中国的纸牌游戏“斗地主”也是非常出名!斗地主属于非完整信息类的游戏即不知对方底牌,在游戏过程中包含隐藏信息,具有随机性,并且多个玩家间存在合作与竞争关系。本文,我们将介绍一种使用卷积神经网络(CNN)来预测斗地主游戏中玩家行为的方法,它是通过人类的游戏记录来进行监督训练。在没有搜索情况下,此网络就能以绝大优势击败了性能最好的AI 程序;在重复模式(Duplicate Mode)下也能战胜了顶级的人类业余玩家。
简介
斗地主(CCP)易于学习但想要擅长或精通却是难事,它不仅需要数学知识和战略性的思考,更需要玩家精心策划每一步。游戏规则我们在这里就不多说了,主要说一下我们的研究思路和成果。
我们选择 CNN 来解决斗地主游戏问题的主要原因如下:
首先,CNN 在完善的信息游戏中取得了超越人类的卓越表现
其次,在CCP 中存在同一类别不同等级的两套出牌方式(例如“34567”比“45678” 等级来得低,等级低的不能压等级高的。)
迄今为止,还没有使用深度神经网络来研究斗地主游戏的。该网络是否能够在游戏输入信息不完善的情况下选择合理的操作还有待证明。由于在每局游戏中有队友的存在,这就出现了两个问题:一是要教会该网络进行合作;二是它要具备良好的推理能力。针对这些问题,我们设计了 DeepRocket,它是目前能够在斗地主游戏中取得最好效果的一种网络。在下面的实验中,我们证明了该网络可以在不完善的信息游戏中学会合作与推理。
Deep Rocket 框架
DeepRocket 系统包含三个部分: 叫地主模块、策略网络以及带牌(Kicker)网络。当游戏开始时叫地主模块会被调用以便计算 DeepRocket 的得分(叫地主和抢地主时分数会加倍)。在 DeepRocket 出牌之前会先调用策略网络,策略网络会依据当前环境预测出最应该执行的策略,其中包括带牌模式(带单张或者一对)。当策略中含有带牌时,Kicker 网路才会被调用。游戏流程如下图1、2所示。
图1 DeepRocket 游戏流程
图2 策略网络和 Kicker 网络的工作流程
▌叫地主模块
在分完牌后需要先确定谁是地主,所以我们为此设计了一个基于逻辑代码的叫地主模块。叫地主的关键因素在于手牌的好坏。是否决定叫地主取决于手牌中是否有大牌(如:“A”、“2” 以及大小王)和手牌顺不顺(有较少的杂牌)。
▌策略网络
策略网络采用监督学习的方式。其中该网络包含 10 层 CNN 层和 1 层全连接层,激活函数采用 Relu。最终的 softmax 层输出所有合理出牌方式 a 的概率分布。输入为当前的游戏状态。策略网络的训练样本来自于随机抽样,这些样本包含当前状态以及最优的决策,采用随机梯度上升的方式训练网络,让策略网络的出牌与人类的出牌越来越相近。
我们使用 800 万条游戏记录来训练策略网络,一条记录代表一场完整的游戏,一局斗地主按回合来分,又能分为许多样本。
策略网络的输入是一个 15×19×21 的三维二元张量。我们用 X、Y 和 Z 代表三个维度。其中 X 代表牌的种类,从 3 到大小王。Y 表示每个种类牌的数量(从 1 张到 4 张), 以及 CCP 中卡牌的组合如单张、对子等。Z 代表每一轮的顺序信息,作用是在游戏中将可变长度变换为固定长度,具体细节如表 1 所示。
表1 Z 的含义
重复试验之后发现,512 滤波器最为合适,10 层 CNN 能使得模型获得最佳的性能,其中每层都使用不同的步长。当我们将 Kicker 网络加到 DeepRocket 中后,策略网络会输出 309 个决策的概率。具体的组合情况如表 2 所示。
表2 组合类型
▌Kicker 网络
仅凭叫地主模块以及策略网络就足以完成一场游戏,但决定带牌的类型对游戏来说也至关重要。
我们将带不同的牌标记为不同的策略。并额外建立了一个 Kicker 网络来预测所带的牌。策略网络负责预测 Main Group(如: 3334 中的 3 个 3)和所带牌的种类如单张或者对子。而 Kicker 网络则负责预测所带的牌具体是哪几张。
Kicker 网络的输入包含剩余的牌以及策略网络的输出值,它由一个15×9×3的三维二元张量构成。其中 X 的含义与策略网络中相同,而 Y 与 Z 的含义如表所示。Kicker 网络包含 28 种输出,其中 15 种为单牌,13 种为对子。
Kicker 网络由 5 层 CNN 层和 1 层全连接层构成,输出为带牌的概率。Kicker 网络每次仅输出一个带牌种类。如果策略网络预测应该出“333444” 以及两张单牌,这时则要调用两次 Kicker 网络。
实验
▌实验设置
我们获取了 800 万条游戏记录,首先将其划分为 8000 万个“状态-行为”对,90% 作为训练数据集,10% 作为测试数据集;然后将其作为网络的输入;最后使用 TFRecords 存储到硬盘中;这样不仅方便修改网络参数,也加快了训练速度。策略网络的大小为 256,对人类专家的行为预测准确度可达 86%-88%。使用 i7-7900X CPU,NAVIDA 1080Ti GPU 以及 Ubuntu 16.04 的操作系统计算策略网络的输出需要 0.01-0.02 秒。
Kicker 网络同样是监督式学习,也使用以上的 800 万条游戏记录作为数据集,但在训练之后它能达到 90% 的准确度,甚至比策略网络更高。
▌与目前最好的 AI 对比
在 DeepRocket 出现之前,MicroWe 是最好的CCP AI。如图 3 和图 4 所示,我们进行了 50000 场游戏测试,每一次迭代表示 5000 场。我们将 20 张卡牌直接发给地主,这样地主的胜率会比平常低。“DR VS MW”代表 DeepRocket 是地主,而 MicroWe 是农民。从图中可看出 DR 表现比 MW 好。
图3 DR 与 MW 的比赛结果
图4 不同 AI 之间比赛的胜率
▌与人类专家对比
我们举办了一场人机比赛,邀请了四位顶级业余选手,在循环模式下进行了 10 场比赛。结果,DR 以 30:24 的分数战胜了人类团队。
▌合作与推理
在 DR 的游戏记录中,我们找到了一个典型的例子能够展现其良好的合作能力(T:10;B:大王;S:小王。其中冒号之前表示玩家,冒号后表示打出的牌,以分号作为某玩家出牌结束标志,0 代表地主)
牌面:
4456777889JKKAA2B;
335567899TTJJKAA2;
4456689TTJQQQK22S;
33Q;
游戏进程:
0,33;1,55;2,66;0,77;1,AA;1,6;2,T;0,J;1,K;0,2;2,S;2,44;0,KK;2,22;2,89TJQK;2,QQ;0,AA;0,56789;1,789TJ;1,3;2,5;
以上加粗部分是关键步骤,在游戏的最后 DR 打出一张“3”来帮助队友取得胜利,由此可见 DR 具有良好合作能力的。
我们也找到了一个能够展现 DR 推理能力的例子:
牌面:
33345578TTJKKA22S;
34566789TQQQKKAA2;
4456678999TJJQA2B;
78J;
游戏进程:
0,345678;1,56789T;0,6789TJ;0,QQQKK;0,AA;2,22;2,55;2,3334;2,TT;2,A;0,2;
以上加粗部分是关键步骤,虽然最后农民输了,但是他选择打“A”是一个不错的选择,因为地主只剩一张牌,而农民手里还有 (“7, 8, J, A, S”)五张牌,选择出“A”也是人类专家的正常逻辑,DR 能够从人类中学到此行为。
展望
虽然,我们已经证明了 CNN 能够预测斗地主游戏中玩家的行为,并与队友进行合作;在没有任何的 MCTS 之下能达到顶级选手的水平甚至更高。但是,我们也还有许多方面要进行完善。第一个是强化问题,直接将应用在 AlphaGo 的方法移植到 CCP 中是行不通的;第二个是关于 Monte Carlo 搜索或者 MCTS 的问题。
在未来,DR 可以在以下方面进行改进:
叫地主的方式可以改进,在抢地主的过程中只有 0、1、2 和 3 是正确操作,0 代表玩家不想当地主。我们将尝试用深度神经网络去训练叫地主的方式。
我们将尝试使用随机权重训练模型。
我们将训练分别代表三个角色的三个输出模型。
最后预祝作者的论文被成功接收,今后在这个项目上还可以再有进展!
原文链接:
https://openreview.net/pdf?id=rJzoujRct7&utm_source=wechat_session&utm_medium=social&utm_oi=40535670652928
【完】
2018 AI开发者大会
2018 AI开发者大会是一场由中美人工智能技术高手联袂打造的AI技术与产业的年度盛会!是一场以技术落地为导向的干货会议!大会设置了10场技术专题论坛,力邀15+硅谷实力讲师团和80+AI领军企业技术核心人物,多位一线经验大咖带你将AI从云端落地。
大会日程以及嘉宾议题请查看下方海报(点击查看大图)
相关文章:

在 Django 的 View 中利用 function decorator 可实现一定程度的代码重用
在 Django 中,假设有几个 view, 他们都接受类似的参数,做类似的处理,最后又输出类似的变量到模板中配合显示,唯一不同的就是模板路径。 最普通的写法可能是这样: defview_a(request, some_id): some_obj SomeClass.…

Linux---管理网络
一、ip基础知识1.ipv42进制32位-----10进制 172.25.0.10/255.255.255.0172.25.0.10:ip地址255.255.255.0:子网掩码子网掩码255位对应的ip位为网络位子网掩码0对应的ip位为主机位二、主机联网主机有两块网卡:有线和无线;࿰…

网络丢包现象分析处理指导书5
sniffer简明教程 xiong2127 51cto技术博客sniffer是由NAI公司提供的强大的协议分析仪,完整的sniffer系统,除了我们经常使用的以太网模块外,还具有广域网模块,广域网模块需要专用的硬件支持。比如E1/FR/POS/ATM等,均需要…

信息与计算机科学考研学校排名,计算机科学与技术考研学校排名
该楼层疑似违规已被系统折叠 隐藏此楼查看此楼排名 学校名称 评估结果1 北京大学 A2 清华大学 A3 浙江大学 A4 国防科技大学 A5 北京航空航天大学 A6 北京邮电大学 A7 哈尔滨工业大学 A8 上海交通大学 A9 南京大学 A10 华中科技大学 A11 电子科技大学 A12 北京交通大学 A-13 北…

800万中文词,腾讯AI Lab开源大规模NLP数据集
参加 2018 AI开发者大会,请点击 ↑↑↑ 10 月19 日,腾讯 AI Lab 宣布开源大规模、高质量的中文词向量数据。该数据包含 800 多万中文词汇。 腾讯 AI Lab 表示,相比现有的公开数据,该数据在覆盖率、新鲜度及准确性上大幅提高&#…

屏幕后处理——Bloom
来自于《Unity Shader 入门精要》书本的学习 先上图 代码分3部分 1.PostEffectsBase.cs using System.Collections; using System.Collections.Generic; using UnityEngine; //在编辑器状态下可执行该脚本来查看效果 [ExecuteInEditMode] //屏幕后处理特效一般需要绑定在摄像…

服务端口大全+注解
端口:0服务:Reserved说明:通常用于分析操作系统。这一方法能够工作是因为在一些系统中“0”是无效端口,当你试图使用通常的闭合端口连接它时将产生不同的结果。一种典型的扫描,使用IP地址为0.0.0.0,设置ACK…

双绞线是计算机网络的一种通信线路吗,计算机网络环境的信道传输技术分析
韩长军【摘要】计算机网络的产生对人类文明进步树立了新标杆,促进了人们的交流,对于人类社会信息获得的途径以及咨询传播方式等等也产生了极其重大的影响。数据密集程度较高的科学和工程,比如、水文观测、地壳波动资料、气象行业等等…

为了智能驾驶,李彦宏要改造城市道路
10 月 18 日,在世界智能网联汽车大会上,百度 CEO 李彦宏提到:当汽车变得越来越智能,道路的基础设施也必须跟着变,必须进行改造。 李彦宏在发言中表示,“很多自动驾驶汽车都是需要依赖极其昂贵的激光雷达来实…

美团大脑:知识图谱的建模方法及其应用 | 公开课笔记
参加 2018 AI开发者大会,请点击 ↑↑↑分享嘉宾 | 王仲远(美团 AI Lab NLP 中心负责人)整 理 | 周翔出 品 | AI科技大本营作为人工智能时代最重要的知识表示方式之一,知识图谱能够打破不同场景下的数据隔离,为搜…

LINQ篇:ASP.NET using LINQ(Part One) Scott大师的产物
【原文地址】Using LINQ with ASP.NET (Part 1) 【原文发表日期】Sunday, May 14, 2006 9:49 PM 最近使我激动不已的新鲜事之一就是LINQ系列技术的出现,包括LINQ,DLINQ,XLINQ和不久后的其他技术。 LINQ将被完全集成到代号为Orcas的下个版本Vi…

大学生如何合理使用计算机,大学生计算机合理使用引导分析
摘 要:在当今社会中,计算机已经成为大家工作与生活不可缺少的工具。而在大学校园内,越来越多的学生也拥有了自己的计算机。计算机不仅可以帮助大学生进行学习活动,还能使学生在紧张学习之余进行娱乐放松。但是,大学生在…

关于机器学习中山峰聚类算法的说明
前言在之前关于聚类算法的文章中,笔者主要涉及的内容均是和参数求解相关的,如C均值(包括模糊C均值)、混合高斯模型等,而对于一些无参数密度估计的算法尚未讨论,而且一般基于参数密度估计的算法均是建立在假…

SQLDMO- (数据备份与恢复篇)
引用usingSystem;usingSystem.Collections.Generic;usingSystem.Text;publicsealedclassDbOper { /**//// <summary> /// DbOper类的构造函数 /// </summary> private DbOper() { } /**//// <summary> /// 数据库备份 /// </summary> …

详细介绍Java垃圾回收机制
垃圾收集GC(Garbage Collection)是Java语言的核心技术之一,之前我们曾专门探讨过Java 7新增的垃圾回收器G1的新特性,但在JVM的内部运行机制上看,Java的垃圾回收原理与机制并未改变。垃圾收集的目的在于清除不再使用的对…

美国卡尔顿学院计算机专业怎么样,美国卡尔顿学院排名
在学术上,卡尔顿学院在美国处于领先地位。被美国新闻与世界报道评为全美前10位的文理学院卡尔顿学院排名卡尔顿学院是明尼苏达州菲尔德市一所历史悠久的文科私立院校,一直奉行无宗教派别男女合校制度。卡尔顿学院始建于1866年,经过一百多年的…
比特大陆发力边缘计算,详解终端AI芯片BM1880
作者 | 中国科学院微电子研究所 剑白 前不久比特大陆推出其云端人工智能芯片--SOPHON(算丰)BM1682芯片,BM1682是比特大陆设计,并对图像、视频等处理给予额外辅助支持的人工智能硬件加速芯片,其峰值运算速度为3TFLOPs,可提供给用户…

职称计算机 菏泽,山东菏泽2016年职称计算机首批考试时间
一、考试范围及科目(模块)1、参加2016年全国专业技术人员计算机应用能力考试的人员,须按照《2014版全国专业技术人员计算机应用能力考试科目(模块)代码表》(以下简称《2014版考试科目》)(见附件1)所列科目(模块)要求进行报名考试。2、评聘中级专业技术职务者&#x…

GitHub 挂了
参加 2018 AI开发者大会,请点击 ↑↑↑今天早上,全球最大的同性交友网站 GitHub 出现大规模宕机,你中招了没有?▌GitHub“挂了”“见鬼???”,一位 Twitter 用户评论道,“…

在ARC环境中autoreleasepool(runloop)的研究
引言 最近有个大佬考察了我关于autoreleasepool的了解, 之前一直认为自己了解, 但是稍微一问深, 自己却哑口无言. 仔细思考了下, 决定要将这个问题结合之前的知识从新梳理一下, 当然, 实践是必不可少的. main函数中的autoreleasepool的作用?系统的autoreleasepool我们自己创建…

QoS实验配置详解
QoS---CQ(定制队列)学习CQ(定制队列)的配置;本实验首先用ACL定义一些流量。然后再将这些流量进行先后排队,最后将排好队的流量策略应用到接口上 1 过滤流量R2(config)#access-list 101 permit ospf any any…

朴素贝叶斯分类器详解及中文文本舆情分析(附代码实践)
参加 2018 AI开发者大会,请点击 ↑↑↑作者 | 杨秀璋(笔名:Eastmount),贵州财经大学信息学院老师,硕士毕业于北京理工大学,主要研究方向是Web数据挖掘、知识图谱、Python数据分析、图像识别等。…

计算机应用基础试题及答案试卷号7074,阅读文章,完成试题。后来才知道,在这千钧一发的时刻,是郝副营长划着了火柴,点燃了那本书,举得高高的, - 学进去中小学试卷试题库...
阅读《苏州园林》(节选),回答问题。苏州园林(节选)叶圣陶①苏州园林据说有一百多处,我到过的不过十多处。其他地方的园林我也到过一些。倘若要我说说总的印象,我觉得苏州园林是我国各地园林的标本。②设计者和匠师们因地制宜,自出…

解决“由于应用程序的配置不正确,应用程序未能启动,重新安装应用程序可能会纠正这个问题”...
[VS2005]解决“由于应用程序的配置不正确,应用程序未能启动,重新安装应用程序可能会纠正这个问题” 今天在准备发布用VS2005写的那个程序时,拷贝到我同事机器上,双击突然出现了“由于应用程序的配置不正确,应用程序未能…

PHP实时生成并下载超大数据量的EXCEL文件
最近接到一个需求,通过选择的时间段导出对应的用户访问日志到excel中, 由于用户量较大,经常会有导出50万加数据的情况。而常用的PHPexcel包需要把所有数据拿到后才能生成excel, 在面对生成超大数据量的excel文件时这显然是会造成内…

小学三年级上册计算机计划书,小学三年级班主任工作计划书
教学计划是教师个人制定的工作计划,通常为一个学期,内容主要包括制定教学计划的指导思想、教学内容以及教学目标,最重要的是每个教师要针对自己所带的学生特点来制定计划,因材施教才是对我们学生最好的教育.一、指导思想端正学习态…

10行代码爬取全国所有A股/港股/新三板上市公司信息
参加 2018 AI开发者大会,请点击 ↑↑↑作者 | 高级农民工本文已获原作者授权,如需转载,请联系原作者。摘要: 我们平常在浏览网页中会遇到一些表格型的数据信息,除了表格本身体现的内容以外,可能还想透过表格…

阿里云前端周刊 - 第 29 期
推荐 1. RESTful API 设计最佳实践 https://blog.philipphauer.de/... 项目资源的URL应该如何设计?用名词复数还是用名词单数?一个资源需要多少个URL?用哪种HTTP方法来创建一个新的资源?可选参数应该放在哪里?那些不涉…

Flash传值给asp页面
1.LoadVars的load方法-----在flash中写一个拉出两个动态文件框,变量名为myName与myPsd,拉出一组件button,名为:submit_button,用于提交,再拉出一T…

《深度学习500问》,川大优秀毕业生的诚意之作
前端工程师掌握这18招,就能在浏览器里玩转深度学习基于知识图谱的人机对话系统 | 公开课笔记来呀!AI喊你斗地主美团大脑:知识图谱的建模方法及其应用 | 公开课笔记60天,4位诺奖得主,他们将这样改造区块链程序员的江湖,务必掌握这些…