夏乙 问耕 编译自HackerNoon

量子位 出品 | "大众年夜众号 QbitAI

过去一年,AI领域最exciting的进展可能要数AlphaGo的不断进步。
AlphaGo Zero不仅提出了新的网络架构,也带来了一些新的神经网络演习技巧。

虽然DeepMind揭橥了论文,并在Reddit论坛上进行了一次公开答疑,后来还有人将AlphaGo Zero的算法实现了出来,但如何演习?个中有哪些trick?

若何三天演习出AI围棋大年夜师教你AlphaGo Zero的3个trick

揭橥在HackerNoon上的一篇最新博客文章做出了直不雅观的解读:

先从AlphaGo各个版本一脉相承的两种方法提及:一是前瞻的蒙特卡洛树搜索,二是凭“直觉”来对落子位置进行评估,也便是DeepMind所说的策略网络和代价网络。
这两种方法结合起来,构成了每一版AlphaGo的核心。

从更高的层面谈论,AlphaGo Zero的事情办法和AlphaGo差不多,它们都利用了基于MCTS的前向搜索,并辅以神经网络的辅导。
然而,AlphaGo Zero的神经网络,或者说它的“直觉”,跟AlphaGo的演习办法完备不同。

以下是三个你须要知道的tricks。

Trick 1:如何演习AlphaGo Zero

所谓神经网络学会下围棋,便是能在当前的局势下,判断出下一步的最佳落子位置。
DeepMind创造,无论神经网络智能程度如何,从一无所知到围棋大师,利用MTCS总是更好的评估判断方案。

从根本上来说,MCTS是一种前向搜索,如果有足够的韶光,人类围棋大师也能完成。
这个过程无非是不断脑补棋局未来的变革,评估哪些“套路”可能是最佳方案。

举个例子。
第一种落子方案,终极可能导致平局,评估得分便是0.0。
接着看第二种方案,神经网络推算出这么下可能会得胜,评估得分为0.5。

这个过程一贯持续进行的话,前向搜索总是能够评估出更好的落子方案。

当然,这也哀求神经网络能够判断如何下棋落子能带来胜利。
基于MCTS的改进评估与神经网络确当前状态,智能体Agent不断地展开自我对局。

DeepMind用来演习AlphaGo Zero的数据,全部都是通过前向搜索和自我博弈产生的。

不该用人类下棋的数据,实在是一个trick。
这样的话,对付每个给定的局势,神经网络都能通过实行基于MCTS的前向搜索,再用其提高智能体的棋力。

在这种方法的帮助下,AlphaGo Zero从一无所知发展为围棋大师。

Trick 2: 双头怪

AlphaGo Zero的神经网络,是一个“双头”架构。

这个网络的前20层旁边,是常见的神经网络构造。
然后随着是两个“头”,一个头取走了前20层的输出,然后产生了下一步的落子概率,另一个头基于同样的数据,输出当前局势的得胜概率。

这是个不屈常的构造。
险些所有的运用中,神经网络都只给出一个固定的输出。
如果有两个不同的输出结果,该当如何学习呢?

答案很大略。
请记住,神经网络的实质只是一些数学函数,包括一系列影响决策的参数。
所谓演习,便是反复向神经网络展示精确答案,让网络更新参数,使得输出更靠近精确答案。

以是,当我们利用一个头进行预测时,只须要更新“身体”和“头1”中的参数。
而利用另一个头时,更新“身体”和“头2”中的参数。

这便是DeepMind演习单一、双头神经网络的方法,并且用其来辅导MCTS的搜索。
有点像AlphaGo利用了两个单独的神经网络。
这个trick在技能上被称为硬参数共享的多任务学习(Multi-Task Learning with Hard Parameter Sharing)。

Trick 3: 残差网络

AlphaGo Zero还用了比之前版本更前沿的神经网络架构:残差网络。

残差网络是2015年孙剑在微软亚洲研究院带领的团队开拓的,当时AlphaGo初版的事情已经快要靠近尾声。

△ 残差网络和普通卷积神经网络的比较

这两种神经网络干系的技巧——用残差网络架构替代卷积架构、用“Two Headed Monster”神经网络替代各个单独的神经网络,都能让全体网络的性能增加一倍,两者结合起来,性能又有提升。
如下图所示:

小结

上面三个tricks让AlphaGo Zero展现出令人难以置信的能力。

值得把稳的是,AlphaGo没有利用任何经典或者前沿的强化学习观点,没有Deep Q Learning,也没有Asynchronous Actor-Critic Agents。

DeepMind只是利用了仿照的方法为神经网络产生数据,然后以监督的办法学习。

Denny Britz曾经总结说:具有讽刺意味的是,强化学习在过去几年里的紧张发展,都让强化学习看起来不像强化学习,反而更像监督学习。

手把手演习AlphaGo Zero

1、初始化神经网络

2、让神经网络开始自我对弈,每一步进行1600次MCTS仿照,大概耗时0.4秒

3、随着对弈数量的增长,从最近的50万场比赛中,采样2048个落子决定,以及比赛对应的输赢情形。

4、利用MCTS前向搜索产生的落子评估,以及输赢结果,一起对神经网络进行演习。

5、步骤3、4每进行1000次迭代,评估当前神经网络与此前最佳版本。
如果新版本胜率达到55%,就开始用其天生新的游戏,而不再用此前的版本。

重复3、4步70万次,自我对局不要停,三天后,你也能演习出一个AlphaGo Zero。

对AI未来的启迪

DeepMind的造诣,对付人工智能研究的未来有很多启迪,以下是关键几点:

第一,通过仿照产生的自我对弈数据对付神经网络的演习来说,已经足够好了。
这证明了仿照的自我对局数据能够演习AI智能体完成极其繁芜的任务,超越人类表现,乃至能够完备从0开始,根本不须要人类专家供应的数据。

第二,为了让智能体在多个领域学习实行几个干系任务,“双头”的trick能供应很大帮助。
这彷佛可以防止智能体的行为在任何单个任务上过拟合。
DeepMind彷佛非常喜好这个trick,还用它的高等版本构建了可以在多个不同领域学习多个任务的智能体。

△ DeepMind的AI用多任务强化学习框架学习走迷宫

很多机器人项目,特殊是用仿照环境演习机器人利用四肢完成任务的领域里,用这两种技巧取得了不错的效果。
Pieter Abbeel在NIPS上的最新演讲展示了很多令人印象深刻的新成果,这些成果用了很多前沿强化学习技能加上了这些trick。

实际上,机器人的运动对付“双头”来说是一个完美的利用场景,比如说,要教机器人打棒球,实在包含两类动作,一是握住、挥舞球棒,二是击打一个运动中的物体。
用“双头”,两种动作的演习就可以同时完成,由于这二者包含一些共同技能,比如平衡、转体等等。

△ DeepMind将演习AlphaGo Zero的技巧用到了机器人运动上

— 完 —

诚挚招聘

量子位正在招募编辑/,事情地点在北京中关村落。
期待有才华、有激情亲切的同学加入我们!
干系细节,请在量子位"大众年夜众号(QbitAI)对话界面,回答“招聘”两个字。

量子位 QbitAI · 头条号签约作者

վ'ᴗ' ի 追踪AI技能和产品新动态