AlphaGo Zero到底强在哪里?

当然,最好的材料还是看原版论文。原版论文都没看就别跟别人凑热闹,瞎逼逼了。AlphaGo之前的论文也需要仔细看看,不然可能不明白diff在什么地方。

  1. AlphaGo Zero《Mastering the Game of Go without Human Knowledge》
  2. 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.

  1. 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,会形成“思维定式”,用神经网络里的术语就是陷入局部最优。所以去掉之后发现效果更好了。当然,带来的另外一个疑问就是如何快速收敛?
  2. Second, it only uses the black and white stones from the board as input features. 至少之前的fast rollout是有用hand-craft特征的。现在完全没用hand-craft特征了,离“人工智能”又更近了。
  3. 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也不是没有。这个优化点可以减少训练时间。
  4. 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应该知道吧?)
l=(zv)2+πTlogp+c||θ||2

而另外一个关键点就是网路结果换成能力更强的residual network。

内容 AlphaGo Lee AlphaGo Zero
网络架构 separate (“sep”) combined policy and value networks (“dual”)
网络类型 convolutional (“conv”) residual networks (“res”)

AlphaGo Zero到底强在哪里?
combined policy and value networks除了可以少训练一个网络,节省时间,还能提高效果,这么好的事情有点让人吃惊。