AlphaGo Zero到底强在哪里?
当然,最好的材料还是看原版论文。原版论文都没看就别跟别人凑热闹,瞎逼逼了。AlphaGo之前的论文也需要仔细看看,不然可能不明白diff在什么地方。
- AlphaGo Zero《Mastering the Game of Go without Human Knowledge》
- AlphaGO Lee(跟李世石对战的版本)《Mastering the game of Go with deep neural networks and tree search》之前做过笔记
其实论文里面已经说了。
Our program, AlphaGo Zero, differs from AlphaGo Fan and AlphaGo Lee 12 in several important aspects.
- First and foremost, it is trained solely by self-play reinforcement learning, starting from random play, without any supervision or use of human data. 之前的版本提到需要人类棋谱作为训练样本,这是比较让人诟病,会让人觉得这跟我们想要的AI有点距离。虽然学了人类棋谱之后,self-play会继续迭代加强,有点“智能”的样子。那旧版AlphaGo能否不要人类棋谱呢?我后来也想过这个问题。毕竟围棋是一个规则很明确的游戏,这些人类棋谱顶多起到一个加速收敛的作用,如果没有这些棋谱,顶多让机器自己去explore。当然代价就是会多花费很多时间,毕竟围棋的解空间太大了。不过这次AlphaGo Zero的研究结果表明,用人类的棋谱其实也有side-effect,会形成“思维定式”,用神经网络里的术语就是陷入局部最优。所以去掉之后发现效果更好了。当然,带来的另外一个疑问就是如何快速收敛?
- Second, it only uses the black and white stones from the board as input features. 至少之前的fast rollout是有用hand-craft特征的。现在完全没用hand-craft特征了,离“人工智能”又更近了。
- Third, it uses a single neural network, rather than separate policy and value networks. 之前提到,policy network和value network训练的目的虽然不太一样,但单纯从效果上看,这两个网络都可以当做AI,所以,一个很自然的想法就是合并。插一句题外话,在object detection领域用同一网络同时实现bounding Box的回归和target的classification也不是没有。这个优化点可以减少训练时间。
- Finally, it uses a simpler tree search that relies upon this single neural network to evaluate positions and sample moves, without performing any Monte-Carlo rollouts. 没有rollouts,网络也剩下一个,整体架构变简单了。这个优化点也是对减少耗时有帮助。
这里先简单一看,优化的点有些是能加速,但不用人类棋谱,对收敛速度的伤害是巨大的,所以还需要方法上的优化,不然不可能会有如此明显的性能提升。
我感觉AlphaGo Zero耗时大幅降低最为关键的一点就是loss函数加入MCTS花了很大时间探索出来的概率。之前的MCTS貌似没有引起足够多的重视,而MCTS的一个重要功能就是起到explore的作用,补充原有network的不足,这么重要的信息也应该加入神经网络里面来训练。(比较两个概率的不同,用cross-entropy应该知道吧?)
而另外一个关键点就是网路结果换成能力更强的residual network。
内容 | AlphaGo Lee | AlphaGo Zero |
---|---|---|
网络架构 | separate (“sep”) | combined policy and value networks (“dual”) |
网络类型 | convolutional (“conv”) | residual networks (“res”) |
combined policy and value networks除了可以少训练一个网络,节省时间,还能提高效果,这么好的事情有点让人吃惊。