下文转载自: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的更多相关文章

  1. 微信小程序「官方示例代码」浅析【上】

    从某个微信群里,拿到了这个IDE的下载地址,然后就有了这个: 根本登不上去,怎么办,怎么办呢? 看代码啊... 反正我又没有保密协议,解压缩一看NodeWebkit + React: 好啦 ,逛逛呗, ...

  2. 【Google Cloud技术咨询】「Contact Center AI」引领我们走向高度智能客服的时代

    前提背景 我们距离"不再智障"的智能客服还有多远?对于智能客服,用户一直都是"批评多于褒奖",究其原因是在于人们对于AI客服的期待很高,而AI客服在实际应用中的 ...

  3. 「腾讯视频」微信小程序插件介绍

    上期,我们在<从原理到应用,一文带你了解小程序插件能力>一文中介绍了小程序插件的意义.作用以及应用.今天开始,我们会每期与大家分享一款优秀的小程序插件,从使用场景到使用方法,都将作出详细的 ...

  4. 如何在windows中编写R程序包(转载)

    网上有不少R包的编译过程介绍,挑选了一篇比较详细的,做了稍许修改后转载至此,与大家分享 如何在windows中编写R程序包 created by helixcn modified by binaryf ...

  5. (转载)用VS2012或VS2013在win7下编写的程序在XP下运行就出现“不是有效的win32应用程序“

    原文地址:http://www.vcerror.com/?p=1483 问题描述: 用VC2013编译了一个程序,在Windows 8.Windows 7(64位.32位)下都能正常运行.但在Win ...

  6. .NET CORE编写控制台程序应有的优雅姿势(转载)

    原文地址:https://www.cnblogs.com/zuowj/p/11107243.html 本文所说的编写控制台程序应有的“正确”方法,我把正确二字加上引号,因为没有绝对的正确,因人而异,因 ...

  7. 「编程羽录」上线,程序员必备的这些技能你能get到嘛?

    大家好,我是小羽. 好久不见,给大家带来个好消息,小羽的全新专题「编程羽录」系列正式上新,主要是介绍一些关于面试题和经验总结的文章. 会为大家提供一些技术栈之外,程序员还需要的其他方面硬核知识,做到全 ...

  8. Java编写串口程序

    用Java编写串口程序一般都会用到这个 http://fizzed.com/oss/rxtx-for-java 根据电脑的情况下载 解压以后有安装文档 For a JDK installation: ...

  9. 如何让VS2012编写的程序在XP下运行

    Win32主程序需要以下设置 第一步:在工程属性General设置 第二步:在C/C++ Code Generation 设置 第三步:SubSystem 和  Minimum Required Ve ...

随机推荐

  1. 响应式Web设计与CSS(下)

    4.媒体类型与媒体查询 4.1 媒体类型 依据设备能力来分离样式的能力,始于媒体类型. 媒体类型用于针对特定的环境应用样式,包括屏幕显示.打印和电视等. 通过给link元素添加media属性,可以指定 ...

  2. 修改jar包配置文件的正确操作,jar包解压出来的文件夹重新打成jar,不依靠开发工具!!!!

    修改jar包配置文件的正确操作,有的时候通过一些解压工具可以对内部的文件进行修改,但是有时候会无效.这就很烦了 一.背景:       有一个springboot项目,事先我已经用编译好打成jar包以 ...

  3. CentOS7 安装 Nexus

    CentOS7 安装 Nexus 所需软件包 jdk-8u231-linux-x64.tar.gz nexus-3.24.0-02-unix.tar.gz 创建安装目录 mkdir -p /opt/n ...

  4. 极简 Node.js 入门 - 1.4 NPM & package.json

    极简 Node.js 入门系列教程:https://www.yuque.com/sunluyong/node 本文更佳阅读体验:https://www.yuque.com/sunluyong/node ...

  5. python设计模式之原型模式

    python设计模式之原型模式 ​ 对于原型模式而言,其中最主要的部分就是关于一个对象的复制,其中就包含两个方面:1.浅复制:2.深复制.具体的区别请看我相关的随笔.这里简略的说明一下,浅复制就等于对 ...

  6. JDK1.8源码学习-LinkedList

    JDK1.8源码学习-LinkedList 目录 一.LinkedList简介 LinkedList是一个继承于AbstractSequentialList的双向链表,是可以在任意位置进行插入和移除操 ...

  7. CODING DevOps 微服务项目实战系列第二课来啦!

    近年来,工程项目的结构越来越复杂,需要接入合适的持续集成流水线形式,才能满足更多变的需求,那么如何优雅地使用 CI 能力提升生产效率呢?CODING DevOps 微服务项目实战系列第二课 <D ...

  8. Mybatis_day3

    三 使用XML配置SQL映射器(映射文件) 关系型数据库和SQL是经受时间考验和验证的数据存储机制.和其他的ORM 框架如Hibernate不同,[MyBatis鼓励]开发者可以直接[使用数据库],而 ...

  9. gorilla/mux 的学习

    原文链接:gorilla/mux的学习 源代码: package main import ( "encoding/json" "fmt" "githu ...

  10. 百钱百鸡小游戏PHP代码

    <?php // 计算小鸡的数量 $count=[]; // 第一个for循环计算公鸡 for ($gj=1;$gj<(100/5);$gj++){ // 第二个for循环计算母鸡 for ...