Board logo

标题: Facebook田渊栋赞DeepMind论文:方法干净标准 [打印本页]

作者: 天马行空    时间: 2017-10-20 11:08     标题: Facebook田渊栋赞DeepMind论文:方法干净标准

2017年10月20日09:58 新浪综合

[attach]89941[/attach]


谷歌DeepMind团队



  文章来源:机器之心转载自知乎

  作者:田渊栋

  昨日,DeepMind 在《自然》杂志上发表了一篇论文,正式推出人工智能围棋程序AlphaGo Zero。这篇论文的发布引起了业内极大的关注与讨论。Facebook AI 研究员田渊栋在知乎上发布了一篇简短的文章,介绍了自己对这篇论文的看法。

  老实说这篇 Nature 要比上一篇好很多,方法非常干净标准,结果非常好,以后肯定是经典文章了。

  Policy network 和 value network 放在一起共享参数不是什么新鲜事了,基本上现在的强化学习算法都这样做了,包括我们这边拿了去年第一名的 Doom Bot,还有 ELF 里面为了训练微缩版星际而使用的网络设计。另外我记得之前他们已经反复提到用 Value network 对局面进行估值会更加稳定,所以最后用完全不用人工设计的 default policy rollout 也在情理之中。

  让我非常吃惊的是仅仅用了四百九十万的自我对局,每步仅用 1600 的 MCTS rollout,Zero 就超过了去年三月份的水平。并且这些自我对局里有很大一部分是完全瞎走的。这个数字相当有意思。想一想围棋所有合法状态的数量级是 10^170,五百万局棋所能覆盖的状态数目也就是 10^9 这个数量级,这两个数之间的比例比宇宙中所有原子的总数还要多得多。仅仅用这些样本就能学得非常好,只能说明卷积神经网络(CNN)的结构非常顺应围棋的走法,说句形象的话,这就相当于看了大英百科全书的第一个字母就能猜出其所有的内容。用 ML 的语言来说,CNN 的 induction bias(模型的适用范围)极其适合围棋漂亮精致的规则,所以稍微给点样本水平就上去了。反观人类棋谱有很多不自然的地方,CNN 学得反而不快了。我们经常看见跑 KGS 或者 GoGoD 的时候,最后一两个百分点费老大的劲,也许最后那点时间完全是花费在过拟合奇怪的招法上。

  如果这个推理是对的话,那么就有几点推断。一是对这个结果不能过分乐观。我们假设换一个问题(比如说 protein folding),神经网络不能很好拟合它而只能采用死记硬背的方法,那泛化能力就很弱,Self-play 就不会有效果。事实上这也正是以前围棋即使用 Self-play 都没有太大进展的原因,大家用手调特征加上线性分类器,模型不对路,就学不到太好的东西。一句话,重点不在左右互搏,重点在模型对路。

  二是或许卷积神经网络(CNN)系列算法在围棋上的成功,不是因为它达到了围棋之神的水平,而是因为人类棋手也是用 CNN 的方式去学棋去下棋,于是在同样的道路上,或者说同样的 induction bias 下,计算机跑得比人类全体都快得多。假设有某种外星生物用 RNN 的方式学棋,换一种 induction bias,那它可能找到另一种(可能更强的)下棋方式。Zero 用 CNN 及 ResNet 的框架在自学习过程中和人类世界中围棋的演化有大量的相似点,在侧面上印证了这个思路。在这点上来说,说穷尽了围棋肯定是还早。

  三就是更证明了在理论上理解深度学习算法的重要性。对于人类直觉能触及到的问题,机器通过采用有相同或者相似的 induction bias 结构的模型,可以去解决。但是人不知道它是如何做到的,所以除了反复尝试之外,人并不知道如何针对新问题的关键特性去改进它。如果能在理论上定量地理解深度学习在不同的数据分布上如何工作,那么我相信到那时我们回头看来,针对什么问题,什么数据,用什么结构的模型会是很容易的事情。我坚信数据的结构是解开深度学习神奇效果的钥匙。

  另外推测一下为什么要用 MCTS 而不用强化学习的其它方法(我不是 DM 的人,所以肯定只能推测了)。MCTS 其实是在线规划(online planning)的一种,从当前局面出发,以非参数方式估计局部 Q 函数,然后用局部 Q 函数估计去决定下一次 rollout 要怎么走。既然是规划,MCTS 的限制就是得要知道环境的全部信息,及有完美的前向模型(forward model),这样才能知道走完一步后是什么状态。围棋因为规则固定,状态清晰,有完美快速的前向模型,所以 MCTS 是个好的选择。但要是用在 Atari 上的话,就得要在训练算法中内置一个 Atari 模拟器,或者去学习一个前向模型(forward model),相比 actor-critic 或者 policy gradient 可以用当前状态路径就地取材,要麻烦得多。但如果能放进去那一定是好的,像 Atari 这样的游戏,要是大家用 MCTS 我觉得可能不用学 policy 直接当场 planning 就会有很好的效果。很多文章都没比,因为比了就不好玩了。

  另外,这篇文章看起来实现的难度和所需要的计算资源都比上一篇少很多,我相信过不了多久就会有人重复出来,到时候应该会有更多的 insight。大家期待一下吧。

  原文地址:https://zhuanlan.zhihu.com/p/30262872?utm_medium=social&utm_source=wechat_timeline&from=timeline&isappinstalled=0




欢迎光临 亦苏围棋社区 (http://ysgo.91em.com/bbs/) Powered by Discuz! 7.2