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

简介:

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


值此围棋人机大战一周年之际,我们特别邀请到卡耐基梅隆大学博士、北京大数医达科技有限公司 CEO—邓侃,为大家带来对 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 运算时间。

 

—01—


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

 

1.棋面 (State):

 

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

 

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

 

2. 赢面 (Action Value):

 

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

 

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

 

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

 

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

 

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

 

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

 

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

 

—02—


快速查找棋面的索引

 

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

 

1.棋面-赢面查询表:

 

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

 

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

 

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

 

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

 

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

 

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

 

2.快速索引:

 

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

 

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

 

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

 

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

 

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

 

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

 

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

 

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

 

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

 

3. 学习:

 

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

 

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

 

如何让 CNN 变得更敏锐?

 

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

 

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

 

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


来源:paperweekly


原文链接

相关文章
|
人工智能 算法 Go
人工智能称霸围棋,吾感觉不可思议
人工智能称霸围棋,吾感觉不可思议
73 0
|
机器学习/深度学习 人工智能 算法
1:2,李世石最后一战被AI击败,唯一战胜过AlphaGo的人退役了
退役赛的最后一局,李世石回到了自己的家乡。对战之地距离李世石的出生地飞禽岛 40 多公里,他曾在飞禽岛度过了他的童年时光,也是在这里决定成为职业围棋选手。
141 0
1:2,李世石最后一战被AI击败,唯一战胜过AlphaGo的人退役了
|
机器学习/深度学习 人工智能 算法
洞悉AlphaGo超越围棋大师的力量:机器之心邀你一起强化学习
美国计算机协会会刊(CACM)9 月发表了《强化学习的复兴》一文,深度介绍了强化学习的运用及其与深度学习的比较。强化学习是机器学习的主要三种类型之一,被应用在多种训练任务中。我们熟知的 AlphaGo 中就用到了大量的强化学习。「人工智能研学社· 强化学习组」将强化学习作为第一期学习内容,与大家分享有关深度学习的基本知识。本期教学内容推荐 Rich Suntton 教授关于强化学习的演讲视频——强化学习介绍及与函数近似结合的讨论。
241 0
洞悉AlphaGo超越围棋大师的力量:机器之心邀你一起强化学习
|
机器学习/深度学习 人工智能 搜索推荐
AlphaGo 4:1战胜李世石,我们需要更好的理解人工智能
AlphaGo 与李世石的人机世纪大战落下帷幕,在最后一场比赛中,我们第一次见证了 AlphaGo 进入读秒阶段,最终 AlphaGo 战胜了李世石,在5局比赛中以4:1的绝对优势取得了胜利。在这样一个历史性时刻,已不再需要关注某一局比赛,而是应该从更加宏观的角度去思考人工智能。
256 0
AlphaGo 4:1战胜李世石,我们需要更好的理解人工智能
|
人工智能 算法
11连胜!绝艺横扫中美日韩对手,称霸围棋AI世界大战
历时一个多月的艰苦鏖战,来自中国、日本、韩国、比利时、美国等国的11个顶级围棋AI,捉对厮杀、层层晋级,王者争霸战今日落幕。
1810 0
|
机器学习/深度学习 人工智能
|
机器学习/深度学习 人工智能 机器人