感谢PaperWeekly公众号(paperweekly)授权CSDN发布。
原文:特邀 | 围棋人机大战一周年:如何让AlphaGo更快更轻盈
欢迎人工智能领域技术投稿、约稿、给文章纠错,请发送邮件至heyc@csdn.net

去年今日,AlphaGo 一举击败围棋世界冠军、韩国九段棋手李世乭,开创了人工智能的新纪元。一时间,人工智能成为贯穿全年的热门话题。

值此围棋人机大战一周年之际,我们特别邀请到卡耐基梅隆大学博士、北京大数医达科技有限公司 CTO—邓侃,为大家带来对 DeepMind 公司创始人 Demis Hassabis,以及大腕儿 Oriol Vinyals 的最新论文的读后感。

一周前,2017年3月6日,Google 旗下的 DeepMind 公司,发表了一篇题为《神经情景控制 Neural Episodic Control》的论文。

DeepMind 公司很出名,不仅因为 AlphaGo 是它的产品,而且因为 DeepMind 的员工发表了很多深度学习的论文,数量多,水平高。

《神经情景控制》很抢眼,因为作者中不仅有深度学习的大腕 Oriol Vinyals,而且还有 DeepMind 公司创始人 Demis Hassabis。

这篇论文的主题,是如何大幅度提高深度强化学习的计算效率。

提高计算效率是很重要的课题。譬如迎战李世乭时,AlphaGo 动用了 1920 颗 CPU、280 颗 GPU。如果能够大规模提高计算效率,那么就不需要动用如此暴力的硬件。

如何大规模提高计算效率?《神经情景控制》的思路并不新鲜,以占用庞大的硬盘空间为代价,来节省 CPU 运算时间。

以围棋为例,先定义两个概念

棋面 (State):

围棋棋盘上,总共有 19 x 19 =361 个落子位置。譬如目前已经下了 100 手,那么棋面上黑子和白子各有 50 粒,这些黑子和白子分别占据的位置,就是一种棋面。

据专家估计,棋面的数量,大约是 250 的 150 次方,250^150。

赢面 (Action Value):

赢面是指当前棋局下,黑子(或白子)占据的优势。

开局或者中盘的赢面(优势)不太容易计算,因为只有到了终局以后,才能知道输赢几目。

但是终局前一步的赢面很容易计算,因为对手多半会把棋子落在最佳位置上。所谓最佳位置,就是赢的目数最大,或者输的目数最少的位置。

不过,也许对手一时糊涂,会出臭棋。所以,终局前一步的赢面,应该是终局时的输赢目数,乘以一个不确定系数。

终局前两步的赢面也很容易计算,因为自己也一定会把棋子落在最佳位置上,逼迫对方输的目数最多,或者赢的目数最小。

不过,也不能保证自己永远保持清醒。是人都会犯糊涂。所以,终局前两步的赢面,应该是终局时的输赢目数,先乘以对方的不确定系数,再乘以自己的不确定系数。为了方便计算,假设对方和自己,犯糊涂的概率都一样,那么终局前两步的赢面,等于终局时的输赢目数,乘以不确定系数的平方。

依次循环,从终局一路回溯到中盘,再一路回溯到开局,就可以估算所有棋面下的赢面了。

快速查找棋面的索引

理解了赢面的计算方法以后,就容易理解《神经情景控制》论文中提出的新方法了。

棋面-赢面查询表:

用一路回溯的办法,可以计算每一种棋面的赢面。但是一路回溯的计算量很大,不如预先设置361 个表,每个表对应一个落子位置。

每个表有若干行,每行有两列,第一列是棋面,第二列是赢面。

预先训练 AlphaGo 时,对于 361 种落子的位置,分别计算在各个棋面下,对应的赢面。

训练结束后,就可以找人对弈了。

面对某一个特定棋面时,AlphaGo 该落子在哪一个位置呢?只需要在 361 个表中,分别找到对应的棋面所在的行,取出相应的赢面的值。

这样总共获得 361 个落子位置的 361 个赢面的值。取其中赢面最大的那一个落子位置即可。

快速索引:

每一个表有多少行呢?从开局到终局,差不多有 250^150 种棋面,所以每个表差不多有 250^150 行。

如果一行一行地查找当前的棋面,计算量仍然非常大。

提高查找速度,办法有两个。

一个是建索引。通过索引,找到相似的棋面,然后再仔细查找确切的棋面。

另一个是近似。没必要严格查找每一种棋面下的确切赢面,不妨把相似棋面的赢面,取个均值。

《神经情景控制》这篇论文,用的是近似的办法。

不妨把棋面看成一张图片,用卷积神经网络(CNN)提取层层抽象棋面特征。CNN 的输出,是棋面特征的编码。

棋面特征的编码是一个数字向量,数字本身没有明确意义,但是相似棋局的数字向量很邻近。

在这篇论文的实验中,特征编码的数量是 5 * 10^5,远远小于 250^150。换而言之,250^150 种棋面,被 CNN 聚类成 5 * 10^5 种相似棋面。

学习:

棋面与图片不同。轻微改变图片中的像素,图片的大致模样不会发生太大变化。但是轻微改变棋面中的黑白子的分布,赢面却大不相同。

所以,CNN 必须非常敏锐地识别棋面中的细微特征。

如何让 CNN 变得更敏锐?

在训练过程中,用一路回溯的办法,精算每个棋面的赢面。然后对比精算出来的赢面,与查询表中的近似赢面,两者之间的误差。

误差是错误的近似导致的,错误的近似是错误的 CNN 参数导致的。

逐步调整 CNN 参数,减少精算与近似之间的误差,从而让 CNN 学会更敏锐地识别棋面中的细微特征。

参考文献
[1] Neural Episodic Control https://arxiv.org/abs/1703.01988


【CSDN在线直播课】Google Tango将人类对空间的感知能力赋予移动设备。它能为应用开发带来哪些新思路?又将如何影响我们的生活?赛格威机器人(Segway Robotics)高级架构师和算法负责人陈子冲,将在《解密Google Tango,从视觉惯性里程计到机器人SLAM》课程中为你逐一解答。扫描下方二维码报名

围棋人机大战一周年:如何让AlphaGo更快更轻盈相关推荐

  1. 特邀 | 围棋人机大战一周年:如何让AlphaGo更快更轻盈

    去年今日,AlphaGo 一举击败围棋世界冠军.韩国九段棋手李世乭,开创了人工智能的新纪元.一时间,人工智能成为贯穿全年的热门话题. 值此围棋人机大战一周年之际,我们特别邀请到卡耐基梅隆大学博士.北京 ...

  2. 世界围棋人机大战、顶峰对决第二战:围棋世界冠军Lee Sedol(李世石,围棋职业九段)对战Google DeepMind AlphaGo围棋程序,AlphaGo再次胜出!

    感觉在哔哩哔哩(bilibili)上看比赛直播比较好,一直可以看到比赛的直播画面,还能听到英文解说和中文主持人的解说.YouTube上是不错,但是一方面爬梯子比较卡,另一方面只能听到英文解说. 韩国著 ...

  3. 最终一战柯洁再负AlphaGo,此后再无围棋人机大战

    本文来自AI新媒体量子位(QbitAI) 5月27日,人机大战第三场,天气晴朗. 经过209手的博弈,主动要求执白的柯洁再次负于AlphaGo.在这场人机大战中,世界围棋第一人0:3完败于围棋人工智能 ...

  4. 围棋人机大战:为什么AlphaGo不首先挑战中国棋手?(无责任猜测,不幸猜中不胜荣幸)

    人机围棋大战 最近李世石出名了,阿尔法狗出名了,谷歌上头条了! 李世石虽然连输三盘,但第四盘扳回一局,第五局明天开战.期间国内各大棋手纷纷表示"不服",要求挑战谷歌的这只狗狗,那么 ...

  5. 围棋人机大战:为什么AlphaGo不首先挑战中国棋手?(无责任猜测,不幸猜中不胜荣幸)...

    人机围棋大战 最近李世石出名了,阿尔法狗出名了,谷歌上头条了! 李世石虽然连输三盘,但第四盘扳回一局,第五局明天开战.期间国内各大棋手纷纷表示"不服",要求挑战谷歌的这只狗狗,那么 ...

  6. 围棋人机大战明日上演,这份观赛指南请留好

    本文来自AI新媒体量子位(QbitAI) 柯洁与AlphaGo的围棋人机大战,将于明天正式上演.以下内容是量子位整理的一份观赛指南,以及目前各方的备战情况. 比赛安排 5月23日,周二 09:00-1 ...

  7. “围棋人机大战”唯一人类的胜利记录将被制作成NFT进行拍卖

    北京时间2021年5月11日,韩国围棋九段棋手李世石将"围棋人机大战"唯一人类的胜利记录制作成NFT进行拍卖.此次,李世石在以太坊区块链上做数位化处理的NFT内容包括:比赛名称.地 ...

  8. 围棋人机大战属于计算机在什么方面的应用,《信息技术基础》第一章复习题库...

    第12题 智能手机.数码相机.MP3播放器等产品中一般都含有嵌入式计算机. 答案:Y 第13题 现代遥感遥测技术进步很快,其功能往往远超过人的感觉器官. 答案:Y 第14题 集成电路的工作速度主要取决 ...

  9. 围棋人机大战再开打,柯洁将挑战阿尔法狗

    自去年李世石挑战阿尔法狗失败后,人类一直期待当今围棋第一人柯洁与阿尔法狗进行一场终极较量.这场人机大战第二季的比赛日前已经敲定,时间是今年四月份,地点是浙江的乌镇.人机大战第二季,也将是人.机最后一战 ...

最新文章

  1. Linux命令行笔记
  2. IIS7.0 网站发布页面显示 500 - 内部服务器错误。您要查找的资源有问题,无法显示...
  3. golang map 存储函数
  4. 一个基于Node.js的本地快速测试服务器
  5. 一个简单的c++/cli中委托与事件的处理模型
  6. Oracle数据块原理深入剖析
  7. 转载 maven 详解 http://www.cnblogs.com/binyue/p/4729134.html
  8. 想申请AI方向硕、博,这个内容一定要提前准备!!
  9. win10怎么用计算机二进制,教你如何使用Win10计算器进行进制转换?
  10. php薄饼,薄饼的做法大全
  11. 成为阿里云大使的笔记
  12. NginxWebUI--强大的nginx可视化配置工具
  13. 实现了私聊和群聊功能的聊天工具
  14. 编译器工具链初步解析
  15. 阿里云服务器SSL不可用
  16. windows下强大的系统监视工具Procmon(Process Monitor)
  17. 穹顶之下的出行利器:百度地图热力
  18. 怎么批量删除文件扩展名(后缀)?
  19. 设置文件默认打开方式
  20. 打开UG10 C语言错误,win10系统运行UG出现乱码的解决方法

热门文章

  1. linux亚马逊服务器-安装redis
  2. cf gym/103821 (Aleppo + HAIST + SVU + Private) CPC 2022
  3. Ubuntu 在文件夹下查找文本文件中的关键字
  4. 动态代理的两种实现方式
  5. 微信小程序后台登录一直失败
  6. 动态地图开发的未来应用场景有哪些?
  7. CSS总结(基本文本和字体样式)
  8. 基于Halcon学习的基于形状模板匹配【一】find_scaled_shape_model.hdev例程
  9. Cisco-HP交换机互连操作
  10. pyspider all 只启动了_【麦芽口腔】全民爱牙月正式启动!