©PaperWeekly 原创 · 作者|周瀚旭、许志钦

单位|上海交通大学

研究方向|深度学习理论

深度加速训练的效应

近些年来,随着深度学习的发展,其已经在图像、语音、自然语言处理等各个不同的领域展现出了优异的性能。在运用中,人们发现,更深层的神经网络往往比隐藏层较少的神经网络训练得快,也有更好的泛化性能。虽然,随着神经网络的加深,可能会出现梯度消失的问题,但是通过例如 Resnet 残差的手段,不仅能解决梯度消失的问题,还能够提升网络的训练速度与泛化性能。

比如何恺明在《Deep Residual Learning for Image Recognition》的实验,由于加入了残差块,34 层的卷积神经网络的泛化性和训练速度都比 18 层的卷积神经网络要好。

泛化的问题往往还与数据集本身有密切的关系。因此,我们首先关注为什么加深网络可以加快训练。为避免歧义,我们定义训练快慢是通过看网络达到一个固定误差所需要的训练步数。尽管更深的网络每步需要的计算量更大,但这里我们先忽略这个因素。

为了研究这个问题,首先我们用一个简单的实验来重现这个现象。下图是用不同层数但每层大小一致的 DNN 学习目标函数 cos(3x)+cos(5x),训练到一个固定精度所需要的步数图。我们发现,越深层的神经网络,需要越少的步数,就能够完成任务。

即使是对于这么简单的任务,几乎没有文章能够通过数学理论来解释这样的问题;尽管有一些工作开始分析深度线性网络,但仍然几乎没有文章能够从一个比较清晰的视角,通过实验或理论,来解释这样一个非线性神经网络的现象。

因此,即使提供一个可能的理解视角,也是十分必要的。我们工作提出了一个深度频率原则来解释深度带来的加速效应。在这之前,我们首先来看一下什么叫频率原则。

频率原则(Frequency Principle)

频率原则可以用一句话概括:深度学习倾向于优先拟合目标函数的低频部分。

我们先用一个简单的例子来理解 F-Principle。用一个深度神经网络(DNN)去拟合如下的红色实线函数。训练完成后,函数能被深度网络(蓝色点)很好地拟合。

我们想要从频域的角度,观察 DNN 的训练过程。如下图动画所示,红色为目标函数的 FT(傅里叶变换),蓝色为网络输出的FT,每一帧表示一个训练步,横坐标是频率,纵坐标是振幅。我们发现,随着训练的进行,DNN 表示的函数在频域空间显现出了清晰的规律,即频率从低到高依次收敛。

频率原则虽然简单,但它为理解深度学习的泛化以及设计高效的神经网络结构提供了非常重要的基础,并且现在已经有一系列理论为频率原则提供了支撑。

深度频率原则

接下来,我们将从频率视角来看深度的影响。对于隐藏层 hi,它的输入是它前一层的输出。在神经网络优化过程中,梯度是反向传播的,也就是说,当我们在更新隐藏层 hi 的参数时,误差的信号是从真实标签和神经网络输出的差异开始向前传播的。

因此,对于子网络(从隐藏层 hi 到输出层),它的等效目标函数是由隐藏层 hi 的前一层的输出和真实的标签构成。基于此,我们在分析阶段将整个多层的神经网络分成两个部分,pre-condition component 和 learning component,并将着重分析 learning component 的等效目标函数在不同条件下的表现。注意,训练时,我们仍然像往常一样,训练所有的参数。

假设两个不同的神经网络有相同的 learning component,即它们的最后若干层是相同的。若其中一个 learning component 的等效目标函数更加低频,那这个神经网络的 learning component会学得更快。

显然,learning component 学得更快,自然整个网络也就学得更快。特别地,当 learning component 学好的时候,整个神经网络也就学好了。因此,这给了我们充分的理由相信,通过研究 learning component 的性质,从这个角度出发,能够对多层神经网络的本质窥探一二。

现在我们需要做的就是找到一个可以刻画高维函数频率分布的量,再利用 F-principle 低频先收敛的特性,我们就可以研究深度带来的效应了。因此,我们定义了 Ratio Density Function (RDF)。

本质上,我们首先通过在傅立叶空间画半径为 r 的球,定义目标函数在 r 球内的能量(L2 积分)占整个函数的能量比(通过高斯滤波获得),即低频能量比(Low frequency ratio,LFR)。这类似于概率的累积分布函数。下左图,就是以 k₀ 为半径,函数的 低频部分与高频部分。

然后我们对 LFR 在 r 方向上求导数得到 RDF,这可以解释为函数在每个频率上的能量密度。下右图即是,sin(kπx)的 RDF,1/δ 就是半径 r,并对峰值做了归一化。不难看出,高频函数的峰值在 r 较大的位置,低频函数的峰值在 r 较小的位置。因此,RDF 适合用来刻画高维函数的频率分布。

最后,我们需要研究 learning component 的等效目标函数的 RDF。如果 learning component 的等效目标函数的 RDF 趋近于低频,那么通过 F-principle,我们就知道其收敛得会比较快;相反,若其趋近于高频,则其收敛得就会比较慢。

实验上,我们先做了关于 Resnet18 的实验,保持全连接层不变,改变 Resnet 卷积模块的个数,定义最后三层为 learning component。

整个训练和往常一样,训练所有的参数。在下图中,-1、-2、-3、-4 的残差块依次减少,不难发现,拥有更多残差块的网络不仅收敛速度更快,同时泛化性能也更好。

观察其 learning component 的等效目标函数的 RDF,我们发现,拥有更多隐藏层(也就是网络更深)的神经网络其 learning component 相比浅网络会更趋于低频,并最后保持在更加低频处。我们得到了 Deep Frequency Principle——更深层神经网络的有效目标函数在训练的过程中会更趋近于低频。

再基于 F-principle——低频先收敛,我们就能够得到更深层的神经网络收敛得更快的结果。尽管频率是一个相对可以定量和容易分析的量,但当前实验跨越了多个不同结构的网络,也会给未来理论分析造成困难。因此,我们后面研究单个神经网络中的 Deep Frequency Principle。

于是,我们探究同一个深度神经网络内不同隐藏层的等效目标函数的 RDF,即改变 pre-condition 和 learning component 的层数(但保持网络的结构和总层数不变)。这个实验是在 MNIST 上的,深度神经网络(DNN),并取了 5 个相同大小的隐藏层。

在下图中,我们发现,虽然初始时神经网络更深层的等效目标函数的 RDF 聚集于较高频处,但随着训练,更深层的 RDF 会快速地趋于更低频的地方,并保持在低频处。这也是 Deep Frequency Principle——更深层的神经网络的有效目标函数会在训练的过程中会更趋近于低频。

在该工作中,基于傅里叶分析以及对 F-principle 的理解,我们给出了一个新的角度来处理和看待多层、深层的前馈神经网络,即通过分成 pre-condition component 和 learning component 两个部分,研究 learning component 的等效目标函数的 RDF,得到 Deep frequency principle,并最终提供了一种可能的角度来解释为何多层的网络能够训练得更快!相信这个工作会为未来的理论分析提供重要的实验基础。

关于作者:

周瀚旭,许志钦 上海交通大学

联系:xuzhiqin@sjtu.edu.cn

https://ins.sjtu.edu.cn/people/xuzhiqin/

参考文献

[1] Deep frequency principle towards understanding why deeper learning is faster.  Zhi-Qin John Xu and Hanxu Zhou, arXiv: 2007.14313. (to apear in AAAI-2021)

[2] Zhi-Qin John Xu; Yaoyu Zhang; Tao Luo; Yanyang Xiao, Zheng Ma , ‘Frequency principle: Fourier analysis sheds light on deep neural networks’, arXiv:1901.06523. (2020, CiCP)

[3] Zhi-Qin John Xu; Yaoyu Zhang; Yanyang Xiao, Training behavior of deep neural network in frequency domain, arXiv preprint arXiv: 1807.01251. International Conference on Neural Information Processing.

更多阅读

#投 稿 通 道#

 让你的论文被更多人看到 

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

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

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

???? 来稿标准:

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

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

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

???? 投稿邮箱:

• 投稿邮箱:hr@paperweekly.site

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

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

????

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

进入知乎首页搜索「PaperWeekly」

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

关于PaperWeekly

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

从频率角度理解为什么深度可以加速神经网络的训练相关推荐

  1. BERT论文翻译:用于语言理解的深度双向Transformer的预训练

    Jacob Devlin Ming-Wei Chang Kenton Lee kristina Toutanova Google AI Language {jacobdevlin, mingweich ...

  2. 深度学习和神经网络的介绍

    一.深度学习的介绍 目标 知道什么是深度学习 知道深度学习和机器学习的区别 能够说出深度学习的主要应用场景 知道深度学习的常见框架 1. 深度学习的概念 深度学习(英语:deep learning)是 ...

  3. [Python人工智能] 七.加速神经网络、激励函数和过拟合

    从本系列文章开始,作者正式开始研究Python深度学习.神经网络及人工智能相关知识.前六篇文章讲解了神经网络基础概念.Theano库的安装过程及基础用法.theano实现回归神经网络.theano实现 ...

  4. 用GPU加速神经网络训练

    前言 本文记录了做毕设过程中,为了加速神经网络的训练,如何让tf能识别到GPU并加速,加速前resnet架构一个epoch需要跑40分钟,使用mx150(一个laptop的极普通显卡,cuda核心仅有 ...

  5. 从零点五开始的深度学习笔记——VAE(Variational AutoEncoder) (二)概率角度理解VAE结构

    概率角度理解VAE结构 1. 从联合概率分布构造的损失函数开始的一切 1.1 定义 1.2 推导过程 1.3 损失函数的理解 2. 总结 1. 从联合概率分布构造的损失函数开始的一切 一个优秀的生成网 ...

  6. 英特尔推深度学习加速工具包OpenVINO,布局边缘计算,发力物联网业务

    上周五(7 月 27 日),英特尔面向中国市场推出了专注于加速深度学习的 OpenVINO 工具包,可以帮助企业在边缘侧快速实现高性能计算机视觉与深度学习的开发. OpenVINO (Open Vis ...

  7. 谷歌Deep Bootstrap Framework:在线优化角度理解神经网络

    The Deep Bootstrap Framework: Good Online Learners are Good Offline Generalizers(ICLR21) 一元@炼丹笔记 理解深 ...

  8. 人工智能:通俗易懂理解深度学习与神经网络

    前言 初入学习人工智能领域,为方便对该领域有一个快速清晰的认识,因此收集了相关资料并整理了各位前辈们在此领域的研究现状.由浅入深.循序渐进理解什么是深度学习和神经网络,二者的联系和区别是什么,以及什么 ...

  9. 中科大刘淇:从自适应学习的角度理解AI+教育

    不到现场,照样看最干货的学术报告! 嗨,大家好.这里是学术报告专栏,读芯术小编不定期挑选并亲自跑会,为大家奉献科技领域最优秀的学术报告,为同学们记录报告干货,并想方设法搞到一手的PPT和现场视频--足 ...

最新文章

  1. HDU2112(Flody算法和Dijstra算法)
  2. [ERROR] ubuntu18.04 install ceres
  3. Android进阶笔记07:Android之MVC 理解
  4. 10道Python面试常见的问题
  5. Android应用程序键盘(Keyboard)消息处理机制分析(12)
  6. Spring WebSocket初探2 (Spring WebSocket入门教程)
  7. .NET Core WEB API中接口参数的模型绑定的理解
  8. 【音视频安卓开发 (七)】安卓视频播放窗口去掉标题栏、全屏、横屏
  9. php缓存类,PHP缓存类
  10. Lync与Exchange 2013 UM集成:Lync Server配置
  11. winform B窗體調用A窗體的DATAGRIDVIEW刷新
  12. linux centos7杀进程,centos7 nginx 启动/进程状态/杀掉进程
  13. php 外贸,php 外贸
  14. 【分享】具有“魔性”的通用软件开发框架
  15. Selenium2(WebDriver)总结(一)---启动浏览器、设置profile加载插件
  16. python怎么配置pip_python如何配置pip
  17. excel模板 基金账本_有哪些好用的Excel个人账单模板?
  18. 自然语言处理(NLP)常用算法入门笔记
  19. 【C语言】贪吃蛇小游戏代码详解
  20. 微信们开放外链,互联网“圈地”成历史?

热门文章

  1. java multivaluemap_java – 使用自定义值集合类型创建Commons Collections MultiValueMap
  2. 交大c语言作业答案,西安交大c语言作业及答案详解.docx
  3. 一阶微分方程的物理意义_MIT—微分方程笔记24 一阶常微分方程组
  4. 可信计算 沈昌祥_沈昌祥:用可信计算筑牢网络安全
  5. php 打印变量内存地址_Python合集之Python变量
  6. [luogu 2324][SCOI 2005] 骑士精神 (A*算法)
  7. MessagePack 学习笔记
  8. RecyclerView因版本问题无法加载
  9. 《大话操作系统——做坚实的project实践派》(6)
  10. (转)__declspec(dllimport)和__declspec(dllexport)的区别,以及有关c/c++调用约定