You cannot select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.

60 lines
9.3 KiB
Markdown

This file contains ambiguous Unicode characters!

This file contains ambiguous Unicode characters that may be confused with others in your current locale. If your use case is intentional and legitimate, you can safely ignore this warning. Use the Escape button to highlight these characters.

# 151 | 精读AlphaGo Zero论文
长期以来,利用人工智能技术挑战人类的一些富有智慧的项目,例如象棋、围棋、对话等等都被看做人工智能技术前进的重要参照。人工智能技术到底是不是能够带来“拟人”的思维和决策能力,在某种意义上成了衡量人工智能水平以及整个行业发展的试金石。
在这些项目中,围棋可以说是一个难度很大的项目,更是饱受关注。一方面,围棋的走棋可能性非常多,且棋局变化多端,这似乎给计算机算法带来了很大的困难。另一方面,围棋在一些国家和地区(比如中国、日本和韩国)不仅仅是一个智力竞技项目,更有一系列理念、人格等全方位的配套文化概念,使得人们对此产生怀疑,人工智能模型和算法是否能够真正学习到有价值的信息,而不仅仅是模拟人的行为。
2015年来自谷歌DeepMind团队的AlphaGo打败了职业二段樊麾在这之后短短两年的时间里该团队的人工智能技术迅猛发展不仅以4比1击败韩国的李世石九段更是在今年战胜了即时世界排名第一的柯杰可谓战胜了被誉为“人类智慧皇冠”的围棋项目。
前段时间DeepMind团队在《自然》杂志上发表了AlphaGo的最新研究成果AlphaGo Zero这项技术更是把人工智能在围棋上的应用推向了一个新高度可以说是利用计算机算法把围棋的棋艺发展到了一个人类之前无法想象的阶段。
今天我就来带你认真剖析一下这篇发表在《自然》杂志上的名为《不依靠人类知识掌握围棋》Mastering the Game of Go without Human Knowledge的论文 。标题中的不依靠人类知识当然有一点夸张,不过这也正是这篇论文的核心思想,那就是仅用少量甚至不用人类的数据来驱动人工智能算法。在之前的很多人工智能模型和算法来看,这是一个巨大的挑战。
## 作者群信息介绍
文章共有17位作者都来自伦敦的谷歌DeepMind团队。AlphaGo的第一篇论文也是发表在《自然》杂志当时有20位作者比较起来这篇论文的作者数目减少了。另外虽然两篇论文的主要作者都是三名共同贡献但是这三个人发生了一些变化。下面我就介绍一下本文的三个主要作者。
第一作者大卫·希尔维David Silver目前在DeepMind领导强化学习Reinforcement Learning的多项研究。大卫的经历很传奇早年曾在南非生活和学习1997年从剑桥大学毕业后先到一家名为Elixir Studios的游戏公司工作了好几年。然后到加拿大的阿尔伯塔大学University of Alberta学习机器学习特别是强化学习。他当时就开始尝试开发用计算机算法来进行围棋博弈。大卫2013年全职加入DeepMind之后迅速成了DeepMind在强化学习特别是深度学习和强化学习结合领域的领军人物。
第二作者朱利安·施瑞特维泽Julian Schrittwieser是谷歌的一名工程师他长期对围棋、人工智能感兴趣。值得注意的是朱利安这次成为主要作者而在之前的第一篇文章中还只是普通贡献者可以推断在AlphaGo Zero这个版本里有相当多的工程优化。
第三作者卡伦·西蒙彦Karen Simonyan是DeepMind的一名科学家长期从事计算机视觉和人工智能技术的研究。他来自2014年DeepMind收购的一家名为Vision Factory的人工智能公司。卡伦最近几年的论文都有高达几千的引用量。
## 论文的主要贡献
首先,**这篇论文的主要“卖点”就是较少利用、或者说没有利用传统意义上的数据驱动的棋局**。第一篇论文里的AlphaGo以及后面的一些版本都是主要利用人类的棋局作为重要的训练数据采用监督学习Supervised Learning和强化学习结合的形式。在AlphaGo Zero这个版本里人类的棋局被彻底放弃而完全依靠了强化学习从完全随机Random的情况开始“进化”出了具有人类经验的各种走法的围棋策略并且达到了非常高的竞技水平。可以说这是本篇论文的核心贡献。
在核心的模型方面也有不少改进,比如一个很大的改进就是**把策略网络Policy Network和价值网络Value Network合并**,这样就能更加有效地用简单统一的深度模型来对这两个网络进行建模。另外,整个模型的输入特征也有变化,从深度模型提取特征外加人工挑选特征,到这篇文章提出的**完全依靠棋盘的图像信息来自动抓取特征**,可谓是减少人工干预的一个重要步骤。
文章的另一大看点是实验结果。作者们展示了新的AlphaGo Zero模型能够战胜之前很多版本的模型最令人惊奇的可能莫过于AlphaGo Zero在“自学”的过程中还“悟”到了很多人类在围棋学习过程中领悟的棋局招数。
## 论文的核心方法
AlphaGo Zero模型的核心起源于一个简单的深度网络模型。这个深度网络的输入是棋盘当前位置的表达Representation以及过去的历史信息输出一个走子的概率以及对应的价值。这个价值是用来描述当前棋手能够赢的概率。刚才我们已经说了这个深度网络集合了策略网络和价值网络形成了这么一个统一的评价整个棋盘的神经网络。在具体的网络架构方面AlphaGo Zero采用了计算机视觉领域最近流行的**残差架构**ResNet可以说也是这个方法的一个小创新。
有了这个基本的神经网络之后,作者们就需要和强化学习结合起来。具体来说,在每一个位置的时候,算法都会去执行一个**蒙特卡罗树搜索**Monte Carlo Tree Search对当前的神经网络模型输出的走子策略进行一个修正或者可以认为是“加强”。这个蒙特卡罗树搜索的输出结果依然是走子的概率但是这个概率往往比之前单从神经网络得到的要强。然后更新神经网络的参数使得参数尽可能地接近蒙特卡罗树搜索的结果。
那么,什么是蒙特卡罗树搜索?简单来说,就是我们从当前的棋盘情况出发,对整个棋盘产生的所有可能性进行有限制情况的搜索,也就是说,不是“穷举法”。大体说来,从某一个可能性走到下一个可能性主要是依靠下一个可能性发生的概率,以及通过神经网络来判断是否能赢的可能性。
整个算法最开始的时候是从随机的位置初始化然后通过对神经网络的更新以及每一个迭代通过利用蒙特卡罗树进行搜索从而找到更加合适的神经网络模型的参数整个算法非常简单明了。不管是结构上还是复杂度上都比之前的版本要简洁不少。文章反复强调公布的算法可以在单机上运行基于Google Cloud的4 TPU机器相比于最早的AlphaGo需要使用176个GPU也可以看到整个模型的进化效果。
## 方法的实验效果
AlphaGo Zero的实验效果是惊人的。从模拟中看大约20小时后这个版本的模型就能够打败依靠数据的监督学习版本的AlphaGo了。而到了40小时后这个版本已经可以打败挑战了李世石的AlphaGo。也就是说不依靠任何人类棋局AlphaGo Zero在不到2天的运算时间里就能够达到顶级的人类水平。
除了可以打败之前的AlphaGo版本以外这个版本相比于监督学习的版本在大约20小时以后也可以更好地预测人类对战的走子。并且随着训练时间的推移这种预测的准确性还在不断提升。
刚才我们也提到了AlphaGo Zero在自我训练的对战中在不依靠人类数据的情况下的确是发现了相当多的人类熟悉的对战套路。然而有一些人类在围棋历史中较早发现的套路却没有或者较晚才在AlphaGo Zero的训练历史中习得。这打开了很多问题比如发生这样情况的原因究竟是什么等等。
最后作者们展示了AlphaGo Zero非常强大的实战能力在和之前最强的AlphaGo版本也就是AlphaGo Master的对战中AlphaGo Zero取得了100比0的绝对优势。而相同的AlphaGo Master与人对弈的成绩是60比0。
## 小结
今天我为你讲了发表在《自然》杂志上的这篇关于AlphaGo Zero的论文这篇文章介绍了一个简洁的围棋人工智能算法结合深度学习和强化学习不依靠人类的信息。
一起来回顾下要点:第一,关注这篇文章主要作者的信息,我们可以推断出文章的一些变化方向。第二,这篇文章有两大看点,一是很少或者几乎没有利用人类的棋局数据,二是得到了显著的实验结果。第三,文章提出的核心模型将策略网络和价值网络合并,与强化学习相结合。
最后给你留一个思考题有人说AlphaGo Zero并不是完全不依靠人类信息比如围棋本身的规则就是很强的监督信息再比如不管每一步的走动如何棋局最后是输是赢依然是很强的信息。那么AlphaGo Zero到底是不是还是依赖了很强的数据呢我们能不能把AlphaGo Zero看做是监督学习的产物呢你怎么看
欢迎你给我留言,和我一起讨论。