分享

深度坑|当谷歌“阿尔法狗”打败了欧洲围棋冠军

 真友书屋 2016-02-05


从世界首席国际象棋大师卡斯帕罗夫输给IBM公司的计算机“深蓝”至今已近二十年,最近,谷歌的AlphaGo击败了欧洲围棋冠军樊麾。从国际象棋到围棋的突破,其背后的算法是有着怎样的飞跃?以及,这位“阿尔法狗”是否可能走上碾压人类智力的无敌之路?


文 | LostAbaddon  编辑 | Agnes 



围棋,是一项中国先人所发明的古老对弈游戏。相较于中国象棋或者国际象棋,围棋的最大特点在于它的每一个棋子都是相同的,没有不同的走法与规则,以及,更重要的一点,围棋中每个棋子的作用不是由其自身的“特殊功能”决定的,而是与它在整个棋局中与别的棋子之间的关系来决定的。


这种特殊的规则,既简单又复杂。


说简单,在于每个子都遵守相同的规则,规则本身并不冗长难懂;而说复杂,则在于在如此一目了然的规则之下,却能演化出几近无穷的可能性[1]


因此,对人工智能持怀疑态度的人曾放言,人工智能永远不可能战胜人类;而对人工智能持乐观态度的人也觉得,大约十年后才能看到人工智能在围棋这一人类传统智力竞赛活动中战胜人类——当然这里说的是人类中的职业棋手,我这样的学龄前战五渣要战胜当然是分分钟的。


但就在上个星期,这一无论是永远还是十年的预期,被谷歌的AlphaGo打破了。




虽然它所战胜的是国际围棋排名在633位的欧洲围棋冠军,且这位欧洲冠军据闻现场发挥有点失常,但无论如何,战胜了一位人类的职业棋手,这样的事终于还是在人类最乐观的预期前好多年,发生在了现实生活中。这无疑为人工智能界打了一剂强心针,使得这一正从低谷中一步步走出的领域名正言顺地踏进了快车道。               

左为此次被AlphaGo打败的棋手樊麾,右为3月将迎战AlphaGo的世界冠军李世石


AlphaGo战胜人类职业棋手之前,人工智能早就在人类的棋类游戏世界中战胜过人类中的职业棋手了。


对,这里所说的就是19975月的那场世界焦点之战:世界首席国际象棋大师卡斯帕罗夫对阵IBM公司的计算机“深蓝”,最后深蓝以2:1战胜了人类的世界冠军。


深蓝战胜卡斯帕罗夫的历史瞬间


此后,人类在国际象棋这一领域,人类就进入了与计算机较力的尴尬时期,并从2006年起,人类再也没能登顶国际象棋的世界第一。


围棋是否会是下一个被人工智能一统天下的领域呢?


人工智能是否又会是赛博空间中的日月神教?

DCNN+MCTS(深度卷积神经网络与蒙特卡罗树搜索)是否就是葵花宝典加吸星大法呢?[2]


至少这一问题暂时还不用担心,因为中国职业棋手普遍认为,至少去年十月那场棋局中,AlphaGo所展现出的棋力应该是顶尖业余棋手的水平(当然中国业余四天王这样的顶尖业余水平的棋力早就够段位了),和人类的顶尖职业棋手的水平相比,胜率大约只有10%


在担心人工智能是否会在人类最后的智力与精神的优越地带碾压人类之前,或许我们还是来看一下这次的AlphaGo究竟是如何工作的吧。



从深蓝到AlphaGo,

人工智能棋手到底是如何工作的?


GoogleAlphaGo其实是一台具有1200核的搭载了基于价值判断与策略判断双重神经网络系统的具有自主学习能力的超级计算机。其中负责策略判断的策略网络又可以分为研究KGS(一款在线围棋对战平台,有真人包括职业棋手与机器人在其上对弈)上对弈数据的学习系统,以及一个自己与自己对弈的增强学习系统,而价值网络则完全通过增强学习系统来实现。


作为直接竞争对手,FacebookFAIRFacebook Artificial Intellegence ResearchFacebook人工智能实验室)的围棋对弈系统DarkForest[3]采用的则是基于深度卷积算法(DCNN)与蒙特卡罗树搜索算法(MCTS)的算法——在Google宣布了AlphaGo战胜欧洲围棋冠军的消息后不久,Facebook也宣布说他们FAIR的围棋项目也早就成功解决了计算机下围棋这一课题——在KGS在线围棋对弈平台上飞速窜升到了第三名(这里Google宣称其AlphaGo击败了KGS99.8%的程序,不知道其中是否包括DarkForest……)。


或许你会认为这并不值得惊讶,因为它的先辈IBM的深蓝不也是一台很牛逼的计算机么?不过就是配置低了点罢了。


这里的关键问题,两者并不在于硬件上有所差异,而是在于算法上的高下。

IBM的深蓝,其硬件方面在当时自然是非常牛(当年国际超级计算机排名是259位),而其算法则最大程度地发挥了它的硬件优势——澎湃的计算速度。


深蓝弈棋算法的核心,分解来说就是开局库、基于规则的蛮力搜索、策略选择和局面判断,以及残局库。在与卡斯帕罗夫的对局中,有人类工程师在比赛过程中“维护”过深蓝的代码,据说就是针对性地调整了策略选择与局面判断的参数,以更适应卡斯帕罗夫的“棋风”。


这一套流程基本可以说是中国象棋与国际象棋为代表的棋类游戏的标准配置了,通过开局库确定优势,然后在脱离开局布置后,利用强大的计算力和计算速度来推算未来的步骤,利用有针对性的参数配置来获取每一步预想棋步的价值判断,并利用算法来进行对手最可能走的棋步及其应对的选择,直到最终来到固定的残局库,比如当余下6子的时候的各种局面进行一个预先计算,从而知道其中哪些可以让自己赢,哪些则会输,因此到了这一段也就不需要计算了,因为早就计算好了直接从库中读取就能知道结果。


开局基本固定,残局完全确定,人类与计算机能拼的就是中间的过程,而这段的本质是预判未来棋局的发展——据说卡斯帕罗夫可以预判10步棋,而深蓝可以预判12步,高下立判。


这套算法的根本,在于“策略树选择”以及各种剪枝算法,以及,那可以算作是真正灵魂的参数设置——而这在深蓝的弈棋程序中,就体现为国际象棋大师为程序进行的“特训”了[4]




这套方案究竟能否用在围棋上呢?


理论上当然可以——围棋当然也有固定的开局法与残局库,也需要局面判断、策略选择与以预判为目的的一定程度内的暴力搜索,这方面我们当然可以将国际象棋的深蓝大脑给套用过来——但这仅仅是说理论上。


现实中的最大拦路虎,就在于围棋棋盘太大,可能的变化太多,每一字的作用牵扯到的变化相对于象棋来说,也就多了非常非常多——我们可以这么来估算,象棋总共纵横121个落子位,从而一个棋子位置的改变会带来3120的连带影响(这里3代表了“黑棋”、“白起”和“无棋”),但在围棋中这个数字是3360,显然大了太多太多太多了。


因此,靠深蓝那样的树搜索来预判,肯定是不可能的。


那么,我们人类面对围棋这么一类棋类问题的时候,是如何思考的?


或者,让我们这么来问:是否所有可能的下一步落子都有必要深思下去?


答案显然是否定的,连我这种门外汉都知道不可能每一步落子都有相同的价值,很多落子根本没有深思的必要。


因此,下面的问题其实就变成了:如何在不把每一个落子能带来的作用都穷尽的情况下,判断出哪些落子值得进一步思考,而哪些落子可以忽略。


对于我们人类来说,这一问题的回答大约部分可以追溯到“棋感”中——这就好比打篮球,某个人今天手感极差,那就别防了。这是一种目前人类无法将其详细说明清楚的“感觉”,但我们却可以通过这种棋感来判断哪些情况不用考虑,而哪些情况需要进一步考虑。


另一方面,或许更多的判断来自于我们对围棋的学习,比如通过学习定势与手筋,通过长期对局培养的大局观,我们可以掌握哪些落子可以被无视,而哪些不能。


因此,对于这个问题我们就有了两个答案:棋感,以及,学习





神经网络的深度学习系统是什么鬼?


对于那近乎形而上者谓之玄[5]的棋感,大概我们是无能为力的吧,但对于学习机器还是“很有办法”的,那便是时下火热的基于神经网络的深度学习。


比如,作为AlphaGo的核心系统的两个神经网络——策略网络与价值网络——就都是具有自主学习能力的深度学习系统。其中策略网络又分为学习KGS上对局的部分与自我学习的增强学习网络这两部分。


DarkForest的核心,就是DCNN+MCTS,也就是深度卷积神经网络加上蒙特卡罗树搜索。前者在工业上就是用于图形识别的一种深度学习算法,后者则是用于决策的深蓝的树搜索的直系后裔。


因此,AlphaGoDarkForest相比以深蓝为代表的前时代弈棋算法的最大区别就体现出来了——AlphaGoDarkForest不需要一个围棋大师来“特训”其参数,它可以“自行”通过阅读成千上万的围棋棋谱来自主学习。


它们不需要专家知识(理论上),不需要开局库与残局库,只需要自行阅读“学习”,就可以掌握围棋的“真谛”。


由于本人对AlphaGo所采用的两套神经网络并不是很熟悉,所以下面就以DarkForestDCNN+MCTS为主来说明现代围棋程序是如何工作的。



其中,卷积神经网络CNN的主要作用,就是通过分析局部信息之间的关联,一层层抽象出假定中的全局规律或者说全局信息,是一个不断抽象的过程。这点就本质来说,与人的行为方式是很像的——人也是一步步抽象一个具体问题,直到最后获得一个关于这一类问题的一般规律为止。这点在人类迄今为止的最高成就自然科学与技术方面,可谓体现得淋漓尽致。


故而,如果将CNN与人的行为做类比,那CNN就是通过查阅浏览千万张棋谱后,自己学习总结规律,来获得关于围棋如何获胜的知识。既然有了学习而来的关于围棋的知识,那自然可以运用到决策中去,这便是蒙特卡罗树搜索发挥作用的地方了——蒙特卡罗树搜索,在之前介绍的决策树搜索的基础上,不再完整地求出每一个分支子选择的情况,而是对其进行随机选择,通过随机选择的情况来判断一个大致的胜负比例——从而将确定的胜负用随机过程带来的模糊的胜负替代,以此来完成对整个分支情况的权重赋值,并作出决策。



MCTS遇到DCNN,在判断每个分支选择的价值时,就可以利用DCNN分析出的数据来作为判断的依据,而不必单纯使用随机选择的胜负来做判断,从而使得决策分支价值的判断都有了坚实的知识基础,从而提升决策的“精准度”。


而做到这一点的来源则是DCNN提供给机器的“自主”学习,而不是“被动”地从围棋大师那“聆听教诲”。


因此,现在机器所作的事情可以看作如下过程:


  1.  通过观摩成千上万的对局图谱来学习围棋的内在获胜规律;

  2. 当与对手下棋的时候,分析未来几步内每一个可能的双方落子,并利用此前学习到的知识来判断其中哪些落子是无价值的可以无视,哪些落子是有价值的,对方可能会采用,从而综合预判的这几步来分析当下的落子选择;

  3. 在对局过程中重复12,直到终盘。


有趣的是,虽然AlphaGo的整体结构与DarkForest很不相同,但这两者也有一些相似的地方。在与别人或者别的围棋程序进行对弈的时候,负责整体局面分析的价值网络会参与到策略网络的蒙特卡洛树搜索的计算过程中,用于筛选哪些分支可以被提出,而哪些值得深入思考。就这点来说,这个系统与DarkForest是异曲同工的。


但与DarkForest有明显不同的地方在于,AlphaGo中用于价值判断的神经网络本身会独立于策略网络提出建议,而后由AlphaGo对这两个网络的分析结果进行平均,给出最后的结果。这平均的一部当然就目前看来还是显得粗糙的,存在进一步提升的空间。AlphaGoDarkForest的差异也就体现在这里:DarkForest更像是只有AlphaGo策略网络的功能,且AlphaGo采用了自我对弈的增强学习方案,这也是DarkForest项目负责人说FAIR在下一阶段会提升DarkForest的一个重要方向。


就个人看来,AlphaGo似乎走得比DarkForest更远,不但采用了增强学习,更将全局判断独立成一个系统,这样的方式非常具有前瞻性。


而且,是不是觉得这个过程和人类下围棋时的思路,颇有几分神似?而正是在这一思路的引领下,AlphaGo最终战胜了人类职业棋手。


那么,接下来就有三个有趣的问题了:


  1. 这样的机器,真的具有“创造性”么?

  2. 这样的机器及其算法,真的能超越人类么?不是在某个特定的领域,而是全面地超越人类?

  3. 以及,无论三月AlphaGo是否能战胜李世石,从长远来看不用十年机器就能在围棋领域超越人类,那么围棋的未来、或者说我们的未来会如何?




机器具有创造力吗?

以及,什么是创造力?


据闻,当年在卡斯帕罗夫输给深蓝后,他曾发出过“感觉电脑的决定有智慧及创意”的惊叹。


于是,我们自然想要知道:深蓝,以及现在的AlphaGoDarkForest,是否真的具有创造力?


这是一个很难判断与衡量的问题,因为究竟什么是创造力呢?


毕竟,无论是深蓝、AlphaGo还是DarkForest,它每一步的落子都继续对未来局面的评估,从评估中选择获胜概率最大的那步棋,这点从理论上来说,不存在任何创造性——理论上,我们可以通过计算机穷尽未来的每一步棋,从而判断出哪些是必胜的,从而完成落子——事实上根据博弈论中的策梅洛定理[6],这样的必胜策略至少对于围棋来说是必然存在的。


因此,对于这种纯粹靠计算得到的落子,真的体现了“创造性”么?


如果说,是走出了某些人类一般想不到的棋步,这算作是创造力的话,那这恐怕只是体现出了人的“创造不能”,而不能体现出机器的创造性吧。


可究竟什么算是“创造力”呢?将原本想不到的东西想到,这本就是“创造”的体现吧。


而如果必须将创造与意识特别是“自由意志”联系起来的话,认为必须是自由意志主导的从无到有的发现才能算是创造的话,那恐怕我们又要陷入对什么是自由意志与自我意识的无休止的争论中了。


无论如何,这一问题恐怕还是会让哲学家们棘手一阵子吧。



“阿尔法狗” 目前还不能超越人类

但问题依然存在


假定这样的算法真的体现了某种程度的创造力,那么是否说以AlphaGo为开端的新一代算法与机器是具有人类自诩为独享[7]的创造力的?那么机器人是不是马上就要超越人类了——就在前不久,霍金与马斯克在内的很多名人就呼吁禁止研究人工智能,一如当年禁止研究人体克隆。


关于这点,就个人来看,恐怕还是杞人忧天了。


从前面对AlphaGoDarkForest的算法分析我们就可以看出,它和人类的真实大脑活动相比,存在一个最显著的缺陷,那就是这两者的目标是预设的,而人类的智力活动目标,并不总是事先由具体任务设定好的。


这里当然无意于去争论人活动目的在无限回溯后的第一推动这类形而上乃至神学范畴的问题,而是指出这么一点:机器至少目前还不能决定自己应该做什么。


更细致一点的话,我们如果仔细分析人下棋的每一个阶段的阶段性目标的话,就会发现一些差异来:人们会在开局的时候追求布局,中段追求棋形,而尾段才来计算具体一子一地的得失,也即不同阶段人的目的是可以分解的,虽然最终都是为了总体目标,获胜,但在不同阶段却是可以有所不同且又相互联系的。


这点,虽然说DCNN以及AlphaGo所采用的增强学习网络理论上可以提供每个不同棋局阶段的分段目标(这点理论上当然是蕴含在每张棋谱中的,所以理论上DCNN可以根据当前局势来“读取”出这一目标,并最终反映在MCTS决策中),但这一学习的结果却不具有主动性——我们并不能说是MCTS决定了目标的阶段性分解,而只能说是DCNN告诉MCTS大家都是这么干的所以我们也这么干吧。


虽然其结果是AlphaGo在这点上完成得似乎不错,但这种主动性与被动性差异却还是很明显——有职业棋手就分析说AlphaGo在尾段的表现非常好,但在前段特别是开局的时候则相对平庸了许多。


另一方面,已故的人工智能之父Marvin Minsky曾指出过,含有隐藏层的多层神经网络并不能确定会收敛到某个正确的方案上。虽然现代神经网络与深度学习的工作很良好,但对于那些和训练集差别非常巨大的情况就无能为力了。



人工智能之父Marvin Minsky


这一局限是否说明了现代深度学习系统依然存在其固有的局限性呢?


进一步,即便我们在某些特定的领域可以制作出超越人类的机器,但所有这些机器的强大能却也仅局限在这些局部特定领域,我们依然无法制造出可以拥有泛化适应与学习能力的通用自主学习网络。


也就是说,能下国际象棋的,只能下国际象棋;能下围棋的,只能下围棋。你让AlphaGo学习学习帮我下碗方便面,估计我就饿死了。


但人类却完全不是这样——人类虽然未必个个都能下好国际象棋或者围棋,也不是每个人泡的方便面都好吃,但几乎每个人都具有在所有这些领域学习的能力,这是机器目前还不具备的。


第四点,那就是现在我们所有的机器学习方案,都需要海量的训练样本,但,其实,人在学习的时候根本不用这么许多样本。


AlphaGo目前看过的学习过的棋谱,大概已经比绝大多数下围棋的人多了,虽然这些人中大部分都不是AlphaGo的对手,但由此可以看出:人学围棋的学习成本是远低于AlphaGo


可见,从少量学习样例中抽象出普适规律的能力,目前的AlphaGo还不具备。


综上所述,存在四点是目前的AlphaGo目前依然无法达到更别说超越人类的了:


  1. 现在的AI不能自主生成行为的目标

  2. 现在的AI不知道如何将一个大目标分解为若干个阶段性目标,虽然或许会依葫芦画瓢;

  3. 现在的AI特异性太强,学习能力不够泛化通用;

  4. 现在的AI学习成本太高,不具备从少量样本中抽象出规律的能力


这其中,第四点恐怕是最关键,而第一点大约是到底能否达到并超越人类的决定性因素。


如果说第四点决定了学习能力的话,那么第一点则决定了那个古老而深邃的问题——人造之物是否能如人一般具有自由意志。


就个人来说,第三第四点大概还是有希望在若干年内得到突破的,但第一点,恐怕就真的需要一位“人工智能之父”,或者说“人工灵魂之父”了吧。


有一点是肯定的,当这一人类最后的智力碉堡被机器攻占后,大概对于围棋的艺术性与文化性来说,不会是什么好消息吧。就如阿波罗登月毁灭了中国人的广寒宫之梦,当艺术被计算降伏,文化被机器碾压,恐怕随之而来的会是一波围棋的低谷。



对弈中的昭和棋圣吴清源,他提出了结合中国道教哲学的“六合之棋”的围棋思想


就个人理解,围棋这项运动除了作为一种智力的竞技,另一层面也是一种心智的交流方式,蕴含了文化、艺术与哲学,而这些领域,至少就目前来看,通过粗暴的算法而“掌握”(或许是真的掌握)围棋的计算机一时显然是无法掌握的——当然,或许它的神经网络中的确蕴含了某些对围棋的非竞技非计算部分的思考,但AlphaGo并不具备这种思考的输出设备,而且输出了也未必是人类能理解的形式,所以我们并不能理解机器那或许存在的对围棋的思考。


反过来说,AlphaGo领衔的机器对人类最后的智力竞技圣地的围剿,是否真的只是一种人类创造的纯理性之物对蕴含了人类理性与非理性的古老传统技艺的一种暴力碾压呢?


如果这种理解是真的,机器战胜人类仅仅代表了一种纯粹的计算对一种文化艺术哲学的碾压,那么我们为何有这么多人赞扬被誉为“石佛”的李昌镐,而看轻一直在追求围棋的美(至少他们这么自我号称)从而近年来战力下降的日本棋坛呢?


李昌镐的风格就是计算极其精确,很少出错,表情永远一幅poker face


从这点来看,人类也始终在努力追求计算与胜利。求赢时可推崇冷静无差错的计算,反之也有提升围棋除算计之外独有的哲学与美感,我们似乎始终在一种双重标准之下。


或许,无论AlphaGo最终能否战胜李世石,这类对弈除了提供一个机器是否可能对人智力上进行碾压的实验,其实更提供了一个我们重新反思自我的机会——无论是从智上,还是从德与美上。


当人类自诩为能成为万物之灵的那个虚无缥缈的幻象被现实一把捏碎后,我们究竟还剩下什么?




[1]有人预估这种可能性高达3361种。作为比较,国际象棋的局面可能性预估为3121种,而人类目前所观测到的总可视宇宙中的总粒子数预估为1075种。当然了,更准确的预估大约是0.012×3361,而最近有人求出这个数值的准确值:  208168199381979984699478633344862770286522453884530548425639456820927419612738015378525648451698519643907259916015628128546089888314427129715319317557736620397247064840935——这段转自“专吃刘小羊”的知乎专栏《不一样的围棋》中的一篇博文


[2] AlphaGo采用的是价值判断与策略判断双重神经网络,而Facebook的人工智能围棋项目采用的是DCNN+MCTS的方案。这里关于AlphaGo的方案由于没研究过Nature上的论文,所以无从进一步说明。


[3]这个项目的提出者与主要研发者恰好是《三体》的粉丝,所以……


[4]这部分内容可以看深蓝弈棋程序的缔造者、台湾计算机专家许峰雄所写的《深蓝揭秘》一书。


[5]这句当然是戏虐的,原句应该是“形而上者谓之道,形而下者谓之器”。


[6]策梅洛于1913年提出的策梅洛定理表示,在二人的有限游戏中,如果双方皆拥有完全的资讯,并且运气因素并不牵涉在游戏中,那先行或后行者当一必有一方有必胜/必不败的策略。


[7]当然这个说法是不严谨的,因为包括猴子猩猩与某些乌鸦在内的不少动物也是具有“创造性”行为的。


    本站是提供个人知识管理的网络存储空间,所有内容均由用户发布,不代表本站观点。请注意甄别内容中的联系方式、诱导购买等信息,谨防诈骗。如发现有害或侵权内容,请点击一键举报。
    转藏 分享 献花(0

    0条评论

    发表

    请遵守用户 评论公约

    类似文章 更多