安妮漂亮的鸭子来自凹非寺
量子出品|公众号QbitAI
如何评价神经网络的泛化能力?
比利时天主教鲁汶大学的研究发表在了ICML 2019深入学习现象的识别和理解Workshop上。
研究表明,网络的泛化能力可以通过“层的旋转”来评价。
层旋转是神经网络中各层权重矢量与初始化之间夹角余弦的变化,可以看作是衡量泛化性能强弱的指标。
研究人员在培训中发布了控制层旋转工具的代码,称这项工作“可以大大降低当前调整超级参数的难度”。
也就是说,可以通过最小限度的超级参数调整,得到最佳的神经网络性能。
在Reddit论坛上,有人指出这是“超有趣的实证结果”,也有人说这项研究启发了许多新的思考。
层旋转有什么用
论文layer rotation 3360 Asurprisinglypowerfulindicatorofgeneralizationindeepnetworks?研究详细说明了层旋转背后的探索之路。
由于神经网络的泛化能力受训练它的优化程序的影响,决定该程序的哪些要素影响泛化是一个重要的问题。
在这篇论文中,研究者提出了一种新的算法: lay ca ((layer-level control ledamount of weight rotation ),神经网络的优化算法将各层网络的学习速度参数
也就是说,可以使用Layca算法通过其学习速率参数控制各层网络中各步的权重旋转。
Layca算法的工作流程如下所示。
研究人员表示,这种新算法在获得比较明显的控制效果的同时,泛化能力也产生较大差异,精度差异可达30%。
随后,他们利用Layca进一步研究了层的旋转体系结构,并开发了监测和控制层旋转的工具。
研究人员采用SGD (随机梯度下降)作为缺省优化器,用Layca改变相对转速和全局转速的值,分别对5种网络体系结构和数据复杂性不同的神经网络进行了研究。 那些如下所示。
他们绘出了不同层转速下层的旋转曲线(CFR )和对应的测试精度))的关系。
在下图中,横轴表示迭代次数,纵轴表示中心角的余弦,曲线从浅到深表示网络的最后一层和第一层,最终结果如下:
可见各层的层旋转越大,神经网络的泛化能力越高。
据此,可以认为层旋转这个指标可以直接用于判断网络的泛化能力。
层旋转的影响
之后,除了Layca之外,研究者们还用SGD进行了同样的实验。 根据实验结果,得出了几个结论:
对SGD的学习率
学习率参数直接影响层的旋转速度,进而影响更新的大小。
在以下5个任务中,SGD训练期间不同学习率对层旋转曲线影响的实验结果图显示,测试精度随层旋转而增加,到临界点后开始减少。
权重衰减
权重衰减的范数会增加给定训练步骤的旋转量,从以下实验结果图中可以看出,所有层的权重在初始化时达到1的余弦距离,可以得到与使用Layca得到的性能相同的测试性能。
关于学习率的预热
学习率高会产生突然的层次旋转,不会影响训练损失。
关于学习率预热,研究人员使用ResNet-110进行了实验,并在CIFAR-10数据集上进行了训练。 中选取其他天花板类型
预热策略是以小10倍的学习速率开始,线性增加逐渐达到指定的最终学习率。
结果如下图:
SGD产生不稳定的层旋转,始终转化为无法提高训练精度。使用预热可以大大减少这些不稳定性,在Epoch超过25之前,训练京都没有显著提高。
而Layca表现更优。归功于Layca的控制能力,它稳定性较高,并且在不需要预热的情况下达到高泛化性能。
对于自适应梯度法
研究者们基于ICLR 2015论文《A method for stochastic optimization》中的算法,在C10-CNN1任务上做了实验。
根据第10,第50和第90百分位每个层的状况可以看出,自适应梯度方法可能对层旋转产生巨大影响,自适应梯度方法使用的参数级统计数据主要在层之间变化,而在层内可忽略不计。
另外,对比自适应梯度法在训练前面的5个任务和自适应梯度法层旋转与SGD诱导层旋转的结果,可以发现,自适应梯度法能够让Layca达到SGD的泛化能力。
根据自适应梯度法、SGD+权重衰减和SGD+L2正则化在5个训练任务上的表现得出,SGD可以通过Layca实现自适应梯度法的训练速度。
对于中间层特征
那么,基于这些层旋转和各属性之间的联系,如何去具体的解释层旋转呢?
研究者们做了另一个实验,在一个简化的MNIST数据集上训练多层感知机(MLP),从相同的初始化状态开始,我们用Layca训练四种学习率不同的网络,让四种不同的层旋转配置均达到100%的训练准确度,同时拥有不同的泛化能力。
将图旋转对中间层特征的影响画出来就会发现:
层旋转不会影响学习哪些特征,而是影响在训练过程中学习的程度。层旋转越大,特征越突出,初始化可检索的越少,而当层旋转接近1的时候,网络的最终权重消除了初始化的所有残余。
层旋转与特征学习程度之间的这种联系表明:完全学习中间层特征对于达到100%的训练准确性是不必要的,但训练过程如果完全学习了中间层特征,可以产生更好的泛化性能。
传送门
Layer rotation: a surprisingly powerful indicator of generalization in deep networks?
https://arxiv.org/abs/1806.01603v2
代码:
https://github.com/ispgroupucl/layer-rotation-paper-experiments
层旋转工具:
https://github.com/ispgroupucl/layer-rotation-tools
— 完 —
诚挚招聘
量子位正在招募编辑/记者,工作地点在北京中关村。期待有才气、有热情的同学加入我们!相关细节,请在量子位公众号(QbitAI)对话界面,回复“招聘”两个字。
量子位 QbitAI · 头条号签约作者
վ’ᴗ’ ի 追踪AI技术和产品新动态