alphago原理为什么能打败李在石

热门推荐:
  作者授权转载
  作者:龙心尘、寒小阳
  ◆ ◆ ◆
  博主是围棋小白,下棋规则都记不清楚,也没有设计过棋类AI程序。这篇文章主要是阅读《Nature》论文及关于AlphaGo的相关文章的学习心得。
  本文的主要目的是增进分享,交流学习,方便初学者了解AlphaGo中的算法,以及一些机器学习中的常见思路。真正的工程实现过程远比本文介绍得复杂。
  本文更多是启发式地进行阐述与分析,包括一些作者结合自己的理解进行的简化处理。文章中不严谨和理解不当之处,欢迎大家批评指出,我们努力修改完善。
  ◆ ◆ ◆
围棋的业务特点
  机器学习的第一步都是先了解业务。围棋的业务特点包括其基本规则、对弈特性和下棋的典型思路。根据这些业务特点,我们可以分阶段实现我们的围棋算法。
  2.1 围棋的基本规则
  使用方形格状棋盘及黑白二色圆形棋子进行对弈,棋盘上有纵横各19条直线将棋盘分成361个交叉点,棋子走在交叉点上,双方交替行棋,落子后不能移动,以围地多者为胜。并且双方可以相互吃子(提子),只要我方棋子将对方某一片紧邻的棋子周围围住,就可以将对方这片棋子吃掉。
  2.2 对弈特性
  基于以上规则,围棋对弈过程中有以下特性:
  不像象棋、军棋那样盘面上的棋子越走越少,而是越走越多。所以一局棋从开始到结束,用一张标记好走棋顺序的棋谱就能保存绝大部分下棋的信息,是一个时间序列。如下图就是《Nature》论文中的樊麾与AlphaGo对弈的一个棋谱:
  对弈从开局到中局变化都很大,尤其是中局,往往是一着不慎,满盘皆输。用数学的描述叫做估值函数(得分函数)非常不平滑。
  到收尾阶段,由于棋盘上总体的棋子是越来越多的,其变化就越来越少。可以看成是一个动态收敛的过程。状态空间非常大,约为2&10170,超过目前的计算机的计算能力,无法通过暴力穷举解决。
  2.3 下围棋的基本思路
  而人类不需要搜索这么多状态空间也能够下好围棋,说明还是有规律的,只是这些规律比较抽象。我们机器学习算法就是要尽量找出人类下围棋的一些规律。我们可以简单总结一些人类下围棋典型思路如下:
  首先是明确基本规则,这个方便。其次是掌握一些基本“定式”,也就是在一个给定的局面下人类一般会怎么走,这个过程不涉及优劣的判断,也比较难以用确定性的规则描述。基于对棋局未来演化情况的评估,决定当今当下的下棋策略。所谓“手下一着子,心想三步棋”。这是围棋最复杂的情况。
  2.4 分阶段实现下棋算法
  基于以上这些初步了解,我们可以分阶段实现我们的下棋算法:
  第一步是学会人类下棋的一般定式,形成一些优秀考虑的下棋策略。
  第二步是对落子之后的棋局演化做出有效评估,基于评估的结果优化自己的最终落子策略。
  ◆ ◆ ◆
先做一个baswline系统
  现在我们思路大概有了,但仍然不知道模型的最终样子应该是怎样。此时我们建议先动简单手做一个baseline,然后在模型调优的过程中不断地分析问题、解决问题。这样就很有可能更快找到问题的最佳解决方案。设计baseline思路基本如下:
  3.1 抽象成数学问题:多分类
  通过以上分析可知,下围棋的过程就是一个不断地决策在哪个位置落子的过程。在落子之前,你已知棋盘上所有已落子的情况。而棋盘上总共就19&19=361个位置,所以落子就是一个361选1的多分类问题。将多分类问题转换成简单的2分类问题来处理,(采用one-to-rest的思路,)则需要361个2分类的分类器,每个分类器只评估落在361个位置中某1个具体位置的分数,再从这361个结果中中挑选分数最大的位置来落子。
  3.2 哪些特征,如何选择?
  分类器的输出我们知道了,就是361个标签。那分类器的输入又是哪些特征呢?其实就是当前的棋盘分布。
  我们先考虑第一类特征。围棋一共是361个交叉点,每个交叉点有三种状态(白子、黑子、无子):可以用1表示黑子,-1表示白字,0表示无子。于是一个361维度的向量就可以完全表示当前棋盘的情况。理论上说,只输入这些特征就可以了。如下图就是演示用矩阵表示棋局状态的情况,而矩阵拉长就是一个向量了:
  但是,因为围棋的极端复杂性,这些棋子(输入特征)的关系是非线性的。虽然理论上采用神经网络的算法可以处理非线性特征,但是计算量和对资源的消耗都太大。相反,如果有依据地增加一些新的特征的维度,使特征间的非线性关系不那么复杂,将使得模型变得更加简单、更加便于训练,优势还是很明显的。
  那怎么增加更多的特征呢?这就需要利用部分围棋领域中的知识,比如围棋中的术语:气、目、空等概念都可以作为我们构造新特征的基础。在AlphaGo的论文中就是采用了以下更多的特征:
  所以,输入模型的特征是一个361&n维度的向量。基于这些向量来训练模型。
  最终,AlphaGo只依靠一个13层的卷积神经网络就能训练出一个比较好的落子分类器。比起图像识别竞赛用到的20、30层的深层神经网络还是比较浅了。这些都是特征工程的功劳。
  3.3 初步采用什么样的模型?
  我们了解到,下围棋的算法本质上就是一个分类器,而最简单的分类器就是逻辑回归。可以预期它的分类效果不一定很好,但是速度非常快,在需要快速迭代的业务场景中可能有优势。所以逻辑回归是我们考虑的一类模型。
  但是在复杂的围棋博弈中,需要更多高维度的抽象特征,这些构造起来非常麻烦,而经过我们之前的博文介绍,神经网络具有这样抽象高维特征的能力。但是神经网络有许多种类,什么卷积神经网络、全连接神经网络、反馈神经网络等等,到底用哪一种呢?
  我们可以继续研究围棋的业务特点来寻找启发。我们发现,围棋的棋盘本来就是个19&19的矩阵,真有点像一张19&19像素的照片。而处理图像照片的最典型神经网络就是卷积神经网络。而且我们之前的博文专门介绍过卷积神经网络,其最关键特质的在于假设图像空间中局部的像素联系较为紧密,所以其卷积层的每个神经元只关注上一层的一些局部区域,这样能够充分利用输入数据的二维结构和局部特性,减少运算过程中的参数。你可以想象成,上一层的数据区,有一个滑动的窗口,只有这个窗口内的数据会和下一层的某个神经元有关联。而这种 “局部连接性”刚好与围棋的一些特点相似,比如围棋的大部分争夺是在局部区域进行的,不同的局部争夺共同组成了围棋的全局性。所以卷积神经网络也是我们考虑的一类模型。
  3.4 采用哪些数据做训练?
  标签、特征、模型基本定好了,剩下的就是数据了。从哪里得到数据呢?还是回到我们之前的棋谱,那本质上是个有时间顺序的序列。如果我们能够搜集到大量标记好落子顺序的棋谱,每一步落子之前的局面全都作为特征(s,361&n维度的向量),这一步落子位置作为标签(a,361维度的向量),那不就得到了大量的有标注的数据& s , a &吗?
  这还是得感谢网络时代,如今网络上有大量棋牌室,全都记录了人类下棋的过程,每天都产生大量有标注的数据。DeepMind就是直接从围棋对战平台KGS(可以理解成外国的联众围棋游戏大厅)获得16万局6至9段人类选手的围棋对弈棋谱,总共有3000万个的& s , a &位置,训练出来了一个类似人类下棋行为的模型。
  ◆ ◆ ◆
分析baseline的优化思路
  DeepMind团队基于卷积神经网络和逻辑回归做了两个模型:一个叫做“监督学习策略网络”pσ(supervised learning (SL) policy network pσ,田渊栋大神称作“走棋网络”),一个叫做“快速策略”pπ(fast policy pπ,田渊栋大神称作“快速走子”**)。其实就是两个版本的落子选择器(分类器)。
  4.1 评估baseline的效果
  这个两个模型模型的效果如下:
  “监督学习策略网络”已经可以和业余水平的人类选手过招,能正确符合57%的人类落子行为,互有胜负。
  可以把“快速策略”看做是“监督学习策略网络”的轻量级版本,它能够比“监督学习策略网络”快1000倍,但是只能正确符合24%的人类落子行为。
  总体来说还是蛮惊人的。但是距离职业棋手,还是有很大的距离。
  4.2 分析其下棋水平不高的原因
  为什么baseline的下棋水平不高呢?猜测可能有以下几个原因:
  我们主要是拿网络棋牌室的数据去训练,这些人的水平本来就离顶尖职业棋手就有相当大一段距离。俗话说:“跟臭棋篓子下棋,越下越臭”。与大量业余选手下棋,训练出来的行为也难以达到职业水准。
  古往今来,真正顶尖的棋手本来就不多,顶尖的对局棋谱相应也就不多,拿这些数据做训练远远不够。
  更本质的问题是,我们的“估值函数”有问题。无论是卷积神经网络还是逻辑回归,都可以近似理解为基于3000万个的有标注的数据& s , a &,评价在当前局面s下,落在某一位置a的概率,也就是p(a|s)。我们选择p(a|s)取最大值情况下的落子位置a。但这个过程没有考虑棋局的输赢信息!也就是说赢棋的落子方案也学,输棋的落子方案同样学习。这样的话,让模型怎么去分辨自己落子是赢棋还是输棋的落子方案呢?
  即便分出了赢棋输棋方的落子方案,赢棋者的落子不一定都是好棋(如两个臭棋篓子下棋),输棋者的落子不一定都是差棋(如两个顶尖高手的精彩对弈)。那到底应该学习赢棋过程中的哪一步落子& s , a &呢?像baseline这样的模型看来更适合学习对弈双方都会走的棋路,也就是常见的“定式”。
  更进一步,落子之后的棋局演化情况在上面的模型中根本没有体现。不把这样的行为考虑进来估计很难在棋力上有一个质的飞跃。
  4.3 从对原因的分析中产生优化的思路
  经过以上的原因分析,我们大致知道猜想到了问题的所在,由此可以进一步确定我们的优化思路:
  核心目标是改进评估函数,使之更好地体现某一步落子对全局的输赢结果的影响,以全局的输赢为目标进行优化。
  一方面,可以基于历史棋局的输赢情况进行重新训练。如果训练数据不够,可以考虑通过落子选择器自己与自己对局来增加训练样本数或者强化学习。
  另一方面,在下棋实战的时候,需要对棋局的演化情况有一个评估,需要蒙特卡罗树搜索(Monte Carlo Tree Search,MCTS)。具体展开内容见后文。
  将两个指标综合评估,得到落子优劣情况的评判。指导我们落子。
  ◆ ◆ ◆
基于历史棋局评估落子优劣:估值网络
  5.1 采用新的标签
  在之前的模型中,我们是基于标注数据& s , a &进行训练的,也就是以当前局面s作为特征,下一步落子a作为标签。现在我们要基于局面整体的输赢进行训练,就要对原有的标签和特征进行改造。
  需要增加新的标签z,表示局面对应的胜负情况:可以用1表示赢棋,-1表示输棋,0表示和棋(博主理解是“多劫循环”,也就是双方可以无休止地走下去的情况)。而特征就是(s,a),它表示在a处落子之后的新的局面(本质上还是一个局面,可以用s’表示,《Nature》原文就是这样表示的)。也就是说基于有标注的数据&(s,a),z&(表示当前局面为s,下一步落子为a的新局面下,输赢情况为z的数据)进行训练。
  5.2 采用更多的数据
  既然要基于历史棋局,可不可以直接以之前的16万局棋谱的输赢情况和落子情况一起进行训练呢?DeepMind团队试了一试,发现结果过拟合。
  分析原因,大概就是我们刚才说的赢棋者的落子不一定都是好棋(如两个臭棋篓子下棋),输棋者的落子不一定都是差棋(如两个顶尖高手的精彩对弈)的情况。围棋的落子是相互之间强烈相关(strongly correlated) 的,有时候一两着棋就觉得了整个棋局的输赢。那到底应该学习赢棋过程中的哪一两步落子& s , a &呢?
  其实我们可以换一个思路。如果真存在一两着决定胜负的棋,那就说明其他的走法很可能就会演化到输棋,那把演化到输棋的棋局也拿过来进行训练,就可以在这一步棋上训练出赢棋的概率很高的权重。 而之前过拟合的原因很可能就是我们训练数据当做仍未穷尽棋局演化的各种可能,把臭棋也当做好棋来学了。所以需要想一个办法产生更多高质量的棋局演化可能用来训练。
  既然靠人类对弈已经满足不了机器的胃口,那就用机器自己与自己对局来增加训练样本数,这就是传说中的左右互搏。比如开局,先用某个落子选择器走n步,由于n是随机的,这就产生出n个局面分支。觉得局面还不够多样化,再完全随机掷m次骰子,就又在每个局面分支上产生m新的局面分支。如此循环往复,就得到了非常丰富的局面s和这些局面对应的结果z。有了这些训练样本& s , z &,再加上卷积神经网络,就可以得到一个函数v(s),输出在局面s下的赢棋概率。
  按《Nature》原文的说法,他们通过自我博弈(self-play)产生了3000万个标注样本& s , z &,每个样本的局面s都来自不同的一局棋(each sampled from a separate game),以此来防止过拟合(这些挑出来的样本是否可能也是臭棋?)。注意,之前也是3000万个标注样本& s , z &,但它们只来自于16万局人类博弈的棋谱。
  而基于此训练出来的函数叫做“估值网络”(value network vθ),输入的是361&n维度的向量,输出的是一个值,也就是在该局面下胜利的概率。
  5.3 估值网络与走棋网络下棋的对比
  我们知道,走棋网络输入的s是361&n维度的向量,下一步落子位置a是361维度的向量。其下棋规则是判断选择p(a|s)取最大值情况下的落子位置a。p(a|s)就是模型的估值函数。
  而估值网络输出的只是一个值v(s)。那判断下一步棋的落子位置呢?其实只要将下一步落子产生的新局面(s,a)作为输入s’,求出各个新局面的v(s′),选择v(s′)取最大值情况下的落子位置a就行了。v(s′)就是模型的估值函数。
  所以这两个网络作为落子选择器的差别本质上就是估值函数的算法不一样。
  5.4 增强学习
  我们继续分析,既然走棋网络p(a|s)可以自己产生数据,那么可否用自己产生的数据来训练走棋网络p(a|s)自己(而不是估值网络v(s))呢?而这就是增强学习的思想。
  比如我们已经有了一个“走棋网络”pσ,先用pσ和pσ对弈,比如1万局,就得到了一万个新棋谱,加入到训练集当中,训练出pσ1。然后再让pσ1和pσ1对局,得到另外一万个新棋谱,这样可以训练出pσ2,如此往复,可以得到pσn。我们给pσn起一个新名字,叫做“增强学习的策略网络”pρ(reinforcement learning (RL) policy network pρ)。这时,再让pρ和pσ对局,在不用任何搜索的情况下赢棋的概率可达80%,效果拔群。
  当然,具体的训练过程比较复杂。这里先不展开,仅对其具体效果进行分析。既然pρ这么强,我们在实战中直接用这个模型怎么样?可惜,这样的方法反而不如之前的“走棋网络”pσ。《Nature》的论文中认为这可能是因为增强学习的策略网络是落子选择过于单一,基本就只选择它认为最好的那样走法(the single best move),而人类的棋手更愿意思考更多的有前途的路数(a diverse beam of promising moves)再决策。所以增强学习“还有很长的路要走”(田渊栋)。
  但是增强学习可以提供更多质量更好的样本便于估值网络v(s)去训练。这样,v(s)就可以给出下一步落子在棋盘上任意位置之后,如果双方都使用pρ来走棋,我方赢棋的概率。如果训练v(s)的时候全部都使用“走棋网络”pσ而不用增强学习的策略网络pρ呢?实验表明基于pρ训练的v(s),比基于pσ训练的v(s)的效果更好。
  5.5 评估估值网络的效果
  实践表明:估值网络v(s)对棋局输赢的预测效果要好于快速走子pπ结合蒙特卡罗树搜索接结果,也接近达到了走棋网络pσ结合蒙特卡罗树搜索接效果,而且其计算量是后者的1/15000(using 15,000 times less computation)。注意这里是对输赢的预测效果,而不是对落子可能性的预测。
  ◆ ◆ ◆
基于棋局演化评估落子优劣;蒙特卡罗树搜索
  以上的方法我们都是基于当下的落子情况来评估落子路径优劣的。但人类的下棋思维是“手下一着子,心想三步棋”(selects actions by lookahead search),要对之后的棋局有个评估。那怎么让机器去思考接下来的发展呢?这就需要传说中的蒙特卡罗树搜索(MCTS)。
  6.1 基于估值网络v(s)的MCTS
  我们就先不说蒙特卡罗树搜索(MCTS)的术语吧,什么选择、扩展、模拟、反向传播啥的的。这里直接以下棋的思维方式来解释这个过程,尽量生(shuo)动(ren)些(hua)。
  首先,我们有一个“走棋网络”pσ,它生成了一个当前局面s的下一步走棋位置a1的概率分布。“走棋网络”的特点是模拟人类的常见走棋行为,但并不评估走棋之后的赢棋的概率(赢棋的概率与分布概率是两个不同的概念)。但可以假设,优秀的走棋路数应该在人类常见的走棋范围内,这就大大减少了需要考虑的可能性。那怎么从这些选择中找出最优的那个落子呢?咱不是刚好有个估值网络v(s′)吗?直接用它筛选赢棋的概率较高的可能落子局面(s,a1)不就可以了吗?
  这已经完成了一步落子选择,但是距离“手下一着子,心想三步棋”的标准还差一些。那就继续假设走了a1之后,再考虑对方最可能怎么走。其思路与上面一样。那这样对方走了一招a2。紧接着可以再走一着a3。
  好了,现在走了3步棋了。是不是就够了呢?未必。如果评估v(s,a1)的赢棋的概率是70%,v(s,a1,a2)对方的赢棋的概率是60%(对应我方赢棋的概率是-60%),而走到第三步的时候评估的赢棋的概率v(s,a1,a2,a3)是35%呢?那你还要不要走a1这个位置?
  这需要我们重新理解v(s)的实际意义:它用来预测该局面以增强学习的策略网络pρ的方式自我博弈后的赢棋的概率(predicts the winner of games played by the RL policy network against itself)。而在我们蒙特卡罗树搜索过程中,不是用pρ的方式来选择落子的,所以不符合v(s)的定义。这就需要用新的方法来评估局面s下的赢棋的概率,也就是要对原来位置的赢棋的概率v(s)进行更新。那怎么更新呢?最简单的方法就是加权平均。为了不至于混淆,我们直接用v?来表示某一局面的赢棋的概率估值函数。刚开始时v?(s,a1)=70%,而下完第三步后其更新为: v?(s,a1)=(70%?60%+35%)/3=15%。此时v?(s,a1)已经变为15%,已经不是之前的70%,也就是说a1的位置可能不是赢棋的概率最大的位置了。需要重新挑选出一个位置a′1,使得v?(s,a′1)达到最大值,然后继续推演并不断更新不同位置的v?(s)。(其实,在第2步对方落子的时候就应该更新v?(s,a1)了,过程与上面类似。这里只是做了一个简化处理,便于理解。)
  这就是蒙特卡罗树搜索的基本过程。可见,这套思路是可以不断演化下去的,越到后面,算出来的v?(s,a1)应该越准确,当时间限制到的时候(围棋比赛有时限规则,因此时间规划也是一门学问),就可以返回出最佳位置a1了。
  这种算法的一个好处是:可以并行化,因此可以大量提高计算速度。
  它还有一个好处,就是:它演化出来的各种状态都可以保存起来,如果对方的落子就在自己的演化路径之中,这些状态就可以直接拿来用了。这就节省了大量运算时间。需要说明的是,这里只是对蒙特卡罗树搜索做一个原理性的简化解释。真实的搜索过程可以增加许多策略,远比这里复杂。
  6.2 基于快速走子pπ的MCTS
  其实,我们还有另一种蒙特卡罗树搜索。基本演化过程与上面类似,但是选择落子的方式是基于快速走子pπ的。
  首先,我们还是有一个“走棋网络”pσ,还是由它先挑出一些人类常见的走棋可能。那我们对于各种可能状态直接用快速走子pπ一路走到底决出胜负。比如pσ提供三种落子可能,都用快速走子pπ模拟对局到底,得到的结果是2胜1负。以1表示胜,-1表示负。则“胜利”的落子选项的估值函数v?(s,a1)=1。
  然后,对手从“胜利”的落子选项中用“走棋网络”pσ再拓展出3个落子可能,同样都用快速走子pπ模拟对局到底,得到的结果是2胜1负。
  此时可以更新v?(s,a1)=(1+1?1)/3=1/3,我方再基于对方的落子局面用“走棋网络”pσ再拓展出一些走棋可能,同样都可以继续用快速走子pπ模拟对局到底,得到结果后返回更新所通过的各个走子状态的的估值函数v?(s)。如此不断反复。
  这就体现出pπ的快速反应速度的优越性了。速度越快,模拟出来的未来对局就越多,对落子之后的局面判断就越准了。
  6.3 综合两种搜索策略形成新的估值函数
  这两种搜索各有优劣,而且在一定程度上互补。所以DeepMind将这两种策略组合到一起,效果就有质的飞跃了。以下是他们对比各种组合方式的结果:
  其组合方式非常简单粗暴,就是做一个算术平均:
  v?=vθ+z2,(z就是快速走子后的返回的胜负结果)
  工程实现上,还对估值函数增加了一个附加值(bonus)。目的是在快速定位比较好的落子方案的同时,又给其他小概率位置一定的探索可能,增加搜索丰富性。
  其实蒙特卡罗树搜索是一个很传统的技术,但是如果不用先验的知识随机搜索,这棵树的宽度和深度要非常巨大才能返回一个相对靠谱点的值,这样的计算量是天文数字。但是通过16万局人类对弈训练出来的“走棋网络”pσ,能够砍掉很多小概率的分支,减少搜索的宽度。而通过同样数据训练出来的“快速走子”pπ,和通过3千万局机器对弈训练出来的“估值网络”v(s),能够共同使得在探索深度比较小的情况下,返回比较好的局面估值效果,减少了搜索的深度。再加上一些细节的策略,整体的效果就是减少了计算量,提高了预测精度。
  ◆ ◆ ◆
  到此为止,AlphaGo的算法原理基本介绍完了。其实也并不复杂,而且这些都不是AlphaGo或者DeepMind团队首创的。但是强大的DeepMind团队将这些结合在一起,再加上Google公司的超级计算资源,成就了超越绝大部分顶尖棋手的人工智能。真令人赞叹不已,向这些背后的工程师致敬。
往期精彩文章推荐,点击图片可阅读
  机器学习算法一览
  机器学习:入门方法与学习路径 (附资料)
  ◆ ◆ ◆
  龙心尘和寒小阳:从事机器学习/数据挖掘相关应用工作,热爱机器学习/数据挖掘
  『我们是一群热爱机器学习,喜欢交流分享的小伙伴,希望通过“ML学分计划”交流机器学习相关的知识,认识更多的朋友。欢迎大家加入我们的讨论群获取资源资料,交流和分享。』
  联系方式:
  龙心尘
  johnnygong.
  http://blog.csdn.net/longxinchen_ml
  寒小阳
  hanxiaoyang.
  http://blog.csdn.net/han_xiaoyang
  ◆ ◆ ◆
  《Nature》:Mastering the game of Go with deep neural networks and tree search 原文链接: /nature/journal/v529/n7587/full/nature16961.html
  田渊栋:AlphaGo的分析 原文链接:/yuandong/
  How AlphaGo Works 原文链接://alphago/
  木遥:关于 AlphaGo 论文的阅读笔记 原文链接:/p/5042969.html
  董飞编译How AlphaGo Works 原文链接:/question//answer/
  袁行远:左右互搏,青出于蓝而胜于蓝?―阿尔法狗原理解析 原文链接/question//answer/
  Introduction to Monte Carlo Tree Search 原文链接:/posts/2015/09/intro-to-monte-carlo-tree-search/
请先登录再操作
请先登录再操作
微信扫一扫分享至朋友圈
普及数据思维,传播数据文化;专注大数据,每日有分享。
知名IT评论人,曾就职于多家知名IT企业,现是科幻星系创建人
未来在这里发声。
新媒体的实践者、研究者和批判者。
立足终端领域,静观科技变化。深入思考,简单陈述。
智能硬件领域第一自媒体。人工智能会有多强大?&AlphaGo不过是惊鸿一瞥!
来源:机器之心 &Synced编者按:AlphaGo与李世乭的五番围棋对决今日尘埃落定。AlphaGo以五局四胜的战绩力压李世乭,世界排行第四,仅次于中国的柯洁、韩国的朴廷桓以及日本的井山裕太。而这仅仅是个开始。谷歌的人工智能系统刚刚在围棋游戏中击败人类大师,围棋是一个有着2500年悠久历史的竞赛游戏,较之国际象棋,其策略和智力复杂程度呈指数级增长。Bostrom是牛津大学哲学教授,出生于瑞典,近期畅销书《Superintelligence: Paths, Dangers, Strategies》让这位教授声名鹊起,他在书中探讨了人工智能的好处,也提出这样的主张,一台真实的智能计算机能加速人类灭亡。倒不是说他低估了谷歌围棋机器的力量。他只是认为,这并不一定是一次巨大飞跃。Bostrom指出,多年来,系统背后的技术一直处于稳定提升中,其中包括有过诸多讨论的人工智能技术,比如深度学习和强化学习。谷歌击败围棋大师不过是更大弧线进程中的一部分。这一进程始于很久以前,也将延续至未来几年。Bostrom说,「过去和现在,最先进的人工智能都取得了很多进展,」「(谷歌)的基础技术与过去几年中的技术发展密切相连。」Nick Bostrom但是,如果你以另一种方式看待这个事情,它正是谷歌获胜为什么如此激动人心的原因所在——或许还也有点让人害怕。Bosrom甚至认为,这是一个停下来的好理由,看一看这项技术已经走了多远并正往何处去。研究人员曾经认为,人工智能破解围棋至少还需要另一个十年。如今,它正前往曾被视为无法企及之处。或者,至少说,许多人——他们可自由支配巨大权力和大量金钱——决心要抵达的那些地方。  这并不仅仅是指谷歌。也指Facebook,微软以及其他科技巨人。创造出最聪明人工智能的努力真的已经演变成一场竞赛,而且竞争者们都是这个地球上最有权力也最富有的巨人。在谷歌这场胜利当中,最生动的部分可能就是扎克伯格的反应。  搭建大脑&谷歌的人工智能系统,亦即AlphaGo,由DeepMind研发,谷歌早在2014年就花4亿美元收购了这家人工智能研究机构。DeepMind专门从事深度学习和强化学习研究,这些技术能让机器自己进行大量学习。以前,创始人Demis Hassabis和他的团队已经使用这些技术搭建了一些会玩经典雅达利视频游戏(比如,Pong,Breakout以及Space Invaders)的系统。Demis Hassabis在有些案例中,这些系统不仅比职业玩家还出色,它们还会以天马行空的方式玩游戏,没有人类玩家会或者可以这么玩。显然,这就是促使佩奇买下这家公司的原因。使用所谓的神经网络—— 近似大脑神经元网络的硬件和软件网络——深度学习就是显著有效的图片搜索工具驱动力——更不用说Facebook的面部识别服务,微软Skype的翻译工具以及推特的色情内容识别系统。如果你用数百万游戏招数训练深度网络,你就能教会它玩这款游戏。而且,当你用其他海量数据组训练它时,就能教会神经网络完成其他任务,从为谷歌搜索引擎生成结果到识别电脑病毒。强化学习将系统能做的事情向前推进一步。一旦搭建起一个很善于玩游戏的神经网络,你就能让它和自己对战。随着两个版本的神经网络彼此对阵数以千计次后,系统就能追查出哪些招数回报最高——也就是说,得分最高——并以这种方式学会以更高的水平玩游戏。但是,再一次,这一技术并不限于游戏。也能适用到任何类似游戏,包含策略和竞争的事情上。AlphaGo使用了这一切。而且还远不止此。Hassabis和他团队添加了一个二级 「深度强化学习」,预测每一步的长效成果。而且他们采用了过去驱动围棋游戏人工智能系统的传统人工智能技术,包括蒙特卡洛树搜索。借鉴新旧技术,他们搭建起能够击败顶级职业选手的系统。十月,AlphaGo与三次卫冕欧洲围棋冠军的选手进行了闭门对弈,比赛结果于周三早上才对外公布。比赛对弈五局,AlphaGo五局全胜。  极其复杂&  这场胜利之前,许多人工智能砖家认为,它不可能打败顶尖人类棋手——至少不会这么快。最近几个月,Facebook已经在研究自己的围棋人工智能系统,尽管它并没有像许多其他研究人员那样密切致力于围棋项目,就像DeepMind那样。上个礼拜,当我们问及LeCun,这位负责Facebook人工智能研究 工作的深度学习创建人,谷歌是否已经秘密打败了了象棋大师时,他说,这不太可能(it was unlikely)。他的回答是,「不(No)。或许(Maybe)。不(No)。」  Facebook开源自己的人工智能硬件&  问题在于围棋特别复杂。国际象棋平均一回合有35种可能的下法,围棋却高达250种可能。而且每个走法之后还有另外250种走法。以此类推。这意味着,即使最大的超级计算机也不能预测出每个可能下法的结果。因为太多了。正如Hassabis说的,可能的位置比宇宙原子数量还要多。为了破解围棋,你需要一种不光会计算的人工智能。它需要多少模仿人类, 甚至是人类直觉。你需要会学习的东西。  这就是谷歌和Facebook要解决这个难题的原因。如果他们能够解决如此复杂的问题,那么,他们也能将研究所得作为跳板,迈向处理更实际现实生活问题的人工智能。Hassabis说,这些技术和机器人学是「天作之合」。它们能让机器人更好地了解环境并对环境中不可预测的变化做出响应。想象一台能洗盘子的机器。但是,他也相信,这些技术能增进科学研究,提供了可以为研究人员指明下一个重大突破的人工智能助手。  而且那也略过了一些将会改变人类日常生活的更加直接的应用。DeepMind技术能帮助智能电话识别图片、语音以及翻译,不仅如此,还能理解语言。这些技术正通往这样的机器:它能理解用普通老式英语说的话,并用这种语言回答我们。  他们是认真的&  这一切解释了为什么扎克伯格如此渴望在谷歌披露自己已经击败一位围棋大师这一消息几小时之前,更新自己的Facebook讨论围棋。  谷歌以在学术期刊Nature上发布研究论文的方式公布了这一结果,而且Facebook员工也在官方发布之前获得这份论文(消息发布两天前,也和一些记者方分享了这一消息,不过缔结了守秘协议)。结果,扎克伯格以及公司许多其他人就采取了某种预损失控制行动。  谷歌宣布消息的前一晚,Facebook人工智能研究人员发布了一崭新的研究论文,介绍了他们自己的围棋研究工作——就其本身水平来说,研究工作还是令人印象深刻的——扎克伯格也在自己的账户上宣传了这篇论文。他说,「在过去六个月中,我们已经搭建起一个能以0.1秒之速下棋的人工智能,同时也和之前那些花费数年搭建起来的系统一样出色。」「研究人员田渊栋,就坐在距离我20英尺的座位上。我喜欢让我们的人工智能团队坐在我旁边,这样我就能从他们的研究中学习些东西。」  不必介意Facebook的围棋人工智能不像AlphaGo走得那么远。正如LeCun指出的,Facebook并没有在围棋问题上像DeepMind那样投入很多资源。而且也没有花费很多时间研究这方面。为什么公司在谷歌大日子前夕强调自己的研究工作,原因尚不清楚,但是现实是,Facebook——特别是扎克伯格——非常重视这类人工智能。然而,这种人工智能竞赛并不真的仅仅是个哪家公司系统更会玩围棋的问题。毋宁是哪家公司能够吸引到顶级人工智能人才的问题。扎克伯格和LeCun都知道,他们必须向相对小规模的人工智能社区展示,在这个问题上,公司态度是认真的。  有多认真?哦,最明显的地方就是扎克伯格测量了自己和田渊栋的距离。在Facebook,你的重要性取决于你的座位距离扎克伯格有多近。而且,扎克伯格个人也卷入了对人工智能的需求中——毫无疑问。今年元旦,扎克伯格说,2016年的个人挑战就是打造一个人工智能系统,在家庭和工作事务中,帮助自己。威胁& 谷歌和Facbook意图搭建人工智能,它将在许多方面超越人类智能。但是,他们不是唯一的两个玩家。微软,推特和马斯克以及其他许多人都在同一方向上推进着自己的研究。对于人工智能研究来说,那是件了不起的事情。而且,对于像Nick Bostrom这样的人——以及,呃,马斯克——来说,它也让人感到恐惧。正如深度学习创业公司Skymind的CEO兼创始人Chris Nicholson指出的,围棋证实的这类人工智能几乎能用于解决任何可被视为某种游戏的难题——策略会在其中扮演重要角色的任何事情。他说,这包括金融交易和战争。这两个例子都需要更多的研究工作——以及更多的数据。不过,思维本身并未得到解决。Bostrom的书言之有理,人工智能会比核武器还要危险,原因不仅在于人类会滥用人工智能,还在于我们能打造出多少无法加以控制的人工智能系统。类似AlphaGo这样的系统。是的,系统会己学习——确实会和自己对弈,自己生成数据和策略,在围棋游戏中(我们仍然期待着对决世界最顶尖的围棋选手之一),它能胜过几乎所有人类。但是,尽管围棋很复杂,但是,它也是一个有限的宇宙——并不近乎真实事情那般复杂。而且,DeepMind的研究人员已经完全掌控系统。他们能够以自己意愿改变它并关掉它。事实上,考虑将这种特殊机器视为危险,甚至是毫无意义的。  担忧在于,随着研究人员不断改进该系统,他们会在不知不觉中跨越那道门槛,有关世界末日的焦虑确实开始变得有意义。Bostrom说,他和他的Future of Humanity Institute其他同仁正在关注加强学习找到突破人类控制的方式。他说,「某些同样的问题会出现在今后更佳成熟的系统中,我们今天也能在系统中找到类似的问题。」他解释道,有许多小的暗示表明,强化学习会产生机器拒绝被关闭的情形。  但是,这些是非常小的暗示。Bostrom承认,如果这样的危险真的会发生,那还很遥远。谢谢他的努力,也感谢那些诸如马斯克这样有影响力的技术专家们,对于潜在危险而言,这种更为广泛的兴师动众无异于未雨绸缪,是明智的。这些担心说明了一件最重要的事情,像DeepMind的那些尚处发展中的技术,它们非常强大。  谷歌的这次胜利说明了同一件事。但是,这场胜利仅仅是序曲。3月,AlphaGo将挑战过去十年中的世界顶级围棋选手李在石,这场比赛将更加重要。李在石比刚刚在伦敦输掉比赛的欧洲冠军樊麾更有才能。樊麾世界排名633,而李在石世界排名第五。许多专家相信,AlphaGo将会赢得这场重量级较量。如果事实果真过如此,好吧,那也只是一个序曲。}

我要回帖

更多关于 柯洁 alphago 的文章

更多推荐

版权声明:文章内容来源于网络,版权归原作者所有,如有侵权请点击这里与我们联系,我们将及时删除。

点击添加站长微信