田渊栋:德扑AI原理解读 本应和AlphaGO一样瞩目

2017年03月27日 10:48 新浪体育 微博
微博 微信 空间 分享 添加喜爱
田渊栋出席沙龙田渊栋出席沙龙

  据AI科技评论报道。

  为了彻底揭开人机大战的奥秘,地平线大牛讲堂有幸邀请到 UEC 曾经的打入决赛的队伍 —— Facebook 围棋 AI 程序 DarkForest 的首席工程师及第一作者田渊栋博士为我们一探究竟,本文由奕欣和亚萌整理,并由田老师做了审核和编辑,特此感谢。

  嘉宾介绍

  田渊栋,Facebook 人工智能研究院研究员,Facebook 围棋 AI 程序 DarkForest 首席工程师及第一作者,卡耐基梅隆大学机器人研究所博士,曾担任 Google 无人驾驶团队软件工程师,并获得国际计算机视觉大会(ICCV)马尔奖荣誉提名。

  本文是田渊栋演讲关于德州扑克部分的节选。

  德州扑克

  接下来我们讲一下德州扑克。首先我们要确认,这是“一对一无限注德州扑克”游戏(Heads-up no-limit Texas Hold‘em)。“一对一”意思就是我和你两个人的零和游戏,我输钱你赢钱、我赢钱你输钱,并不是很多人在一张牌桌上有人当庄家的那种。多人游戏要难很 多,主要是现在用的办法在多人游戏下不能保证效果,然后状态空间也变大很多。

  “无限注”就是你每次下注的时候不一定是之前的整数倍,可以是任意数。那么有限注德扑就是每次下注的时候,是成倍数地下,“有限 注”的问题已经在两三年以前就解决了,当时是发了一篇Science文章。那篇文章其实本应该会跟AlphaGO一样受到很大瞩目,但是不知道为什么,当 时并没有。

  有两个很牛的扑克AI,这两个都是用的同样的框架,叫作Counterfactual Regret Minimization(CFR),简言之是把游戏中遇到的可观测状态(叫作信息集Information Set)都罗列出来,然后对于每个可观测状态,通过最小化最大悔恨值的办法,找到对应的策略。然后反复迭代。

  一个是CMU的Libratus,它打了20天的比赛,赢了4个最牛的扑克玩家。(AI科技评论网按:在2017年1月,Libratus玩了12万手一对一不限注的德州扑克。到比赛结束时,人工智能领先人类选手共约177万美元的筹码。)

  另外一个叫DeepStack(AI科技评论按:加拿大阿尔伯塔大学、捷克布拉格查理大学和捷克理工大学训练的AI系统与11位职业扑克手进行了3000场无限注德州扑克比赛,胜率高达10/11),他们在网上也打过一些大型职业比赛。

  CMU Poker bot

介绍内容介绍内容

  CMU Poker bot没有用深度学习。他们用到了End-game solver,因为德扑一局时间比较短,可能就几个回合就结束了,所以你可以从下往上构建游戏树。这样的好处是,最下面节点游戏树的状态是比较容易算出来 的,用这个反过来指导设计上面的游戏树。另外他也用了蒙特卡罗方法,标准的CFR在每次迭代的时候,要把整个游戏树都搜一遍,这个对于稍微复杂一点的游戏 来说是不可接受的,因为是指数级的复杂度,所以用蒙特卡罗方法,每次选一些节点去更新它上面的策略。还有一点就是,一般来说我们在做游戏的时候往往会想到 怎么去利用对方的弱点,但其实不是这样的。更好的方法是,我尽量让别人发现我的弱点,然后据此我可以去改进它,变得越来越强。用术语来讲,就是去算一下对 手的最优应对(Best response),让对手来利用你的弱点,然后用这个反过来提高自己的水平。

  阿尔伯塔大学的DeepStack

原理介绍原理介绍

  我们看到DeepStack的基本流程是AlphaGo和国象的某种混合版本,即有限深度的搜索,加上用值网络估值。具体来说,从当前状态出发向前看三 四层的子树,在最底一层用值网络估算一下值(谁好谁坏),然后用通常的CFR去求解这棵子树的的最优策略。对于值网络来说,每个人有两张手牌,52选2, 就有1326种情况,但每种情况都有概率,以这个作为输入。输入同时也包括当时的筹码数和公共牌。输出的是在每种手牌情况下,估计的值函数 (counterfactual value)会是多少。

  据新浪科技消息,今年4月Libratus(冷扑)很可能将来打中国,与中国的德州扑克牌手进行一场人机大战。

  (文玄)

推荐阅读
聚焦
关闭评论