内容简介:本文转载自知乎专栏:远东轶事https://zhuanlan.zhihu.com/yuandong
本文转载自知乎专栏:远东轶事
https://zhuanlan.zhihu.com/yuandong
:satellite: 北京时间6月5日(本周三)中午12点,渊栋第三次来将门技术社群给Talk啦!届时将分享他刚刚投稿NeurlPS一些很有意思的工作,都是新鲜出炉的干货,千万不要错过呀!
详情>> 直播 | Facebook田渊栋最新工作: 多层ReLU网络的理论分析&学习行动集合以搜索网络架构
本篇文章是渊栋在知乎专栏的最新文章《求道之人,不问寒暑(三)》,Enjoy~
:bookmark_tabs: 本文涉及到的论文,建议对照阅读:
https://arxiv.org/abs/1905.13405
神经网络有很多异于传统机器学习系统(比如决策树和SVM)的奇特性质。比如说过参化(over-parameterization)时并不会产生过拟合,而只会让测试集上效果变好(泛化能力变好),如果用正好的参数去拟合数据,泛化能力反而变差;比如说它有隐式正则化(implicit regularization)的能力,即同样大小的模型,可以完全拟合正常数据,也可以完全拟合随机数据,并且在完全拟合正常数据时自动具有泛化能力。
这些现象在传统机器学习理论中不太能够得到解释,按照传统理论,用大小恰好的模型去拟合数据集是最优的,更小的模型,其复杂度不够从而无法拟合数据,更大的模型则会过拟合数据,降低其泛化能力,要使大模型有优秀的泛化能力,需要使用正则化方法。按照传统理论,如果一个模型大到能够拟合复杂度更高的随机数据,那它为什么不在正常数据上过拟合?如果一个模型能在正常数据上具有泛化能力,那它不应该能完全拟合随机数据——在神经网络上同时看到这两个现象,是非常奇怪的。
最近ICLR19的最优论文 “The Lottery Ticket Hypothesis”(网络权重的彩票现象) 又增加了传统理论难以解释的部分——对神经网络而言,使用同一架构的网络,从不同初始值开始优化,最终的泛化效果可以完全不同。 而权重初始值在传统的泛化理论中没有什么地位。因为 传统上“优化算法”和“泛化性能”这两件事情是完全分开的 。做泛化性能的文章往往假设背后的优化算法能拿到最优解,而不考虑优化的细节;而做优化算法的文章只关心在训练集上的权重到局部极小值的收敛速度,并不关心这个局部极小值在测试集上会有什么效果。如果模型空间有限或者模型的最优参数可以由凸优化得到,那这样做理所当然;但对深度学习这样的非凸问题而言,两者是密不可分的。
这次我们做的这篇文章( arxiv.org/abs/1905.1340 )试图提出一个统一的理论来解释这些现象,包括神经网络参数多时效果更好,有动态适应不同数据集的能力,还能解释从不同初始值出发,泛化能力完全不同的网络彩票现象。我们提出的这个理论对这些问题都有比较好的直观解释,并且还有一个统一的数学框架来支撑。
其根本的方案,是 将训练时的优化过程和泛化能力结合起来 ,从而去分析传统方法分析不了的情况。
首先我们采用了 教师-学生网络(student-teacher)的框架 ,假设数据集的标注由一个隐藏的(多层)教师网络(teacher network)生成,然后依据教师网络的输入输出,用梯度下降法去优化学生网络(student network)。学生和教师网络的层数相同,但因为over-parameterization,学生的每一层可以有比教师更多的输出结点(神经元)。在这个框架下,我们证明了在一些情况下的 权重复原定理 ,即学生网络的权重可以收敛于教师网络的对应权重,以及如何靠拢,并且分析了在over-parameterization的情况下学生网络可能的行为。由这些定理,可以给出一些神经网络奇特性质的解释。
对于结构化的数据,其对应生成数据的教师网络较小,过参化得到的学生网络中的结点会优先朝着教师网络的结点收敛过去,并且初始时和教师网络结点重合较大的学生结点(也即是“幸运神经元”,lucky weights/nodes)会收敛得更快,这样就会产生 “胜者全拿” 的效应,最后每个教师结点可能只有几个幸运学生结点对应。对于随机数据,其对应的教师网络比较大,学生结点会各自分散向不同的教师结点收敛。这就是为什么同样大小的模型可以同时拟合两者。并且因为胜者全拿的效应,学生倾向于用最少的结点去解释教师,从而对结构数据仍然具有泛化能力。
从这些解释出发,大家可能猜到了,“The Lottery Ticket Hypothesis”就是因为lucky nodes/weights的缘故:保留lucky nodes而去除其它不必要的结点,不会让泛化效果变差;但若是只保留lucky nodes,并且重新初始化它们的权重,那相当于中彩者重买彩票,再中彩的概率就很小了。而过参化的目的就是让更多的人去买彩票,这样总会有几个人中彩,最终神经网络的效果,就由它们来保证了——那自然过参化程度越好,最后泛化效果越好。
另外,对过参化的初步分析表明,一方面lucky student weights可以收敛到对应的teacher weights,而大部分无关的student weights/nodes可能会收敛到任意的区域去——但这并不要紧,因为这些结点的上层权重会收敛到零,以减少它们对网络输出的影响。这就附带解释了为何神经网络训练后的解往往具有 平坦极小值(Flat Minima)性质 :对无关的学生结点而言,任意改变它们的权重,对网络输出都没有太大影响。
具体细节是怎么做的呢?
虽然学生网络接收到的信号只来自于教师的最终输出层,对教师中间层如何输出毫无知觉,但因为教师的前向传递和学生的反向传递算法,教师中间层和对应的学生中间层,这两者其实是有隐含联系的。这篇文章首先找到了一个学生网络-教师网络的一个很有趣的对应关系,即 学生中间层收集到的梯度和对应教师层输出的关系 ,然后借着这个对应关系,就可以 找到学生网络的权重和教师网络的权重的对应关系 。在此之上,再加一些基本假设,就可以有 相应的权重复原定理 。
这篇文章的基本假设很简单,即教师同层两个神经元同时被激活的概率远远小于各自单独被激活的概率。这个假设相对来说是比较实际的:如果每个神经元只负责输入信号的某个特性,那这些特性同时出现的概率相比单独出现的概率要小很多。那么如何检查这个假设呢?很简单,按照这个假设,如果输入是零均值分布,假设激活函数是ReLU,那神经元的bias就应当是负的,这样它只对输入的一小部分数据有正响应。
事实似乎确实如此,我们在文章中检查了VGG11/16这两个在ImageNet上的预训练网络(都采用Conv-BN-ReLU架构)的BatchNorm层的bias,发现绝大部分都是负的,也就是说 在训练后网络里的那些神经元确实每个负责不一样的特性 。
与之前平均场(Mean Field)的一系列文章相比,这篇文章不需要假设权重满足独立同分布这个非常严格且只在初始化时才成立的条件,可以用于分析网络优化的整个过程,事实上,我一直觉得 多层神经网络的优化过程和平均场或者热力学的箭头是相反的 :热力学里系统从非平衡点到达平衡点的过程是抹消结构的过程,而神经网络的优化是从随机初始的权重中创造并且强化结构的过程。
这篇文章曾经打算投去年的ICML,原本的题目叫作“潘多拉的盒子”,也就是说,从随机涨落的权重中,依着不同的数据集,可以收敛出任意的结构出来,但因为OpenGo的项目一直拖,一直到一年半以后才有比较初步的结果。
另一个附带的结果是,从这篇文章的分析里可以比较清楚地看到 “上层调制” 这种机制的作用。很多人对多层神经网络的疑问是:既然多层神经网络号称是对输入特征进行不断组合以获得效果更好的高层特征,那为什么不可以采用自底向上的机制,每次单独训练一层,等训练完再建上一层?
依据这篇文章,回答是 如果没有上层的监督信号,那底层的特征组合数量会指数级增长,并且生成的特征大多是对上层任务无用的 。唯有优化时不停听取来自上层的信号,有针对性地进行组合,才可以以极高的效率获得特定任务的重要特征。而对权重的随机初始化,是赋予它们在优化时滑向任意组合的能力。
——(番外篇)——
这篇文章可以说是我自己五年来做“多层神经网络的理论分析”这个方向的一个初步令人满意的结果。我还记得那个BatchNorm的bias为负的实验还有BatchNorm的分析都是四年前做的,当我意识到新的假设和老的实验结果大有关系,并且找到四年前还是用lua-torch写的代码的时候,心情是复杂而激动的。当时看似徒劳的努力,会在几年之后被证明有价值。
研究的乐趣,莫若如是。
在发现这个学生-教师多层网络对应关系之前,这篇文章的前身在投稿ICLR之后被毫不留情地拒掉,之后的一段时间里我都找不到下一步应走的方向,是沿着前一篇文章数学上已经很复杂的方式继续做下去,还是从一些直觉和现象重新开始第一百零一次的建模,继续思考?
自从我开始接触深度学习开始,自己就想要做一些工作,去真正理解它究竟是如何工作的,到底比传统模型好在哪里。对看重实际效果的人们而言,这似乎毫无意义,但我知道,这些重要的问题,总有一天要回答清楚, 那时候深度学习才不是潮起潮落中的一朵浪花,而确实成为人工智能的中流砥柱 。
在过去的几年里,我不止一次地以为不会再有《求道之人,不问寒暑》系列了。做理论,尤其是做要和实验现象贴合的深度学习理论,实在是一个吃力不讨好的事情。或许退一步调调参数,做做系统,想出些新算法已经足够。可是人嘛,毕竟还是想尝试一些本觉得不太可能做出来的事情,于是就有了这个系列,于是有了在日常工作之外的,永远看不到尽头的长跑。
希望有一天,可以跑出深度学习理论的曙光来。
-The End-
将门 是一家 以专注于 发掘、加速及投资技术驱动型创业公司 的新型 创投机构 ,旗下涵盖 将门创新服务、将门技术社群以及将门创投基金。将门成立于2015年底,创始团队由微软创投在中国的创始团队原班人马构建而成,曾为微软优选和深度孵化了126家创新的技术型创业公司。
将门创新服务 专注于使创新的技术落地于真正的应用场景,激活和实现全新的商业价值,服务于行业领先企业和技术创新型创业公司。
将门技术社群 专注于帮助技术创新型的创业公司提供来自产、学、研、创领域的核心技术专家的技术分享和学习内容,使创新成为持续的核心竞争力。
将门创投基金 专注于投资通过技术创新激活商业场景,实现商业价值的初创企业,关注技术领域包括 机器智能、物联网、自然人机交互、企业计算。 在三年的时间里,将门创投基金已经投资了包括量化派、码隆科技、禾赛科技、 宽拓科技、 杉数科技、迪英加科技等数十家具有高成长潜力的技术型创业公司。
如果您是技术领域的初创企业,不仅想获得投资,还希望获得一系列持续性、有价值的投后服务, 欢迎发送或者推荐项目给我“门”: bp@thejiangmen.com
点击右上角,把文章分享到朋友圈
将门创投
让创新获得认可!
微信:thejiangmen
bp@thejiangmen.com
点击“ ❀在看 ”,让更多朋友们看到吧~
以上所述就是小编给大家介绍的《深度好文 | Facebook田渊栋:求道之人,不问寒暑》,希望对大家有所帮助,如果大家有任何疑问请给我留言,小编会及时回复大家的。在此也非常感谢大家对 码农网 的支持!
猜你喜欢:本站部分资源来源于网络,本站转载出于传递更多信息之目的,版权归原作者或者来源机构所有,如转载稿涉及版权问题,请联系我们。
Go程序设计语言
艾伦 A. A. 多诺万 / 李道兵、高博、庞向才、金鑫鑫、林齐斌 / 机械工业出版社 / 2017-5 / 79
本书由《C程序设计语言》的作者Kernighan和谷歌公司Go团队主管Alan Donovan联袂撰写,是学习Go语言程序设计的指南。本书共13章,主要内容包括:Go的基础知识、基本结构、基本数据类型、复合数据类型、函数、方法、接口、goroutine、通道、共享变量的并发性、包、go工具、测试、反射等。 本书适合作为计算机相关专业的教材,也可供Go语言爱好者阅读。一起来看看 《Go程序设计语言》 这本书的介绍吧!