转载:人家编写的程序:「雀神 AI」Suphx
下文转载自:https://news.51cto.com/art/202004/613746.htm
按:虽然还是玩棋牌乐的AI,但相对于我们日常编写的XX管理系统,好比哺乳动物 VS 鱼类了。
2019 年 8 月 29 日,微软发布了一个名为 Suphx(超级凤凰)的「麻将 AI」,在专业的麻将竞技平台上,Suphx 的实力胜过了顶级人类选手的平均水平。
- 作者:神经小兮来源:HyperAI超神经|2020-04-03 09:05
场景描述:还记得去年 8 月微软发布的「雀神 AI」Suphx 吗?今天,该研究团队在 arXiv 上发布了更新版的论文,进一步介绍了 Suphx 背后的技术。
2019 年 8 月 29 日,微软发布了一个名为 Suphx(超级凤凰)的「麻将 AI」,在专业的麻将竞技平台上,Suphx 的实力胜过了顶级人类选手的平均水平。
当时一经发布,Suphx 便引起了广泛的关注,不仅是人工智能领域,不少麻将爱好者也都赶来围观讨论。

麻将的信息集数目和信息集平均大小超过了桥牌、德扑和围棋
人们评价该系统比战胜了职业围棋手的 AlphaGo 更复杂,被誉为「最强日麻人工智能」。
今天,该系统的研发团队在 arXiv 上发表了论文《Suphx: Mastering Mahjong with Deep Reinforcement Learning》(《Suphx:掌握麻将与深度强化学习》),更深一步地讲解了 Suphx 背后的技术。

《Suphx:掌握麻将与深度强化学习》
论文地址:https://arxiv.org/pdf/2003.13590.pdf
Suphx 愈战愈勇:已超越 99.99% 玩家
此前我们已经介绍过,Suphx 系统利用深度强化学习,从 5000 场比赛中学习、吸取经验之后,在日本专业的麻将竞技平台「天凤」上击败了众多麻将玩家,取得平台「特上房」的最高段位十段。

Suphx 在天凤平台的段位,远高于其它麻将 AI
这样一个强悍的麻将 AI,究竟是如何打造的?来自微软亚洲研究院、京都大学、中国科学技术大学、清华大学以及南开大学的研究团队,在最新版的论文中,进行了深入的介绍。
从论文中,我们也得知,Suphx 在进一步的学习下,水平也更进一步。在拥有超过 35 万位玩家的「天凤」平台上,被官方评为水平超越 99.99% 以上玩家,这是计算机程序首次超过麻将中大多数顶级人类玩家。
五大模型与强化学习,造就雀神 AI
Suphx 包含一系列卷积神经网络,它学习了五种模型来处理不同的场景,包括 discard(丢弃模型)、Riichi 模型、chow 模型、Pong 模型和 Kong 模型。

discard 模型(上)与其它四个模型的架构(下)
在此基础上,Suphx 采用另一种基于规则的模型,来决定是否宣布赢家并进行下一轮,检查是否赢牌可以从其他玩家丢弃的牌中来判断,或者从排墙上抽出来的牌来判断。
据介绍,Suphx 的训练过程一共分为三步。
首先,它的 5 个模型都使用从「天凤」平台收集的顶级人类玩家的日志进行训练。
然后,使用包含一套基于 CPU 的麻将模拟器和基于 GPU 的轨迹生成推理引擎,通过自我博弈强化学习对系统进行微调。
最后,在在线游戏期间,使用运行时策略调整被用来观察当前轮的结果,从而使系统执行得更好。

Suphx 中的分布式强化学习系统
由于麻将牌局中,对手的信息都是未知的,因此,Suphx 尝试了先知教练技术来提升强化学习的效果。在自我博弈的训练阶段,利用隐藏信息引导模型训练方向 ,从而增强 AI 模型对可见信息的理解,并找到有效的决策依据。
评估 :5760 场角逐,创造十段纪录
在实验之前,团队在 44 个 GPU (包括 4 个 Nvidia Titan XPs 用于参数服务器,40 个 K80s 用于自我博弈玩家)上,使用 150 万次牌局,对每个模型进行了为期两天的训练。
该团队对 20 个 Nvidia Tesla K80 GPU 上的 Suphx 进行了评估。为了减小稳定排名的方差,他们从 100 多万场的麻将牌局数据集中,随机抽取了 80 万牌局的数据,并从中进行了 1000 次取样。
评估结果为,在「天凤」平台与人类玩家进行了超过 5760 场比赛后,Suphx 创造了十段的纪录——大约只有 180 个玩家曾经达到过这个水平。而 Suphx 稳定的排名是 8.74 段(人类玩家最高水平是 7.4 段)。

强化学习 agent 最终稳定排名统计
在不断优化中,RL-2 最终取得更好的表现
有趣的是,研究人员写道,Suphx 的防守「非常强」,放胡的概率很低,只有 10.06%,而且它开发了自己的游戏风格,可以保证牌的安全,并以半平手取胜。

AI 玩家(南方)会选择保守打法
放弃篮筐内的六筒,因为牌桌上已有该牌
此外,论文的合著者写道,大多数现实世界的问题,如金融市场预测和物流优化与麻将有相同的特点。比如复杂的操作/奖励规则、非完美信息问题等等。
作者相信,在 Suphx 中设计的麻将技术,包括全局奖励预测、先知引导以及政策调整等,都有巨大的潜力,将来可广泛应用于现实世界,帮助解决真实而复杂的实际问题。
转载:人家编写的程序:「雀神 AI」Suphx的更多相关文章
- 微信小程序「官方示例代码」浅析【上】
从某个微信群里,拿到了这个IDE的下载地址,然后就有了这个: 根本登不上去,怎么办,怎么办呢? 看代码啊... 反正我又没有保密协议,解压缩一看NodeWebkit + React: 好啦 ,逛逛呗, ...
- 【Google Cloud技术咨询】「Contact Center AI」引领我们走向高度智能客服的时代
前提背景 我们距离"不再智障"的智能客服还有多远?对于智能客服,用户一直都是"批评多于褒奖",究其原因是在于人们对于AI客服的期待很高,而AI客服在实际应用中的 ...
- 「腾讯视频」微信小程序插件介绍
上期,我们在<从原理到应用,一文带你了解小程序插件能力>一文中介绍了小程序插件的意义.作用以及应用.今天开始,我们会每期与大家分享一款优秀的小程序插件,从使用场景到使用方法,都将作出详细的 ...
- 如何在windows中编写R程序包(转载)
网上有不少R包的编译过程介绍,挑选了一篇比较详细的,做了稍许修改后转载至此,与大家分享 如何在windows中编写R程序包 created by helixcn modified by binaryf ...
- (转载)用VS2012或VS2013在win7下编写的程序在XP下运行就出现“不是有效的win32应用程序“
原文地址:http://www.vcerror.com/?p=1483 问题描述: 用VC2013编译了一个程序,在Windows 8.Windows 7(64位.32位)下都能正常运行.但在Win ...
- .NET CORE编写控制台程序应有的优雅姿势(转载)
原文地址:https://www.cnblogs.com/zuowj/p/11107243.html 本文所说的编写控制台程序应有的“正确”方法,我把正确二字加上引号,因为没有绝对的正确,因人而异,因 ...
- 「编程羽录」上线,程序员必备的这些技能你能get到嘛?
大家好,我是小羽. 好久不见,给大家带来个好消息,小羽的全新专题「编程羽录」系列正式上新,主要是介绍一些关于面试题和经验总结的文章. 会为大家提供一些技术栈之外,程序员还需要的其他方面硬核知识,做到全 ...
- Java编写串口程序
用Java编写串口程序一般都会用到这个 http://fizzed.com/oss/rxtx-for-java 根据电脑的情况下载 解压以后有安装文档 For a JDK installation: ...
- 如何让VS2012编写的程序在XP下运行
Win32主程序需要以下设置 第一步:在工程属性General设置 第二步:在C/C++ Code Generation 设置 第三步:SubSystem 和 Minimum Required Ve ...
随机推荐
- 使用Spock 单元测试
一.什么是Spock Spock 是一个测试框架,甚至可以说是一门语言他是基于Groovy开发的.它的语法完全遵循 BDD(行为驱动开发) 风格的结构.它是基于 Junit test runner 上 ...
- Python创建进程、线程的两种方式
代码创建进程和线程的两种方式 """ 定心丸:Python创建进程和线程的方式基本都是一致的,包括其中的调用方法等,学会一个 另一个自然也就会了. "" ...
- Vue老项目支持Webpack打包
1.老的vue项目支持webpack打包 最近在学习Vue.js.版本是2.6,webpack的版本也相对较老,是2.1.0版本.项目脚手架只配置了npm run dev和npm run build. ...
- 阿里出品的最新版 Java 开发手册,嵩山版,扫地僧
说起嵩山,我就想起乔峰,想起慕容复,以及他们两位老爹在少林寺大战的场景.当然了,最令我印象深刻的就是那位默默无闻,却一鸣惊人的扫地僧啊.这次,阿里出品的嵩山版 Java 开发手册的封面就有一个扫地僧, ...
- 2020-07-05:tcp和udp的区别和应用场景。如何实现断点续传?
福哥答案2020-07-05: 区别:1.可靠性:tcp可靠.udp不可靠.2.连接性:tcp面向连接.udp无连接.3.报文:tcp字节流.udp面向报文.4.传输效率:tcp低.udp高.5.多点 ...
- 从系统报表页面导出20w条数据到本地只用了4秒,我是如何做到的
背景 最近有个学弟找到我,跟我描述了以下场景: 他们公司内部管理系统上有很多报表,报表数据都有分页显示,浏览的时候速度还可以.但是每个报表在导出时间窗口稍微大一点的数据时,就异常缓慢,有时候多人一起导 ...
- Java实现token的生成与验证-登录功能
一.token与cookie相比较的优势1.支持跨域访问,将token置于请求头中,而cookie是不支持跨域访问的: 2.无状态化,服务端无需存储token,只需要验证token信息是否正确即可,而 ...
- ANALYZE导致的阻塞问题分析
背景 问题描述 DBA同学收到qps大量下降的告警,qps从2w下降到1w,然后又自动恢复了. 基于Analysis Report信息,发现有很多 STATE:Waiting for table fl ...
- 通过phpstudy安装wordpress、使用BP拦截POST型请求包
使用BP拦截POST型请求包 一.安装phpstudy https://www.xp.cn/download.html 二.安装wordpress Step1:下载wordpress源码,https: ...
- C++ Templates 目录
第1部分 : 基本概念 第1章 函数模板 1.1 初识函数模板 1.1.1 定义模板 1.1.2 使用模板 1.1.3 二阶段翻译 1.2 模板参数推导 1.3 多模板参数 1.3.1 返回类型的模板 ...