AlphaGo来了!(四)_互动科普

使用社交账号登录

购买价格:
付款方式:

互动科普

主页 > 科普纵览 > 工程 • 技术

AlphaGo来了!(四)

黄铂钧  发表于 2018年05月21日

一次不算“深度”的改进带来一场“深度”的变革

人工神经网络最适合用在写不出好的“过程式”程序的地方。一个代表性的领域是处理视觉中的各种分类问题,如图片分类、物体检测、人脸识别等。当我们辨认出一张人脸时,很难说清大脑经历了怎样一个思考过程,似乎就是一看照片就“直接”辨认出来了。

一种特殊的深度神经网络模板,叫深度卷积网络(DCNN),在这些应用中大放异彩。基于DCNN模板训练出来的神经网络程序,近年来不但几乎席卷所有计算机视觉分类比赛的冠军,而且在很多项目的标准测试集上已经超出人类的平均视觉水平。巧的是,围棋对弈的思考中也有像人脸识别这样“说不清道不明”的地方。比如围棋高手经常会说某个盘面或者某种下法“味道不好”,这是一种向棋盘一眼望去就“直接”产生的感觉,俗称“棋感”。AlphaGo正是通过深度卷积网络提高了棋感之后,一跃达到职业棋力的。

201604p8_f1.jpg

图 围棋中有关“棋感”的问题与计算机视觉领域中的经典问题在“问法”上很类似

 


2014年底前后,1个月内发表了2篇学术论文,报告了用深度卷积网络做围棋棋局预测的实验结果,准确率都大幅超过之前的算法。其中1篇论文就来自开发AlphaGoDeepMind团队,而AlphaGo在蒙特卡罗树搜索框架下的2个改进就是基于这篇论文中描述的深度卷积网络。有意思的是,最初一个激励研究人员尝试将深度卷积网络应用到围棋的重要原因是,他们认为围棋中所谓的“棋感”很大程度上就是一个视觉分类问题,而深度卷积网络专以解决这类问题见长。这2篇论文的结果在2015年初的时候就在计算机围棋研究群体中引发热议,甚至现在AlphaGo中实现的这2种具体改进方法当时也都有人在计算机围棋的全球邮件组里提出来了。当时大家的共识是,深度卷积网络的棋局预测能力肯定可以显著提高现有蒙特卡罗树搜索程序的棋力,只是恐怕没几个人会预料到这些“简单”改进会一步就跨越了从业余到职业的距离,达到直接对抗世界冠军的程度。

具体来说,AlphaGo开发团队首先改进了蒙特卡罗树搜索中的选择策略。他们的做法是通过训练一个13层的深度卷积网络来预测给定盘面下人类棋手有可能走的变化,然后尽量在这些变化中再选择搜索。这个神经网络程序模块的输入信息是给定盘面,输出信息是棋盘上每一个点有可能被人类棋手落子的概率。

为了得到这样一个神经网络,开发团队从一个叫KGS的互联网围棋对弈平台中找来3000万个对局记录的盘面,通过比对神经网络输出的概率分布与对局时棋手实际所走位置的差别来获得误差信息,然后通过前面所说的增量微调的方法逐步得到预测准确率更高的神经网络。这3000万个盘面绝大多数都是从人类业余高段位棋手(KGS 6段以上,相当于中国业余四、五段)的对局中获得的,尤其是训练神经网络所用的“正确答案”,也是这些业余高手实际落子的位置。因此,这样训练出来的神经网络,本质上是在模仿网上众多业余高手的平均落子情况。实际上,AlphaGo之前的蒙特卡罗树搜索程序的选择策略中也有这样一个类似模块,不过是根据人类棋手的知识直接编写而成的,所以AlphaGo只需要简单地将这个模块替换成训练好的神经网络,这个改进就完成了。要注意的是,神经网络只是用于实现原来选择策略中的一部分,因此AlphaGo的选择策略中仍然有很大一部分是手写知识,所以准确地说,AlphaGo是用神经网络加手工编写的混合手段加入围棋知识的。

因为是用于蒙特卡罗树搜索的选择策略,AlphaGo团队给这个预测落子位置的神经网络起名“策略网络”,并且称这个仅使用策略网络(增强选择策略)的版本为“rpAlphaGo”。别看这个策略网络在技术上很简单,但效果惊人地好。这个策略网络用于整个AlphaGo算法框架中的选择策略模块。之前的蒙特卡罗树搜索程序中,这个模块全部基于手写知识,模块本身棋力不值一提,但整体程序棋力尚能达到业余高段。现在AlphaGo用神经网络增强之后,光选择策略一个模块就趋近于训练数据中业余棋手的平均水平,这样的策略模块整合进搜索大框架之后,体现出来的整体棋力就远超这个平均水平。根据AlphaGo的论文结果,他们将策略网络加入一个大概业余初段(KGS 3段)棋力的传统蒙特卡罗树搜索围棋程序(称为“rAlphaGo”)中之后,得到的新的蒙特卡罗树搜索程序(即“rpAlphaGo”)棋力立即提升950个等级分,达到大约业余六段(KGS 8)的水平。

等级分是一个常用的棋力评估概念。大致而言,相差230个等级分的棋手之间对弈,分高者单局有80%的胜率,这样在正式的53胜制围棋对决中,胜率就会接近95%,也就是几乎肯定会胜出。如果以此为相差一档的话,那么提高950分意味着一下提升4个档次!这已经使这个仅仅配备了策略网络的“rpAlphaGo”超过了之前所有传统蒙特卡罗树搜索围棋程序,成为棋力最强的围棋程序。

业余六段已经十分接近职业棋手水平,但仍有些许差距,而另一项关于评估函数的改进使得AlphaGo这座冰山最终浮出水面。

传统蒙特卡罗树搜索程序要把一个变化一直展开到终局,然后得到一次胜负信息,这个过程实质上并没有评估函数的参与。AlphaGo通过训练另一个叫做“价值网络”的深度卷积网络得到一个评估函数,它可以在每个变化展开到终局之前就提前评估胜率。AlphaGo把这个提前预测的结果和实际展开到终局之后的胜负结果取平均值,作为这个变化的最终胜率信息。AlphaGo论文的结果显示,这个改动在本已是最强围棋程序的“rpAlphaGo”的基础上再涨450个等级分,得到的“完整版AlphaGo”即使跑在单机上也达到和樊麾二段不相上下的棋力,这意味着AlphaGo已经迈进职业棋手水平的门槛。最后,正式和樊麾对局的AlphaGo程序跑在计算能力更强的集群上,因此提高了搜索速度,所以又再获得250个等级分的提高,最终以50的绝对优势完胜欧洲围棋冠军樊麾二段。


(本文发表于《科学世界》2016年第4期)



全部评论

你的评论