在很多评论中,对于AlphaGo都有很多不正确的猜测,首先是AlphaGo有没有整体棋局评估的能力,那么阿尔法狗的运营机制导致到底是怎么样的?
AlphaGo有哪两个大脑组成的神经网络系统组成?
在架构上,AlphaGo可以说是拥有两个大脑,两个神经网络结构几乎相同的两个独立网络:策略网络与评价网络,这两个网络基本上是个13层的卷积神经网络所构成,卷积核大小为5*5,所以基本上与存取固定长宽像素的图像识别神经网络一样,只不过我们将矩阵的输入值换成了棋盘上各个坐标点的落子状况。
第一个大脑「策略网络」基本上就是一个单纯的监督式学习,用来判断对手最可能的落子位置。他的做法是大量的输入这个世界上职业棋手的棋谱,用来预测对手最有可能的落子位置。在这个网络中,完全不用去思考赢这件事,只需要能够预测对手的落子即可。目前AlphaGo预测对手落子位置的正确率是57%(这是刊登在Nature文章时的数据,现在想必更高了)。那各位可能认为AlphaGo的弱点是否应该就在策略网络呢?
一方面是由于预测准确率不高,再者是如果下了之前他没看过的棋局是不是就有机会可以赢过他。可惜并不是,因为AlphaGo的策略网络有做了两个层面增强,第一个层面是利用了名为增强策略网络的技术,他先使用部分样本训练出一个基础版本的策略网络,以及使用完整样本建立出来的进阶版策略网络,然后让两个网络对弈,后者进阶版策略网络等于是站在基础版前的高手,因此可以让基础网络可以快速的熟即到高手可能落子的位置数据,进而又产生一个增强版,这个增强版又变成原有进阶版的「高手」,以此循环修正,就可以不断的提升对于对手(高手)落子的预测。
第二个大脑是评价网络。在评价网络中则是关注在目前局势的状况下,每个落子位置的「最后」胜率(这也是我所谓的整体棋局),而非是短期的攻城略地。也就是说策略网络是分类问题(对方会下在哪),评价网络是评估问题(我下在这的胜率是多少)。评价网络并不是一个精确解的评价机制,因为如果要算出精确解可能会耗费极大量的计算能力,因此它只是一个近似解的网络,而且透过卷积神经网络的方式来计算出卷积核范围的平均胜率(这个做法的目的主要是要将评价函数平滑化,同时避免过度学习的问题),最终答案他会留到最后的蒙利卡罗搜寻树中解决。
当然,这里提到的胜率会跟向下预测的步数会有关,向下预测的步数越多,计算就越庞大,AlphaGo目前有能力自己判断需要展开的预测步数。但是如何能确保过去的样本能够正确反映胜率,而且不受到对弈双方实力的事前判断(可能下在某处会赢不是因为下在这该赢,而是这个人比较厉害),因此。这个部分它们是透过两台AlphaGo对弈的方式来解决,因为两台AlphaGo的实力可以当作是相同的,那么最后的输赢一定跟原来的两人实力无关,而是跟下的位置有关。
也因此评价网络并不是透过这世界上已知的棋谱作为训练,因为人类对奕会受到双方实力的影响,透过两台对一的方式,他在与欧洲棋王对弈时,所使用的训练组样本只有3000万个棋谱,但是在与李世石比赛时却已经增加到1亿。由于人类对奕动则数小时,但是AlphaGo间对奕可能就一秒完成数局,这种方式可以快速地累积出正确的评价样本。所以先前提到机器下围棋最大困难点评价机制的部分就是这样透过卷积神经网络来解决掉。
蒙地卡罗搜寻树技术跟阿尔法狗有什么关系?
AlphaGo技术的最后环节就是蒙地卡罗搜寻树,相较于以前深蓝所使用的搜索(搭配MinMax搜索算法以及Alpha-Beta修剪法,这里就不再赘述),由于我们并非具有无限大的计算能力(请注意,如果是有限的排列组合,蒙地卡罗搜寻树的确有可能针对所有组合进行通盘评估,但是在围棋的场景下是没有办法的,就算这样做,恐怕也会造成计算时间的大幅增加),因此不可能是适用于旧的方法,不过在前面策略网络以及评价网络中,AlphaGo已经可以针对接下来的落子(包括对方)可能性缩小到一个可控的范围,接下来他就可以快速地运用蒙地卡罗搜寻树来有限的组合中计算最佳解。
一般来说蒙地卡罗搜寻树包括4个步骤:
1. 选取:首先根据目前的状态,选择几种可能的对手落子模式。
2. 展开:根据对手的落子,展开至我们胜率最大的落子模式(我们称之为一阶蒙地卡罗树)。所以在AlphaGo的搜寻树中并不会真的展开所有组合。
3. 评估:如何评估最佳行动(AlphaGo该下在哪?),一种方式是将行动后的棋局丢到评价网络来评估胜率,第二种方式则是做更深度的蒙地卡罗树(多预测几阶可能的结果)。这两种方法所评估的结果可能截然不同,AlphaGo使用了混合系数(mixing coefficient)来将两种评估结果整合,目前在Nature刊出的混合系数是50%-50%(但是我猜实际一定不是)
4. 倒传导:在决定我们最佳行动位置后,很快地根据这个位置向下透过策略网络评估对手可能的下一步,以及对应的搜索评估。所以AlphaGo其实最恐怖的是,李世石在思考自己该下哪里的时候,不但AlphaGo可能早就猜出了他可能下的位置,而且正利用他在思考的时间继续向下计算后面的棋路。
根据AlphaGo团队的实测,如果单独使用一个大脑或是蒙利卡罗搜索树技术,都能达到业余(段)的等级(欧洲棋王樊摩强度等级大概是在2500~2600,而李世石是在3500以上)。但是当这些技术整合就能呈现更强大的力量。
但是在刊登Nature论文时他的预估强度大概也只有职业3~4段(李世石是9段),不过刚刚提到他透过增强技术强化策略网络、透过两台AlphaGo来优化评价网络,这都可以让他可以在短时间变得更加强大。而且计算机没有情感也不怕压力,更不会因为对手表现而轻敌(AlphaGo的策略网络一向只预测强者),所以人类就算有更强大的实力也未必能够承受输赢压力而做最好的发挥。
公子义【微信号gongzi348】80后,90后心理研究专家,4年心理学,9年大数据研究者,专注于移动互联网,大数据究狂热爱好者,热爱写作。原创文章,未经许可,严禁转载,违者追究法律责任。