转载:人家编写的程序:「雀神 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 ...
随机推荐
- 眼见为实 — CSS的overflow属性
1. overflow属性 CSS的overflow属性指定当内容溢出一个元素的框,会发生什么.举个栗子: <!DOCTYPE html> <html> <head> ...
- 【av68676164(p18-p20)】进程控制
4.2.1 进程控制的概念 进程控制的概念 在进程生存全期间,对其全部行为的控制 存在四个典型的控制行为 创建进程 阻塞进程 撤销进程 唤醒进程 进程创建 功能:创建一个具有制定标识(ID)的进程 参 ...
- week4:周测错题
4.如何在类外,给对象动态添加绑定方法 import types def qingtianzhu(obj,name): print("请我叫我一柱擎天,简称{},颜色是{}".fo ...
- leetcode刷题笔记-1. 两数之和(java实现)
题目描述 给定一个整数数组 nums 和一个目标值 target,请你在该数组中找出和为目标值的那 两个 整数,并返回他们的数组下标. 你可以假设每种输入只会对应一个答案.但是,数组中同一个元素不能使 ...
- Homekit_温湿度_人体红外_光强_传感器
市面上大多数,传感器产品多是简单的单个传感器进行售卖,这里我推荐一款四合一的产品,使用Homekit进行控制. 前置需求: 苹果手机一台 四合一传感器一个 USB数据线一根 介绍: 1.外观上是一个小 ...
- 使用正则表达式限制<kbd>QLineEdit</kbd>不能输入大于某个整数
使用正则表达式限制QLineEdit不能输入大于某个整数,即:使用正则表达式,匹配不大于某个整数 举例:匹配不大于4567 * 原理分析: 匹配不大于4567这个数,所以第一个想到的是只要小于4567 ...
- WIN10家庭版安装ORACLE的问题
第一次安装成功后可启动ORACLE服务,重启计算机后服务监听无法启动,建议替换系统
- 第6章 运行Spark SQL CLI
第6章 运行Spark SQL CLI Spark SQL CLI可以很方便的在本地运行Hive元数据服务以及从命令行执行查询任务.需要注意的是,Spark SQL CLI不能与Thrift JDBC ...
- lx
自我介绍:我是18软件技术5班 张震. -统计截止目前为止我自己写过代码3000行,我希望在本课结束后累计到10000行代码, 选择自测题17分,错题大多是运算符和运算符先 后级一类的题,编程题不会, ...
- python安装numpy、scipy、gensim以及报错unable to import 'smart_open.gcs', disabling that module处理
首先,安装gensim库,必须先安装numpy+mkl和scipy 安装顺序是依次安装numpy+kml.scipy.gensim,根据自己Python下载的版本进行下载 如果你的库里面有numpy. ...