Py学习  »  机器学习算法

线性Frequency Principle动力学:定量理解深度学习的一种有效模型

PaperWeekly • 4 年前 • 470 次点击  


关于作者:本文的作者是来自上海交通大学致远学院 08 级理科班的四位研究人员。本文由许志钦执笔,张耀宇修改,罗涛和马征审阅校正。这个小组的研究兴趣主要是深度学习理论。


深度学习的广泛成功吸引了大量的科研人员来探索其工作原理。时至今日,深度神经网络(DNN)的许多特性仍然令人费解,比如在模型参数远多于训练样本的情况下,DNN 通常能够较好地泛化。


为了找到分析这个问题的一种思路,我们将深度神经网络和热力学系统进行类比。在热力学系统里,粒子数通常都能达到这样的量级,因此我们几乎不可能通过对每个粒子的运动进行准确的牛顿力学刻画来理解整个系统的宏观性质。


类似地,对于深度学习,在很多实用的网络构架中,神经元数目很容易达到万的量级,参数数目成百万乃至上亿都很常见。因此,虽然我们可以追踪 DNN 每个参数的演化轨迹,但是仍然难以认识其背后的规律。


基于以上类比,我们可以自然地借鉴物理学的研究方法来理解深度学习。从物理的角度研究一个复杂的系统,我们通常从现象出发,通过构建一些定性乃至定量的有效模型来揭示系统演化的关键规律。


基于这样一种思路,这篇文章我们从深度学习中一种广泛存在现象——频率原则(Frequency Principle 或 F-Principle)即 DNN 倾向于按从低频到高频的顺序来拟合训练数据出发,将给出一种能够在一定情况下定量预测神经网络学习结果的有效模型。 




我们先用一个简单的例子来理解 F-Principle。用一个 DNN 去拟合下图中红色实线函数,训练完后,DNN(蓝色点)能很好地拟合该函数。


 

DNN 输出函数在频率空间的演化过程如下图动画所示,其中红色虚线为目标函数的FT(傅里叶变换),蓝色实线为 DNN 输出函数的 FT,每一帧表示一个训练步,横坐标为频率,纵坐标为振幅。容易发现,在训练过程中,DNN 输出函数在频域空间有一个清晰的演化规律,即其按频率从低到高依次收敛。



为了定量预测神经网络学习结果,基于 F-Principle,我们对一个单隐藏层的 ReLU(激活函数)神经网络:



注意:为了计算方便,我们对偏置项做了一点小改动。N:隐藏层神经元数目。


提出以下有效动力学模型:



h: DNN 输出;f: 目标函数;,其中为训练数据点;⋅ ̂: 傅里叶变换;ξ: 频率;N: 隐藏层神经元数目;d: 输入维度;r: 神经元的输出权重;w: 神经元的输入权重;w 与 r 取初始化的值。注意模型不出现 l。时间 t 趋于无穷时,该模型的显式解可以写出来。


记为 Linear F-Principle(LFP)模型。模型右端系数项随频率ξ增加而衰减,显式地表明低频优先即 F-Principle。整个动力学只依赖于参数的统计性质,如参数的方差,参数整体合成的网络输出等,可以很好地类比于热力学系统中密度、温度、体积、压强等统计量。 


下文中,我们首先用实验来验证这个模型的有效性。接着,我们说明模型的由来。最后,我们介绍模型衍生出的可能研究方向。

 

对于输入维度 d=1 的情况,我们先通过合适的初始化让项占主导。这种情况下,由于该项对比随频率增大衰减更快,即低频优先级更高,模型的解比较光滑。


下图可以看出,当隐藏层仅有五百个神经元的时候,经过训练,深度学习的输出(蓝色)整体也比较光滑,并且基本符合 LFP 模型预测。当神经元数达到 16000 时,LFP 模型的解与 DNN 学习到的拟合曲线几乎完全重合。


 

当我们通过特定的 DNN 参数初始化让模型中衰减较慢的项占主导时,模型解的光滑性会低一些。如下图所示,LFP 模型的解与 DNN 学习到的拟合曲线几乎完全重合。该曲线接近于一个分段线性函数,在最小值处有一个明显的尖角。



对于二维情形(d=2),我们用一个著名的 XOR 问题来检验 LFP 模型的有效性。训练数据集有四个样本点,由白色星号标记出来。训练结束后,DNN 输出函数构成了这四个点在二维区域 [-1,1]×[-1,1] 上的一个连续的插值函数(左图)。中图是 LFP 模型预测的插值函数,与左图非常相似。两者之间定量的比较如右图所示。容易看出,两者在所有测试点(1600 个均匀分布的网格点)上的值几乎一致。


 

上述数值实验证明,当神经元数目很大时,LFP 模型能够非常有效地刻画单隐藏层的神经网络的学习结果。 


LFP 模型是基于神经网络的一种线性化的平均场动力学得到的。其基本想法是在神经元数目趋于无穷时,DNN 可以用一个关于参数服从的概率分布的积分形式来表达(平均场表示)。


特别的,在该极限下,理论研究表明 DNN 的参数在其初始化的一个小邻域内便能找一个全局最优解。因此,DNN 输出函数在训练的任意时刻都可以用其在初始值附近的一阶 Taylor 展开来很好地近似。


这种情况下,我们发现刻画网络训练的梯度流在傅里叶空间可以近似为一个简洁的形式,即 LFP 模型。在近似的推导中我们假设l 满足均匀分布。实际实验中,l 服从其它分布的情况下,LFP 模型的预测与真实训练结果也很靠近。 


LFP 模型为神经网络的定量理解提供了全新的思路。首先,LFP 模型用一个简单的微分方程有效地刻画了神经网络这样一个参数极多的系统其训练过程的关键特征,并且能够精确地预测神经网络的学习结果。因此该模型从一个新的角度建立了微分方程和神经网络的关系。由于微分方程是一个非常成熟的研究领域,我们相信该领域的工具可以帮助我们进一步分析神经网络的训练行为。


其次,与统计物理类似,LFP 模型只与网络参数的一些宏观统计量有关,而与单个参数的具体行为无关。这种统计刻画可以帮助我们准确理解在参数极多的情况下 DNN 的学习过程,从而解释 DNN 在参数远多于训练样本数时较好的泛化能力。


在该工作中,我们通过一个等价的优化问题来分析该 LFP 动力学的演化结果,并且给出了网络泛化误差的一个先验估计。我们发现网络的泛化误差能够被目标函数f本身的一种 F-principle 范数(定义为,γ(ξ) 是一个随频率衰减的权重函数)所控制。


值得注意的是, 我们的误差估计针对神经网络本身的学习过程,并不需要在损失函数中添加额外的正则项。关于该误差估计我们将在之后的介绍文章中作进一步说明。

 

参考文献 


主要参考文献: 


Zhang, Y., Xu, Z.-Q. J.*, Luo, T. & Ma, Z. (2019a), ‘Explicitizing an Implicit Bias of the Frequency Principle in Two-layer Neural Networks’, arXiv:1905.10264 [cs, stat]. arXiv: 1905.10264. 

URL: http://arxiv.org/abs/1905.10264 

* Corresponding author: zhiqinxu@nyu.edu 


其它参考文献: 


Xu, Z.-Q. J., Zhang, Y., Luo, T., Xiao, Y. & Ma, Z. (2019), ‘Frequency principle: Fourier analysis sheds light on deep neural networks’, arXiv preprint arXiv:1901.06523. 


目前有十来个组跟进了相关的研究,具体可以参见:


“F-Principle in deep learning: an overview”. 

https://cims.nyu.edu/~xzhiqin/F-Principle_summary20190607.pdf

https://cims.nyu.edu/~xzhiqin




点击以下标题查看往期系列文章: 





#投 稿 通 道#

 让你的论文被更多人看到 



如何才能让更多的优质内容以更短路径到达读者群体,缩短读者寻找优质内容的成本呢?答案就是:你不认识的人。


总有一些你不认识的人,知道你想知道的东西。PaperWeekly 或许可以成为一座桥梁,促使不同背景、不同方向的学者和学术灵感相互碰撞,迸发出更多的可能性。


PaperWeekly 鼓励高校实验室或个人,在我们的平台上分享各类优质内容,可以是最新论文解读,也可以是学习心得技术干货。我们的目的只有一个,让知识真正流动起来。


📝 来稿标准:

• 稿件确系个人原创作品,来稿需注明作者个人信息(姓名+学校/工作单位+学历/职位+研究方向) 

• 如果文章并非首发,请在投稿时提醒并附上所有已发布链接 

• PaperWeekly 默认每篇文章都是首发,均会添加“原创”标志


📬 投稿邮箱:

• 投稿邮箱:hr@paperweekly.site 

• 所有文章配图,请单独在附件中发送 

• 请留下即时联系方式(微信或手机),以便我们在编辑发布时和作者沟通




🔍


现在,在「知乎」也能找到我们了

进入知乎首页搜索「PaperWeekly」

点击「关注」订阅我们的专栏吧



关于PaperWeekly


PaperWeekly 是一个推荐、解读、讨论、报道人工智能前沿论文成果的学术平台。如果你研究或从事 AI 领域,欢迎在公众号后台点击「交流群」,小助手将把你带入 PaperWeekly 的交流群里。


▽ 点击 | 阅读原文 | 获取最新论文推荐

Python社区是高质量的Python/Django开发社区
本文地址:http://www.python88.com/topic/34521
 
470 次点击