算法|最强通用棋类AI,AlphaZero强化学习算法解读( 二 )
仅凭给定的游戏规则,AlphaZero即可进行自我博弈。逐步习得游戏策略与技巧,很快即可获得超人的表现。
像DeepBlue这样的系统会需要国际象棋专家的协助,而AlphaZero却是凭借自我博弈来变强大的。不单单是在国际象棋上,哪怕是围棋,AlphaZero同样表现出超越人类的强大统治力。考虑到围棋相较于其他棋盘游戏更大的博弈空间等因素,对计算机来说,围棋是个极为复杂的游戏。
人类从几千年来数百万次的博弈中方才积累了诸如围棋和国际象棋等游戏的技艺,而AlphaZero,一个仅使用游戏规则信息的算法,却能够在几天时间内重新寻获这些知识并发现新的游戏策略。
甚至还有一部关于它的纪录片。
(译者注:这部纪录片很值得一看,无法访问YouTube的同学可以在B站观看,链接在此。不过需要注明的是,本纪录片中实际上使用的是AlphaGo算法,而非AlphaZero,准确来说,AlphaZero是AlphaGo的进阶版本,全名为AlphaGo Zero。纪录片中与李世石博弈的AlphaGo在跟AlphaGo Zero 博弈时,0-100全负,并且,AlphaGo Zero在训练中未使用任何手工设计的特征或者围棋领域的专业知识,仅仅以历史棋面作为输入,其训练数据全部来自于自我博弈。可谓恐怖如斯!)
AlphaZero是怎么做到仅凭自我博弈就习得技艺的呢?
回想一下,像DeepBlue那样依赖于人为定义的“评价函数”的系统会把棋盘的盘面状态作为输入,再输出该状态的“价值”。
如今,对于深度学习模型来说,输入一张照片然后识别出照片里是猫还是狗简直简单到爆了。那么有个想法就是,把棋盘盘面作为一个深度学习模型的输入并且训练它,让它预测这样的盘面布置是会输还是会赢。
但是,要训练一个机器学习模型,就需要数据,海量的数据。从哪儿能得到那么多棋局博弈的数据呢?很简单,我们就让电脑自己跟自己下着玩儿,生成一堆棋局,然后再把它们做成一个数据集用来训练。
AlphaZero的训练算法
这个算法简单明了:
1. 让计算机自我博弈数局,记录每一步走棋。一旦胜负已分,就给之前的每一步走棋打上标签——棋面最终是“赢”或是“输”。如此一来,我们就获得了一个可以用于神经网络(Neural Network,NN)训练的数据集,让该网络学会判断给定棋面是“赢面”还是“输面”;
2. 复制这个神经网络。用上一步得到的数据集训练该克隆网络;
3. 让克隆网络与原始神经网络互相博弈;
4. 上一步中获胜的网络留下,败者弃之;
5. 重复第1步。
呼哈,就像是魔法似的,经过多轮迭代后,你就将获得一个世界级模型。这个模型在短短4小时内便超越了最强大的计算机象棋程序。
AlphaZero的组件
AlphaZero由两部分构成。我们已经提及了第一部分,就是神经网络。第二部分则是“蒙特卡洛树搜索(Monte Carlo Tree Search)”,或者简称MCTS。
1. 神经网络(NN)。以棋面作为输入,输出该棋面的“价值”,外加所有可能走法的概率分布。
2. 蒙特卡洛树搜索(MCTS)。理想情况下,使用神经网络就足以选择下一步走法了。不过,我们仍然希望考虑尽可能多的棋面,并确保我们的的确确选择了最好的走法。MTCS和Minimax一样,是一种可以帮助我们寻找可能棋面的算法。与Minimax不同的是,MTCS能够帮助我们更加高效地搜寻博弈树。
让我们深入细节,看一看下一步走棋究竟是如何得到的
我们不妨先看看AlphaZero在决定下一步走棋(竞技模式)时具体干了什么,然后再去探究它的训练过程,这样可以帮助我们更容易地理解AlphaZero。
神经网络在分类这件事儿上表现得异常出色,例如区分猫跟狗。所以这里的想法很简单直接,神经网络能学会区分棋局输赢的类别吗?更具体地来说,就是让神经网络预测一个表示棋局输赢概率的数值。此外,它还将输出所有可能走法的概率分布,来表示我们下一步应该如何决策。
神经网络将博弈状态作为输入并输出一个输赢概率数值以及所有可能走法的概率分布。对于Dots and boxes这个小游戏来说,游戏状态由三个元素表示:首先,某一条线是否已被占用,这可以用一个含有0与1的数组来表示,如果玩家已经画了某条线,则置其为1,否则为0;第二,当前的走法是否是空过;第三,双方玩家的得分。我们可以用这三个元素来表示所有需要的信息,用其计算当前盘面的价值并预测下一步的走法。
让我们分析一下下图中的博弈情形,该轮轮到蓝色玩家走。蓝色方有两个选择,按照图中上面的走法来画线就会输,按照下面的走法就会赢。
- 算法|千人千面的算法,走到了十字路口
- 千人千面的算法,走到了十字路口
- 三星|号称最强的安卓手机,三星 S22 的跑分依然被 iPhone 13 碾压...
- 苹果|远不如苹果A15!三星S22超大杯跑分出炉:史上最强安卓机皇
- 算法|你必须明白:战略是有逻辑的!
- 杀熟|2022,算法推荐的野蛮生长时代快结束了
- 算法|效率低下的方式,如何更有效地吸收信息?
- 一加科技|地表最强安卓旗舰来了,三星Galaxy S22 Ultra,除了贵挑不出毛病
- 跑分|性能最强的十款安卓手机,小米12排名第七,第一名跑分高达102万
- 赛灵思|圈内人都这样买!2022年最强拍照手机,这四款一定有你女票的菜