首页
学习
活动
专区
工具
TVP
发布
社区首页 >专栏 >田渊栋:深度学习没有解决的理论问题(附 ICLR 论文 3 篇)

田渊栋:深度学习没有解决的理论问题(附 ICLR 论文 3 篇)

作者头像
新智元
发布2018-03-26 13:52:33
9950
发布2018-03-26 13:52:33
举报
文章被收录于专栏:新智元新智元

【新智元导读】Facebook 人工智能组研究员、围棋项目负责人田渊栋昨日在知乎专栏撰文,介绍投稿 ICLR2017 的三篇论文,其中两篇应用(包括获 Doom AI Track1 第一名论文),一篇理论。田渊栋还阐述了他对深度学习局限的一些思考。

ICLR2017的投稿时间终于截止。这次投了三篇文章出去,是我个人做研究以来单次会议投稿数最多的一次。

  1. 如何用增强学习中的 Actor-Critic 模型再加上课程学习来训练 Doom AI 拿到 AI 比赛冠军:Training Agent for First-Person Shooter Game with Actor-Critic Curriculum Learning(PDF:http://openreview.net/pdf?id=Hk3mPK5gg)
  2. 如何用卷积神经网络让计算机读入一个算法的输入输出,自己写代码:Unsupervised Program Induction with Hierarchical Generative Convolutional Neural Networks
  3. 对于用ReLU作为传递函数的二层非线性神经网络的收敛性分析:Symmetry-Breaking Convergence Analysis of Certain Two-layered Neural Networks with ReLU nonlinearity

让计算机自己写代码

ICLR这个会议的投稿是即时公开的,上传完文章之后,任何人都可以看到,不存在任何时延。翻阅投稿的论文,你会看到这个领域的迭代之快,世所罕见。我之前在专栏《快速迭代的人工智能》里面提到领域投稿的速度, 等到这次再看看投稿列表,发觉自己可能还低估了。

像“让计算机自己写代码”这个想法,在去年的文章里还出现得不多,并且主要是以构建可微分计算机(比如说DeepMind的神经图灵机,可微分神经计算机)的形式,让神经网络通过端对端的梯度下降的优化方法,学会如求和排序等具体任务。但是这个思路有几个比较大的问题,一个是因为神经网络的黑箱性质,对可微分计算机学习后使用的算法没办法解释;第二个是梯度下降法取决于初值的选取,且优化过程较慢;第三个是扩展性不好,对60个数排序可以,100个数就完全不行,有悖人类的直觉。而让计算机生成代码则没有1和3这两个问题,2也可以通过预先训练神经网络生成代码来克服,不通过优化,而用一遍前向传播就可以了。

我们的第二篇投稿就是基于这个想法,将算法的输入输出的结果抽取特征后,送入卷积神经网络文献中层次式生成图像的经典框架,生成一张二维图,每行就是一行代码,或者更确切地说,是代码的概率分布。有了好的分布,就可以帮助启发式搜索找到正确的程序。而神经网络的训练数据,则由大量的随机代码,随机输入及随机代码执行后得到的输出来提供,所以基本不需要人工干预,算是非监督的办法

等到今年的ICLR的文章一公布,随便翻一翻就找到了七篇计算机自动生成(或者自动优化)代码的文章。打开一看,引论里全在描述同样的动机。看完之后,我心里暗自庆幸我们及时投了出去,不然等到ICML就要被灭得渣都不剩了。当然方法上来说,大部分使用的还是RNN和Autoencoder,没有像我们这样脑洞大开用卷积神经网络的,而且就算是代码里包含循环和分支,卷积网络也可以给出相对较好(比随机和LSTM的baseline要好挺多)的预测。相比之下,大部分的文章还只是局限于直线式程序(straight-line program),即没有分支和循环的程序。

用A3C模型和课程学习训练 Doom AI

另外增强学习这个领域目前也是大红大紫。游戏的应用当然是重头戏,这次我们 (@吴育昕)的 Doom 这篇文章用了 DeepMind 那边最新的A3C训练 再加上 课程学习(Curriculum Training)的方法,训练出一个比较强的AI,这个AI读取最近的4帧游戏图像,及它们的中心图像(为了瞄准方便),和AI自己的游戏数据(血量和子弹数),然后输出AI应当做的六个动作(向前/左/右,左/右转,开火,注意这里没有后退的选项)。我们自己写了小地图,先在小地图上做了训练,训练时按照AI的成绩去逐渐调节敌人的强弱,以加速训练的进度,然后放进大地图里面再行训练。最后我们还使用了一些人工的规则,先领会AI的意图(比如说想右转),然后用 VizDoom 里面速度更快的命令取而代之。我们的AI参加了比赛,获得了 Track1(已知地图)的冠军。我们没有像第二名那样使用游戏内部数据(比如说敌人是否出现在视野中)进行训练,这让框架通用性较高。当然因为时间所限,目前还没有在 Track2(未知地图)上做训练和测试。

而在Track2上拿了冠军的Intel团队的文章则是给定当前图像,当前的各游戏数据(血量,子弹数和分数)及提高这些数据的迫切程度的权值(Goal),对每个动作输出一个提高值f(比如说做这个动作之后,血量提高了多少,或者又杀死了几个敌人),然后用最高的提高值来选下一步动作。这个实际上是Q值网络的变种。他们生成了各种类型的地图做了训练,效果比DQN及A3C都要好些,而且因为迫切程度的权值是一个输入,所以这个模型具有在线改变目标的能力,比如说可以先让它去加血,加完了再去杀敌,当然这个高层逻辑目前还是需要人去控制。

另外增强学习这边还有一些文章值得关注的。比如说有关模拟学习(imitation learning)的一些工作(两篇以上)。增强学习有个问题是奖励函数需要预先设计好,一般通过手工比较麻烦,这两篇模拟学习的核心思想是通过人类的演示来自动习得增强学习中的奖励函数。

理论这边目前还没有看到特别意思的文章。一般来说深度学习的理论相较实践而言,迭代速度要慢很多,主要是门槛比较高,也并非关注的焦点。我这次投了一篇理论,细节请见下文。虽说理论比较冷门,我仍然相信对理论的深入了解是有长期的功用,会在将来指导实践。

深度学习没有解决的理论问题

虽然深度学习人人都在喊人人都在用,但是它究竟为什么能有效果,到目前为止都没有初步的结论。具体来说,有两个理论问题没有解决,一个是泛化能力,另一个是收敛性。深度神经网络那么多参数,再配以能拟合世界上大部分函数的强大模型容量,按通常机器学习理论的说法,应该是很容易过拟合才对;但是试看目前的卷积神经网络,往往只要是训练集上有了效果,测试集上就不会太差。同样的参数下其它模型,比如说Random Forest和Adaboost,早就过拟合得不能看了。这是为什么呢?目前学术界没有统一的结论。退一步说,假设我们已经承认了深度神经网络对某个问题有效,就是说存在一个权值的解使得期望误差很小,但因为深度学习优化是个非凸问题,这个存在的解,能否通过梯度下降的优化算法得到,还是会陷入局部极小或者在鞍点停很久?这就牵涉到全局收敛性及收敛速度的问题。

这两个问题都很难很难,大家熟悉的工具在非线性传递函数及非凸问题面前似乎毫无用处,更不用说多层非线性网络带来的分析上的困难。为了能对付这个问题,需要去寻找更有效的数学工具,使用更创造性的分析方法。

我这次终于做了第一篇关于深度学习理论的文章,投给了ICLR。文章中首先对于单层ReLU下的梯度,在输入数据符合高斯分布的条件下给了一个闭式解,然后用它证明了在某些适当的初始条件下,优化含有ReLU隐层的二层网络也可以收敛到指定解,而不会掉进局部极小,用的方法是常微分方程的一些理论。这个结论很有意思,因为这类二层网络通常有指数量级的对称性,天生非凸,而要得到一个想要的解,就需要去研究不同初值下对称性破缺(Symmetry-Breaking)的结果。我在结果刚开始露头的时候和组里人讨论过,各位大佬们都觉得玩对称性破缺这种东西非常非常难,我也没指望自己再往下挖能做出些什么来,不过在努力下,居然就得到了一些意想不到的结果。

我想着做层次式模型(Hierarchical model)及深度学习的理论已经有一些年了,从2010年开始一篇有关图像对齐的非凸问题的全局最优解拿了CVPR的Oral,到PhD的中间几年开始想着怎么针对图像设计特定的层次式模型,之后在2013年,因为提出了CVPR那篇的层次式拓展,拿了ICCV13的Marr Prize Honorable Mention。后来2013年9月进了谷歌还在业余时间继续做(见文章收集中的《业余做研究的心得》系列),险些投了一篇文章出去,可是因为无法将提出的理论框架和梯度下降算法结合起来而放弃;最后在2015年时跳到Facebook人工智能研究所,终于有一些可以专心思考的时间,但就算如此仍然到现在才有一些结果,投了第一篇有关深度学习理论的文章。

长长的旅程

我有时候觉得,要是不去想这些核心问题,而只集中精力于深度学习的应用的话,大概还可以提高两三倍的效率,文章会变多,人也会轻松得多,何乐而不为?然而或许是想惯了这个问题,很难不去想现象背后的本质,结果背后的原因,就算是要忙其它的工作,自己有空时也在不停地思考。发《业余做研究的心得》系列,一方面是可以给大家分享一些心得体会,另一方面也是不停地拷问自己,心得写了很多,可我做出了成果没有?

大半年前还在做围棋的时候,有位前辈在开会时问我,找个数据集画个网络图训练模型大家都会,作为一个研究员,你的核心技能是什么?我当时无言以对,心里虽早有答案,可无法说出口。因为我知道,梦想在未成时一文不值。而让它变得有价值,是自己的责任。

现在回想起来,“失败是成功之母”并不对,“不历风雨如何见彩虹”也不对,因为喊着这些口号的时候,依然认为失败或者风雨是世上的稀罕事物,而成功则是要追求的目标。殊不知这些观念,正是阻碍前进的最大原因。当失败到习以为常,当每时每刻都在风雨中穿行,当不再存有失败的概念,而只留下不停尝试的好奇心和不停总结的习惯,成功才可能悄然现身。而伴随而来的,也不是那种梦寐以求的”我也终于牛了一次”的狂喜,而只是“啊,原来如此”的平静。

这篇文章,只是一个小小的开始;前面,还有很长很长的路要走。

原文链接:

  1. https://zhuanlan.zhihu.com/p/23454387
  2. https://zhuanlan.zhihu.com/p/23454281
本文参与 腾讯云自媒体分享计划,分享自微信公众号。
原始发表:2016-11-07,如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 新智元 微信公众号,前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与 腾讯云自媒体分享计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档