AI赌神升级!无惧bluff,6人局德扑完胜世界冠军,训练只用了8天

640?wx_fmt=jpeg

大数据文摘出品


2017年年初,Brain vs AI的德州扑克人机大战在卡耐基梅隆大学(CMU)落幕,由4名人类职业玩家组成的人类大脑不敌人工智能程序Libratus。


获胜后人类还遭到了Libratus的无情嘲讽。


640?wx_fmt=jpeg


但是那时候Libratus还只是个只能在1V1局里称霸的超级玩家,要说人类最喜欢的6人局这样的“大场面”,当时的Libratus还没有拿到入场券。


而就在昨天,Facebook与CMU学Noam Brown、Tuomas Sandholm的最新研究成果——Pluribus,就在人类最常见的无限制德州扑克6人局里,战胜了人类顶尖选手。


论文被Sicence收录:

https://science.sciencemag.org/content/early/2019/07/10/science.aay2400


跟还是不跟?高手之间的对决


Darren Elias(1986年11月18日出生)是一名美国职业扑克玩家,曾获得四项世界扑克巡回赛冠军。


在他与Pluribus的对决过程中,Darren Elias从来没有遇到过如此不害怕的对手。


一个有经验的扑克玩家,当有两个J(一个面朝上,另一个藏起来,一手既不好也不坏)时,都会谨慎行事。但是Elias的对手看起来好像不知道该怎么做。即使当Elias决定虚张声势(bluff),下注时看起来很有信心,而他的对手似乎在鼓励他继续!好像一点都没有被吓到。


最后,Elias的虚张声势没有起作用,他输了。


640?wx_fmt=jpeg

Elias


正如埃利亚斯先生意识到的,Pluribus知道什么时候该虚张声势,也知道别人在虚张声势,还知道什么时候该改变自己的行为,这样其他玩家就无法确定自己的策略。32岁 Elias先生说: 它确实做了一些人类很难做到的事情。


赢的背后,只是8天的训练


之前AI和人玩游戏,要么是双人游戏,如国际象棋、跳棋等,要么就是双方之间的零和博弈(一方赢一方输),AI可以在游戏中找到Nash equilibrium strategy(纳什平衡)来保证自己不会输。


关于Nash equilibrium strategy(纳什平衡)属于博弈论范畴(注:纳什证明了,如果允许混合策略,那么任何一个博弈,只要参与者数量是有限的、参与者可以选择的纯策略也是有限的,那么这个博弈至少有一个纳什均衡)。


以经典的“石头剪刀布”游戏为例,AI可以在游戏中找到对方的弱点和常出的手势进行学习,以达到最终的胜利,而多人扑克意味着玩家数量的增多,在更复杂的游戏中,AI难以确定如何与纳什均衡相抗衡;采用固定策略不能很快观察到的对手的策略倾向,而且需要监控到多个玩家在游戏中策略的转变,这对于AI多人扑克博弈来说,是一项挑战。


鉴于多人游戏,如果学习多个玩家的出牌习惯等特征的训练数据集成本过大,这里Pluribus采用的策略是自己与自己博弈,不使用人类对手的数据作为模型训练的输入。在开始时,随机的选择玩法,通过不断的训练来提升自己的性能,这里采用的博弈策略是改良版本的迭代的蒙特卡洛CFR(MCCFR),通过自我博弈,左右手互博,自己制定了一个blueprint strategy(蓝图策略),最后对每个可能的状况进行概率分布统计,通过搜索决策树来决定下一步的行为,是叫牌还是出牌。


CFR是一种迭代的自我游戏算法,AI从完全随机游戏开始,然后通过学习击败早期版本的自己逐渐改进。


在算法的每次迭代中,MCCFR指定一个玩家作为其当前策略在迭代中更新的标记。在迭代开始时,MCCFR根据当前所有玩家的策略(最初是完全随机的)模拟一手扑克牌。一旦模拟完成,人工智能就会回顾每一个玩家做出的决定,然后通过选择其他可用的行动来预测这个决定的好坏程度。


640?wx_fmt=jpeg

Pluribus玩家博弈树


在解决不完全信息博弈中搜索的问题,Pluribus跟踪每一手,根据其策略达到目前状况的可能性。不管Pluribus实际上握着的牌,它首先会计算如何使用可能的每一手,谨慎地平衡所有的策略,以保持对于对手的不可预测性。


640?wx_fmt=jpeg

Pluribus 中的实时搜索


扑克以外的事


之前在1V1局中大胜人类的Libratus后来去五角大楼上班去了,国防部认为这种策略型人工智能或许可以帮助他们进行战略的制定。


负责 Pluribus 项目的 研究员Noam Brown说:“Pluribus的技术可以用于华尔街交易、拍卖、政治谈判和网络安全这些活动中,这些活动就像扑克一样,涉及隐藏信息,因为你并不总是知道真实世界的状态。


尽管像谷歌这样的公司,有着“Don't be evil”的信条,但是,不可避免的是这样能够理解人类策略的人工智能,还是会引发大众对于人工智能的某种恐惧,或者说,如果这样的人工智能被运用到军事决策中,将会带来多严重的后果?


未来智能实验室是人工智能学家与科学院相关机构联合成立的人工智能,互联网和脑科学交叉研究机构。


未来智能实验室的主要工作包括:建立AI智能系统智商评测体系,开展世界人工智能智商评测;开展互联网(城市)云脑研究计划,构建互联网(城市)云脑技术和企业图谱,为提升企业,行业与城市的智能水平服务。


  如果您对实验室的研究感兴趣,欢迎加入未来智能实验室线上平台。扫描以下二维码或点击本文左下角“阅读原文”


640?wx_fmt=jpeg

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/491223.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

pytorch报错RuntimeError: error in LoadLibraryA

这是因为腾讯管家把某个文件当成病毒删除了,恢复该文件即可 恢复腾讯管家杀毒误删文件方法: https://jingyan.baidu.com/article/6766299763dab854d41b8457.html

OpenCV示例学习(二): 基本图形绘制算子:line(),circle(),fillPoly(), ellipse()

OpenCV示例学习&#xff08;二&#xff09;&#xff1a; 基本图形绘制算子&#xff1a;line(),circle(),fillPoly(), ellipse() #include <opencv2/opencv.hpp>using namespace cv;#define WINDOW_NAME1 "【绘制图1】" //为窗口标题定义的宏 #define W…

BZOJ-1901 Zju2112 Dynamic Rankings 函数式线段树 套 树状数组+离线处理

1901: Zju2112 Dynamic Rankings Time Limit: 10 Sec Memory Limit: 128 MB Submit: 6058 Solved: 2521 [Submit][Status][Discuss] Description 给定一个含有n个数的序列a[1],a[2],a[3]……a[n]&#xff0c;程序必须回答这样的询问&#xff1a;对于给定的i,j,k&#xff0c…

动荡的 2019:数据和 AI 生态圈

来源&#xff1a;云头条这是数据领域又一个激烈动荡的年头&#xff0c;令人兴奋&#xff0c;但又错综复杂。随着越来越多的人上网&#xff0c;一切继续在加快“数据化”的步伐。这个大趋势的发展势头越来越猛&#xff0c;归因于基础设施、云计算、AI和开源各个领域取得的进步的…

卸载pytorch

1、使用conda卸载Pytorch conda uninstall pytorch conda uninstall libtorch2、使用pip卸载Pytorch pip uninstall torch 如果当初是用conda install 命令安装的pytorch&#xff0c;则用第一种方法&#xff0c;如果是用pip install命令安装的&#xff0c;则用第二种方法。或…

无线通信界的3大天王,谁能驾驭百亿台IoT设备?

来源&#xff1a;物联网智库导 读数量爆发式增长的背后&#xff0c;Wi-Fi、蓝牙、Zigbee三大无线连接技术正上演一场“争霸赛”。本文通过对三项技术的详细对比&#xff0c;以分析三项技术在具体应用场景中的优劣势。根据前瞻产业研究院发布的《2018—2023年中国物联网行业细分…

Python删除文件夹和建立文件夹

import os import shutilif os.path.isdir(dir): #判断文件夹dir是否存在shutil.rmtree(dir, True) #删除文件夹dir os.mkdir(dir) #建立文件夹dir

C++使用流进行输入输出

首先应用 #include <iostream> #include <iomanip> 1.进制读写 int val10;//十进制数 cout<<"输出8进制"<<oct<<val<<endl; cout<<"输出16进制"<<hex<<val<<endl; cout<<"输出10进…

C++学习:两个vector对象拼接

C学习&#xff1a;两个vector对象拼接 方法一&#xff1a;insert() 函数 方法二&#xff1a;重载一下号运算符 方法三&#xff1a;copy()函数 #include <iostream> #include <vector>using namespace std;// 重载一下号运算符 template <typename T> vecto…

TypeError: 'numpy.ndarray' object is not callable

取ndarray的某几个数&#xff0c;若写为&#xff1a; a np.array([0,1,2,3,4,5,6]) index np.array([1,2,3]) b a(index) print(b) 则会报错TypeError: numpy.ndarray object is not callable 正确写法为&#xff1a; a np.array([0,1,2,3,4,5,6]) index np.array([1,…

腾讯张正友:计算机视觉的三生三世

本文转载自&#xff1a;腾讯AI实验室本文将介绍腾讯 AI Lab & Robotics X 主任张正友博士在 CCF-GAIR 2019 大会上所做的报告&#xff0c;讲述计算机视觉研究的历史和未来。7 月 12 日-7 月 14 日&#xff0c;2019 第四届全球人工智能与机器人峰会&#xff08;CCF-GAIR 201…

2016年度,这40项IT技能年薪轻松超过10万美元

众所周知&#xff0c;科技行业聚集了大批高薪职位&#xff0c;但这同样也是一个快速变化的市场。今天的热门技能明天就有可能惨遭淘汰。 求职网站Dice.com最近发布了《2016薪酬调查》&#xff0c; 列举了年薪最高的各种科技技能。 Dice在2015年秋天对16301名IT专业人士进行了调…

TypeError: 'numpy.int64' object is not iterable ,'int' object is not iterable

想用一个list来动态地增加numpy类型数据&#xff0c;如下面的代码所示&#xff0c;发现报错TypeError: numpy.int64 object is not iterable a [] b np.array([1,2,3]) a.extend(b[0]) a.extend(b[1]) a.extend(b[2]) print(a) 于是将numpy数据转为list类型&#xff0c;如…

未来50亿年科学预测

来源&#xff1a;宇宙解码近期未来史现今——公元2500年公元2020年 三维全息电视将进入生活&#xff0c;人们可以通过付费点播观看。公元2025年 氢燃料电池技术将给交通运输领域带来革命&#xff0c;氢燃料电池汽车将开始中批量生产。餐桌上会出现具有肉类营养特征的植物。培养…

div无法触发blur事件解决的方法

默认情况下div无法获取焦点&#xff0c;无法触发focus与blur事件&#xff0c;推測span&#xff0c;a等标签也无法触发焦点事件(input:button。及button标签能够触发) 怎样使div触发blur事件&#xff1a;能够给div加上tabindex属性 在线演示&#xff1a;http://sandbox.runjs.cn…

OpenCV学习笔记(二):3种常用访问图像中像素的方式

OpenCV学习笔记&#xff08;二&#xff09;&#xff1a;3种常用访问图像中像素的方式 #include <opencv2/opencv.hpp>using namespace cv; using namespace std;int main() {//【1】创建原始图并显示Mat srcImage imread("F:/C/2. OPENCV 3.1.0/TEST/11.jpg"…

Detected call of `lr_scheduler.step()` before `optimizer.step()`.

在使用pytorch的指数衰减学习率时&#xff0c;出现报错UserWarning: Detected call of lr_scheduler.step() before optimizer.step(). In PyTorch 1.1.0 and later, you should call them in the opposite order: optimizer.step() before lr_scheduler.step(). Failure to d…

水题 UVA 1586 - Ancient Cipher化学式分子量计算

原题见&#xff1a;http://acm.hust.edu.cn/vjudge/contest/view.action?cid106424#overview 题目要求&#xff0c;根据所给化学量与原子量计算化学式的相对分子质量。。。其实就是怎么对应起来的事。 代码如下&#xff1a; 1 #include <stdio.h>2 //给出一种物质的分子…

【边缘计算】边缘计算元年一文看懂云边协同!九大场景带来新一轮信息革命...

来源&#xff1a;产业智能官2019 年边缘计算备受产业关注&#xff0c;一度引起了资本市场的投资热潮&#xff0c;很多人把 2019 年称作边缘计算的元年。理性来看&#xff0c;造成如此火爆局势难免有一些炒作因素在推波助澜&#xff0c;毕竟边缘计算的概念存世也已多年。当然&am…

OpenCV学习笔记(三):多通道图像分离、混合算子:split(),merge()

OpenCV学习笔记&#xff08;三&#xff09;&#xff1a;多通道图像分离、混合算子&#xff1a;split(),merge() #include <opencv2/opencv.hpp>#define BRG_BLUE_CHANNEL 0 #define BRG_GREEN_CHANNEL 1 #define BRG_RED_CHANNEL 2using namespace cv;int main(int argc…