1 新智元编译
来源:iclr.cc、openreview.net
编译:闻菲、张易、刘小芹
【新智元导读】深度学习盛会 ICLR 2017 日程及最佳论文今日出炉,新智元第一时间为你整理。其中一篇最佳论文以 DeepMind 在 ICLR-16 的最佳论文为基础,对能够简单自编程的“神经编程解释器”(NPI)做了性能提升。现在机器自主编程的能力进化到了什么程度?本文为你详细解读。
由 Yann LeCun 和 Yoshua Bengio 等大牛发起的 ICLR 会议虽然年轻,但却已经成为深度学习界不可忽视的盛事之一。以 arXiv 为基础起家的 ICLR 比 NIPS、CVPR 迭代的速度更快、评判的标准也更为“平易近人”:ICLR 的一个主要成因就是要聚在一起讨论那些好却被顶会拒之门外的论文。
今天,ICLR 公布了 2017 年的会议日程以及最佳论文。接下来,我们将简要介绍在为期 3 天的时间里,ICLR 邀请的讲者、覆盖的议题(这部分内容在后面),以及我们今天的主菜——三篇 ICLR-17 最佳论文。
在编辑角度上,我们不仅翻译了摘要,还节选了一些评审意见,包括 ICLR 评委会的意见和网友的讨论,其中不乏犀利的评价,让你能够对内容有一个比较全面的把握。
今年的最佳论文在内容上非常值得一看。其中,有一篇是以 ICLR-16 的最佳论文为基础做了提升——ICLR 2016 的最佳论文,DeepMind 团队开发了一个“神经编程解释器”(NPI),能自己学习并且编辑简单的程序,排序的泛化能力也比序列到序列的 LSTM 更高,有望取代初级程序员的工作——那么现在,机器自主编程的能力已经进化到什么程度?是不是非常令人兴奋?
最佳论文
最佳论文一:伯克利改进 DeepMind 神经编程解释器,实现编程架构通用化
最佳论文一是由伯克利的研究人员完成。题目是《通过递归实现神经编程架构通用化》。
摘要
根据经验,试图从数据中学习编程的神经网络显示出较差的通用性。此外,当输入的复杂度超过了一定水平,就很难去推断这些模型的表现。为了解决这个问题,我们提出用一个关键抽象——递归(recursion)来增强神经架构。作为一个应用,我们在神经编程器-解释器框架(Neural Programmer-Interpreter framework)上实现递归,包括四个任务:小学加法、冒泡排序、拓扑排序和快速排序。我们使用少量训练数据证明了该方法具有较好的可泛化性和可解释性。递归将问题分割成一个个更小的部分,并且大大减少每个神经网络组件的域,使其易于证明对整个系统行为的担保。我们的经验表明,为了让神经架构更稳健地学习程序语义(program semantics),有必要引入这样一个“递归”方法。
【ICLR 委员会最终决定】评委非常肯定该论文。该论文所讨论的话题很有意义,并且探讨了一个实用的方法。
评审意见1:演示了 NPI 能够学习解决汉诺塔问题!
评分:8:前 50% 接收论文,明确接收
评论:这篇论文认为递归对于神经编程架构非常重要,因为递归能够很好地泛化到测试用例域之外,而且能从更少的训练数据学习。这篇论文大部分基于 Reed&de Freitas 的 ICLR 2016 论文《神经编程解释器》(Neural Programmer Interpreters),那篇论文中提出从程序痕迹(program traces)中学习,而本文是在具有递归调用的痕迹上训练 NPI 模型。作者仅对少量基本案例集和规则评估学习到的程序,展示了如何验证正确性,并且展示了 NPI 架构能够非常好地推断冒泡排序(Bubblesort)和汉诺塔(Tower of Hanoi)问题。
我喜欢这篇论文的地方在于,它提出的想法超级简单。正如作者提到的,唯一的变动是在训练管道上看到的执行跟踪。我实际上不知道这里的要点是什么——这是否意味着当执行跟踪可用时,我们就已经很好地解决了神经编程问题?以及这个问题是否开始得太简单?例如,一个更大的输入域(另一位评审委员也提到了)是 MNIST 数字。在这样的设置中,执行跟踪能够有效通过推断程序逻辑解耦识别数字的问题,因此,这样的问题不会比学习识别 MNIST 数字和从符号中学习冒泡排序更难。什么问题是我们能够访问执行跟踪,但无法使用该论文提出的方法推断的?
信心:4:评审者对该论文有信心,但不能肯定评价绝对正确。
>>作者回复
感谢评论!
只要程序语义有明确定义,以及使用足够的训练集,我们提出的模型从执行跟踪中推断程序的能力没有任何明显的限制。模型学习程序的能力很大程度上取决于训练集,如果训练集不够全面,学习到的程序会不准确,因为模型缺乏有关如何处理在训练时没见过的情况的信息。
执行跟踪为模型提供非常详细的监督,这使得从执行跟踪学习比从输入 - 输出对学习更容易。正如我们在论文中提到的,在未来的研究中,一个重要的方向是减少训练数据中的监督量,创建将递归纳入架构本身的模型。
评审意见2:一个使 NPI 更实用的简单扩展
评分:8:前 50% 接收论文,明确接收
评论:这篇论文非常有趣,而且相当容易阅读。作者提出了一个简单,但非常实用的方法,使神经编程解释器性能显著增强。通过允许递归,NPI 能利用更少的执行跟踪更好地进行泛化。一个小小的,但很厉害的扩展可以如何显著增加机器学习方法的实用性,本文是一个很好的范例。
我也欣赏这篇论文和原本的 Deepmind 的论文(Neural Programmer Interpreters)使用了相同的概念。因为我不是这个话题的专家,我同时阅读了那篇论文。我提出的一个批评是,论文对通用化/泛化(generalization)的证明过程有点模糊。对于论文中的数字例子,你可以循环遍历所有可能的执行路径,直到下一个递归调用。然而,这种方法应该怎样泛化到连续的输入空间(例如 Deepmind 论文里的车辆的3D示例)。在连续的实例中,似乎对通用化的证明仍然很难解决?
信心:3
>>作者回复
感谢评论!
关于对连续空间的证明问题类似下面提出的问题之一,可以参看我们在“验证程序可行性”回复下的解释。
我们计划清理我们的源代码,并在最近发布。
评审意见3:改进了 NPI 的训练和分析
评分:9 在会议接收论文中排名前15%,强烈接收
评论:本文显著改进了原本的 Deepmind 的 NPI 研究,指出当以递归形式在轨迹上进行训练时,模型泛化会好得多。作者展示了对于加法和冒泡排序更好的样本复杂性和泛化结果,并添加了两个新的、更有趣的任务 - 拓扑排序和快速排序(基于审阅者讨论添加)。 此外,他们实际上“证明”了该模型学习的算法泛化表现完美,就我所知这在神经程序推理(induction)中还是首次。
信心:5 审阅者充分确定评估正确,并且对相关文献非常熟悉。
>匿名用户:可证明vs可测试("Proving" vs "Testing")
我也喜欢这篇论文,也认为本文对于NPI工作有推进价值。
然而,第一次阅读时,我就对术语“证明”的使用感到恼火。 该论文证明了,在某些情况下,对有限的一组值进行_testing_就足以奠定整个输入类的正确性。 然而,这不是普适的证明策略。 这是唯一可行的,因为输入域很简单,只有少数情况需要考虑。 然而,当输入域扩展时,例如,当数字的one-hot编码被MNIST数字替换时,这很快就成了问题。 我希望NPI(和这里提出的递归扩展)能够用具有适当结构的域特定编码器处理这一问题,但本文描述的“证明”策略就不可行了 。 因此,我不相信这部分贡献的实际价值,因为它似乎只对玩具实例可行。
>>作者回复
谢谢您的评论!我们同意,在极大规模的输入域环境下(比如可理解输入)穷尽所有可能是不可行的。总体来说,带着对包含可理解输入的程序100%的确定性去推理,是非常困难的。然而,在貌似合理的可理解空间覆盖许多个点,并查看这些针对输入的学习程序的正确性,则是可能的。在未来的工作中,我们会考虑如何针对极大规模输入域设计一个更合适的验证流程。
>>>匿名用户:同意。对于可理解输入,穷举策略是不可行的。如何现在没有用这种策略,就应该在论文中清楚地标明。
>>>>作者回复:我们已经在论文中添加了这个标注。(Section 3.3的结尾处)
评审意见4:对其他任务的适用性
干得漂亮!很高兴能看到NPI的提升版本。一个问题——您觉得这个方法有助于学习分治算法,比如快速排序吗?原来的NPI论文中的简单问题具有相当局部的结构,例如,在数组中保留两个指针,并在bubblesort中交换它们相关的值。我想知道通过跟踪学习的递归形式是否可以允许NPI学习更复杂的算法。
>作者 Jonathon Cai 的回复
感谢提问!
是的,递归跟踪对学习更复杂的算法有帮助。使用递归调用实现分治(divide and conquer)类型的算法是很自然的,因此我们可以构造递归跟踪,并将它们作为训练数据提供给模型。用这用方法实现快速排序不难,我们已在本论文的研究中进行了这个任务。
好,接下来是另外两篇最佳论文的介绍。
有趣的是,这两篇论文形成了比较鲜明的比对,论文二备受赞誉(评审意见出现多个 9 分的高分),针对提问作者也给出了详尽的回复,称得上是模范。篇幅有限,大家可以去网站看原文。
而另一篇、第三篇“Bengio兄弟对决论文”,争吵很多,有人更是直言这篇最佳论文“没有用”,针对众多的提问(主要是论文第五部分),至少到我们发稿时为止,作者尚未做出回复。
最佳论文二:谷歌与 OpenAI 合作,半监督学习,差分隐私
第二篇最佳论文是来自宾夕法尼亚州立大学、谷歌(包括谷歌和谷歌大脑),以及 OpenAI 的研究人员合作完成的《通过半监督知识传递,使用私密训练数据进行深度学习》。
看到作者里 Ian Goodfellow 的名字,你想到了——没有错!这篇文章也使用了GAN,是近来有关差分隐私深度学习的一篇好文章。
摘要
有些机器学习应用涉及敏感训练数据,比如临床试验中患者的医疗史。模型可能无意和隐含地存储一些训练数据;因此仔细分析模型可能会泄露敏感信息。
为了解决这个问题,我们展示了一个普遍适用的方法,为训练数据提供强有力的隐私保证。该方法以一种黑盒的方式,结合了多个使用不相交数据集训练的模型,例如不同子集用户的记录。由于这些模型都直接依赖敏感数据,因此都是不公开的,作为教育“学生”模型的“教师”。学生通过学习所有教师的噪音投票来预测输出,不能直接访问单独的教师,也无法获取基础数据或参数。学生的隐私属性可以从直观上去理解(因为没有哪个教师能单独决定学生的训练,也就没有哪个单独的数据集能决定学生的培训),也能通过差分隐私(differential privacy)的方式被正式地理解。即使有攻击者(adversary)既能访问查询(query)学生,也能审查(inspect)其内部机制,学生的隐私属性也不会改变。
与此前的工作相比,这种新的方法对教师是如何训练的抱有很弱的假设(weak assumption);并且适用于任何模型,包括像深度神经网络(DNN)这样的非凸模型。得益于改进后的隐私分析和半监督学习,我们在隐私和实用性(utility trade-off)方面,在 MNIST 和 SVHN 上取得了最好的结果。
【一句话总结】通过一组在私密数据分区上训练的教师的集合进行知识传递,让带有对抗生成网络、能够保护隐私的学生模型进行半监督学习。
【ICLR 委员会最终决定】论文提出了一种用于差分隐私的、通用的教师-学生学习方法,其中学生通过学习一组教师的噪音投票进行预测。噪音使得学生能够拥有差分隐私,同时在 MNIST 和 SVHN 上取得很好的分类结果。论文写得很好。
>>关于隐私丢失(privacy loss)的简单问题
匿名用户:我认为这篇论文影响深远。我的问题是在 Definition 2 中的“辅助输入”(auxiliary input)是什么。能从理论角度和具体到你们论文分别解释一下吗?
Kunal Talwar:Definition 2 中的辅助输入指所有数据库以外的信息,在我们的论文里,辅助输入可能是学生想要的一个被教师用差异隐私的方式标记的点。
一般来说,这类输入可以被视为机制 M 定义的一部分,但在算法自适应的情况下,正式的隐私分析会要求它是输入的一部分。目前来说,这还是出于技术的原因:要分析总的隐私成本,我们需要机制定义不依赖于数据库。在我们论文的设置中,学生需要一个新的标记点,而这一点多取决于学生在之前的点上获得的标签。由于我们的时刻分析存在辅助输入,我们就能轻松应对这种适应性的问题。
>>关于学生模型 GAN 训练的问题
匿名用户:多谢你们提交了这样一篇有趣的论文。论文中,学生模型使用 Salimans 等人 2016 年论文中提出的半监督方法进行训练。如果我没有理解错的话,论文中教师集合(ensemble)用于监督学习,而不敏感信息用于无监督学习。所以,我的问题是“生成器在哪里?”教师网络的聚合被视为 GAN 框架里的生成器吗?
Ian Goodfellow:生成器网络是另外单独参数化的模型,创建后与学生网络同时接受训练。教师不能作为生成器,教师可以接收图像作为输入,输出的一个标签。生成器需要将噪音作为输入,生成一幅图像作为输出。
最佳论文三:Bengio 兄弟对决之重新理解深度学习的泛化
无需置疑,这可真是篇备受争议的最佳论文。
还是先来回顾内容。
摘要
尽管体积巨大,成功的深度人工神经网络在训练和测试性能之间可以展现出非常小的差异。过去一般将其归功于泛化误差小,无论是对模型谱系的特点还是对于训练中使用的正则技术来说。
通过广泛的系统的实验,我们展示了传统方法无法解释为什么大规模神经网络在实践中泛化表现好。 具体来说,我们的实验证明了用随机梯度方法训练的、用于图像分类的最先进的卷积网络很容易拟合训练数据的随机标记。这种现象本质上不受显式正则化影响,即使我们通过完全非结构化随机噪声来替换真实图像,也会发生这种现象。我们用一个理论结构证实了这些实验结果,表明只要参数的数量超过实践中通常的数据点的数量,简单两层深的神经网络就已经具有完美的有限样本表达性(finite sample expressivity)。我们通过与传统模型进行比较来解释我们的实验结果。
【一句话总结】通过深入系统的实验,我们指出传统方式无法解释为什么大规模神经网络在实践中泛化表现良好,同时指出我们为何需要重新思考泛化问题。
【ICLR 评委会最终决定】作者提供了深度神经网络拟合随机标注数据能力的迷人研究结果。调查深入,有启发性,鼓舞人心。作者提出了a)一个理论实例,显示具有大量参数和足够大的 wrt 样本的简单浅层网络产生了完美的有限样本表达性;b)系统广泛的实验评价,以支持研究结果和论点。实验评价的考虑非常周全。
>>最新评论:没用!
Xiang Zhang(2月23日):我很高兴一个实际谈论模型复杂性的论文可以被ICLR 2017接受。但是我想表达我个人的意见(与我的实验室,我的导师等无关),这篇论文有点被高估了。 称这篇论文具有“突破性”,在我看来有点可笑,它对理论社群是不公平的。我对作者或评审团没有什么意见,而只是针对论文中实验和理论的技术细节。
TL;DR:论文指出泛化对随机标签是个糟糕的问题。当然是这样,但这没有什么意思。
在2.2节第2段,对实践中 Radamacher 复杂性为1的说法有点太武断了。值得注意的一个细节(但这不意味着论文是错误的)是结论假定假设集合H中的所有函数在绝对值上限制于1。这只有在H被定义为误差函数的集合,或者H是设定的假设函数,但只用于二元分类问题时才是正确的。随机标记的实验似乎是用多级分类进行的。 在这种情况下,当H被定义为多级分类问题的误差函数的集合时,可以得出复杂度为1的结论,这是不确切的,尽管这结果对我来说似乎是正确的(我为我的武断道歉)。
然而,Rademacher的复杂性也可以用于约束损失(或能量在基于能量的模型框架中),这是我们的算法真正优化的目标。 有些论文就是这么使用Rademacher的复杂性。 优化多级分类问题将减少损失的上限和下限之间的差异,因此降低Rademacher复杂度的损失,但是在正确的标签情况和随机标签情况之间存在非常不同的方式。 因此,对随机标签的实验可能无法描述正确标签中Rademacher复杂性的损失。
注意前面的段落将Rademacher的复杂性与优化的动态联系起来,而不仅仅是假设集合。 这是因为在任何优化阶段(例如在SGD的步骤),算法可以随后探索的假设集合相对于算法拥有的当前假设是有限的。 有一个演变的上限,算法永远不会跳出,因为它需要“最小化”。 这个演化假设集合被称为“子水平假设集合”,这是为什么实际的Rademacher复杂性与优化过程一起演化,而不是如本文或来自社区的大多数理论论文那样假设是静止的 。 请注意,这一切适用于正确的标签或随机标签。
到目前为止,我认为深度学习的从业者可以安全地忽略文章中的可能含义,因为你的问题不是泛化的问题 - 这还没有被证明是真实的,因为论文没有把优化动态 与复杂性测量结合起来思考,也没能描述随机标签问题和正确标签问题之间的区别,所以结果没有任何意义。这些内容在之前的研究中是被讨论的,因此我认为“重新思考泛化”这一标题对于曾经写过这方面论文的人是有点不公平的。
下面是关于随机标签问题和正确标签问题之间区别的一点“武断”的说法。 有一个定理,我想提一下,以激励更多关于正确标签和随机标签之间的优化差异的讨论。 它是Talagrand的收缩法。 它可以用于将Rademacher复杂度R(F(G))与 L*R(G)绑定,其中 F(G) 是复合函数 h(g)的集合,其中h中的h和G中的g, 而L是H中函数的最可能的Liptchitz常数。
注意,“深度”学习模型基本上是函数组成。因此,Talagrand的辅助定理意味着你的深度学习模型的泛化界限的质量取决于函数组成是否具有小于1的Liptchitz常数(即“收缩”)。我希望有人可以进一步思考的猜想是,凭借正确的标签,在最终的优化阶段,你可以很容易地获得约定函数组成,但不带随机标签,因为前者假定分类有意义的空间存在某些平滑。
>>关于第 5 部分的一些讨论
匿名用户1:论文非常激动人心,但对于第5部分我有几个问题,希望你们能解答。
(1)你们指出,由SGD解决的线性模型的解决方案在于数据点的跨度,假定初始点为零。 但这不仅只适用于SGD, 许多其他一阶方法也是这样,不是吗? 本部分所有与SGD相关的分析都适用于许多其他一阶方法。所以这组实验几乎不能支持您的SGD作为隐式regularizer的观点 。
(2) 你们声称,SGD通常会收敛到最小范数的解,但我认为这主要是因为初始点设置为零。 如果任何局部最小化方法从零开始,则它将收敛到接近零(最小范数解)的局部最小值。 我同意SGD可能隐式正则化一个模型,但我认为显示在这组实验中的隐含正则化的效果可能/主要是因为选择零为初始点。
匿名用户2:我看不出第5部分与论文的其余部分有何关系。
你们说:“研究线性模型的简化案例,得到一些相关的见解,对我们更好地理解神经网络是有帮助的。” 但我在本节中没有看到任何相关的见解。
论点似乎是SGD做一些隐式正则化。
之前已经证明,SGD通过找到“更平坦”的最小值隐含地正则化。
你们似乎建议SGD也可能通过寻找一个最小 l2 范数解法隐式正则化,但之后你们的实验结果表明并非如此——
1. l2-正则化只给出了很小的改进;
2. 小波预处理提高了性能,但增加了l2范数
【编注】关于这篇“重新理解泛化”的文章,Open Review 网站上还有更多的讨论。实际上,这篇文章也可以算是近来“最受争议的最佳论文”——了解更多,请参见新智元此前的报道《神经网络为什么这么好用?深度学习 Bengio 兄弟对决!》
会议日程
ICLR 2017 将于 4 月 24 日星期一开始,到 26 号结束。每天分上午下午两场。每场形式基本一样,先是请来的人发表演讲(invited talk),然后是讨论,也是被选为能够进行口头发表(Oral)的论文、茶歇、海报展示(poster)。
ICLR 2017 似乎是在力推深度学习领域各界的新锐,从受邀讲者名单看,几乎可以感受到一缕春风。不仅如此,由于聚焦的是深度学习,会议关注的内容也更为有针对。
- 无监督、半监督和监督的表示学习
- 规划和强化学习的表示学习
- 度量学习和内核学习
- 稀疏编码和维度扩展
- 分层模型
- 表征学习的优化
- 学习输出或状态的表征
- 实施问题、并行化、软件平台和硬件
- 视觉、音频、语音、自然语言处理、机器人、神经科学或任何其他领域的应用
下面是具体的日程。
24 号
上午
下午
25 号
上午
下午
26号
上午
下午