人工智能AlphaGo与强化学习 机器学习迄今为止最让人类惊奇的表现就是下围棋。下围棋的问题是当我每走一步时,如何使得最终赢棋的概率最大?如果我不走150步,只走两步,每步双方

人工智能AlphaGo与强化学习

人工智能AlphaGo与强化学习

机器学习迄今为止最让人类惊奇的表现就是下围棋。下围棋的问题是当我每走一步时,如何使得最终赢棋的概率最大?如果我不走150步,只走两步,每步双方只随机选5种走法,我走第一步有五种选择,对方对我这五种选择的每一种又有五种选择,我走第二步一共有5×5×5=125种选择。但通常走完两步离终局还很远,那我从走完第二步的这125个位置上各派出一批“侦察兵”,每个“侦察兵”蒙着头一条道走到黑,看到岔路任选一条,尽快走到终局,如果猜对了,给这个出发点加一分,猜错了,减一分。从每个位置上派出的“侦察兵”越多,从这125个出发点到终局的赢率就越准确。这个“有限出发点,随机侦察”的方法有个唬人的专业名字叫“蒙特卡洛树搜索”。蒙特卡洛是摩纳哥的赌场区,所以蒙特卡洛就是“随机”的意思。

人工智能AlphaGo与强化学习

但这种下棋策略只能勉强达到一二段的业余水平,与围棋大师相比还差得很远。为什么?

因为“侦察兵”往前走时随机选岔道实际上是随机地替对方选了走法。我们不禁会想到:见到岔路随机选多笨,完全可以根据阳光、藓苔、足迹这些东西做个判断。“侦察兵”很委屈地说:我怎么知道该怎样判断?AlphaGo寻思说:“人类2000多年下了那么多盘棋,咱能不能先学学?”这时候AlphaGo祭出了大法器,就是我们前面讲过的卷积神经网络。

卷积神经网络最适合处理图像,经过大量图片的训练后,你给它个新的图片,它告诉你是猫、狗、汽车的概率分别有多少。对于下棋,问题转化成:给个中盘,要判断哪种走法赢的概率最大。在人类下过的棋局中,每个中盘都对应着一个走法。现在可以把一个中盘看成一幅图像,把对应的走法看成与这个图像对应的物体。现在找到中盘最好的走法就相当于判断这幅图像最像哪个物体。那我就拿人类下过的棋局来训练AlphaGo里负责走子的卷积神经网络——决策网络。现在把3000万个人类走过的中盘输入给决策网络,调整决策网络上的旋钮,一直到这个网络的走法和人的走法类似。现在AlphaGo已经是七八段的水平了,但还打不过大师,为什么?虽然现在“侦察兵”每一步都是按人类的走法,但“侦察兵”的每一步只是替对方随机选一个。如果能让对方的选择也按人类的走法,这条路对弈下去就更逼真了。AlphaGo这时候拔了身上一根毫毛,吹口仙气儿,“变!”又“变”出一个一模一样的AlphaGo。哥俩都是八段,再大战百万回合,又摸索出很多原来人类没有探索过的捷径,又产生了很多数据,继续训练决策网络,没多长时间就打败了李世石,再练一阵子,在网上打出Master的旗号,横扫天下高手,无一失手,直至把柯洁挑下马。

前面介绍的无论是卷积神经网络还是循环神经网络都需要大量的训练数据,这也叫“监督学习”。在“监督学习”中通常有唯一或明确的答案,猫就是猫,狗就是狗。但生活中还有一类问题是没有明确答案的。例如我们学习骑自行车,没有人能说清楚正确姿势是什么,不管你姿势多难看,骑上去不摔倒就是对的。这类问题的特点是答案不唯一但知道结果的对错。这种通过每次结果的反馈逐渐学习正确“行为”的算法就叫“强化学习”。在强化学习算法中有一个“奖惩函数”,不同的行为会得到不同的奖惩。譬如我们在楼里打电话时,如果信号不好,我们就拿着手机,边走边问对方“能听到吗?”。我们得到的信息并不能直接告诉我们哪里信号最好,也无法告诉我们下一步应该往哪个方向走,每一步的信息只能让我们评估当前的状况是更好还是更差。我们需要走动、测试,以决定下一步应该往哪儿走。AlphaGo的随机树搜索就是强化学习,通过派出“侦察兵”来测试某种走法的赢率。赢了加一分,输了减一分,这就是强化学习中的奖惩函数,存储各种走法输赢积分的网络也叫“价值网络”。哥俩对战就是站在人类肩膀上的强化学习。所以AlphaGo是监督学习和强化学习的混合方式。

在AlphaGo的学习过程中,人类的3000万中盘仅仅把它领入门而已,进步主要靠哥俩自己厮杀。相当于你去学围棋,一开始跟着你爸学,你爸就是个业余选手,你两个星期就跟你爸学不了什么了,以后都要靠自己琢磨了。AlphaGo也一样,想清楚这点,干脆从零开始,人类2000多年积累的东西也许就是老爸那点业余水平,学不学无所谓。AlphaGo Zero横空出世了,这个“Zero”就是从零学起的意思。AlphaGo Zero从一开始就是哥俩自娱自乐,和AlphaGo不同的是,在下每一步棋之前,不需要随机地选125个出发点了,而是根据当前的小路“记号”和打分先在这个中盘选一个最可能赢的走法和“双胞胎弟弟”试走一次到终局,试走过程中每一步双方都用同一个决策网络指导如何走子。这个决策网络的功能很简单:给我一个中盘,我告诉你所有走法的赢率,这样一次到终局后就对从这个走法出发的路是否能赢多了点信息。一路上边走边做记号,第一,记住有没有走过这条路;第二,等到了终局后根据输赢再记下这条路的好坏。这个“做记号”就是不断更新价值网络。这样在同一个中盘哥俩试走了几万次到终局,基本摸清哪条路好走,哪条路不好走,也就是对于这个中盘我已经估摸出了所有走法的赢率。此时,我用几万次试走出来的赢率来更新决策网络。更新的方法就是用这个中盘做网络的输入,调试网络权重系数让输出的各走法赢率接近试走测出来的赢率。这一切做完后再根据测出的赢率郑重地正式走一步棋。哥哥下完一步该弟弟走了,弟弟的程序和哥哥完全一样,也是先试走许多次,用测出来的赢率更新决策网络,再根据测出来的赢率走子。以后哥俩就这么不断重复下去。AlphaGo Zero诞生后的第一局的第一个中盘,哥俩完全是乱下,但第一盘走完就多了一点点知识,哥俩用这点可怜的知识走第二盘就比第一盘靠谱了一点点,架不住计算能力强大,AlphaGo Zero每秒钟可以走8万步,平均一盘棋不到400步,所以哥俩一秒钟相当于下200盘棋。每盘长进一点,到第7个小时,也就是相当于下了500万盘棋后就下得像模像样了。一天半后,也就是相当于下了2 600万盘棋后就超过了战胜李世石的AlphaGo Lee。3天后,AlphaGo Zero就和AlphaGo Lee打了个100:0。AlphaGo Lee一共学了3000万个中盘,大致相当于3000万/400=8万盘棋,这时AlphaGo Zero已经相当于下了5 100万盘棋。21天后就打败了横扫天下无敌手的AlphaGoMaster,到40天后哥俩已经妥妥地称霸天下,独孤求败。到这里,AlphaGo团队终于松了口气,放下了原先的一个最大担忧:如果不让人类引进门,从零学起,这哥俩会不会在野地里瞎逛,在林子里迷路,像梦游一样原地绕大圈,永远都走不出来。这证明了在强化学习中只要每一步都知道对错,有惩罚奖励,哥俩很快就会放弃那些明显不通的绝大部分的道路,很快就会找到一条正路。AlphaGo用了1 200个CPU,176个GPU,而AlphaGo Zero只用了4个TPU(张量处理单元)。计算资源的大幅度下降主要来自算法的精简,不需要用人类数据训练了。由此可见,在不同的应用场景下,数据并非都那么重要。在下围棋这件事上,人类的经验反而拖了后腿。AlphaGo Zero给我们最重要的启示是柯洁说的那句话,“人类下了2000年围棋,连边儿都没摸着”。非常原始的机器在自己摸索了36个小时后,就超过了全人类2000年来摸索积累的全部围棋知识。

现在请大家思考三个问题:

为什么AlphaGo Zero从零学起反而比人强?

AlphaGo Zero再从头学一遍,功力还和原来一样吗?

AlphaGo Zero是不可战胜的吗?

相关阅读

友情链接

转载请注明:http://www.shengri5.com/zhishi/4848.html

以上是生日屋为大家整理的“人工智能AlphaGo与强化学习”,如您想了解更多关于“知识摘抄”的信息,欢迎访问http://www.shengri5.com查看更多相关信息。本文内容整理自互联网,任何单位或个人认为通过本网站网页内容可能涉嫌侵犯其著作权,应及时向我们提出书面权利通知,并提供身份证明、权属证明及详细侵权情况证明。我们收到上述文件后,将立即删除侵权内容,对此我们不承担任何法律责任。

上一篇:Aurochs 欧洲野牛——再造已经消失的巨牛
下一篇:战略的本质是选择不做什么