作者丨许志钦、张耀宇

学校丨纽约大学阿布扎比分校博士后、纽约大学库朗研究所访问学者

研究方向丨计算神经科学、深度学习理论

在上一篇文章F-Principle:初探理解深度学习不能做什么中,我们介绍了如何用一个统一的框架来初步理解深度学习的优势与局限。在这篇文章中,我们将探索如何利用我们对深度学习已有的理解来设计算法。我们期待这些初步的探索能对解决真实问题起到引导作用。

首先,我们回顾一下这个框架。我们的发现可以用一句话概括:深度学习倾向于优先使用低频来拟合目标函数。我们将这个机制称为 F-Principle(频率原则)。

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

我们感兴趣的是 DNN 的训练过程。如下图动画所示,红色为目标函数的 FT(傅里叶变换),蓝色为网络输出的 FT,每一帧表示一个训练步,横坐标是频率,纵坐标是振幅。

我们发现,在训练过程中,DNN 表示的函数的演化在频域空间有一个清晰的规律,即频率从低到高依次收敛。

部分读者觉得 F-Principle 非常直观,甚至非常显然(trivial)。部分原因可能是因为 F-Principle 并不是一个陌生的概念,而是我们日常生活中经常都在用的一个原则。想象一下,如果让一个人去记住一个没见过的东西,一般比较粗糙的轮廓信息会先被记住,然后再是很多细节。

没错,DNN 也正是使用了这样的一个学习过程。举一个例子,我们来训练一个 DNN 来记住一张图片。DNN 的输入是一个位置坐标 (x,y),我们希望它输出这个位置对应的灰度值。

下图的一系列图展示了不同训练步数,DNN 学习到的图像,正如我们前面所猜测的从粗糙的轮廓到细节的学习过程。

然而!更多的人非常惊讶于 DNN 有这样简单的规则。特别地,在计算数学中,很多迭代格式都是先收敛高频,例如 Jacobi 方法和 Gauss–Seidel 方法。由于低频往往是比较重要的,因此高频优先的原则造成了很多苦恼。于是许多研究者手动设计很多算法来提升收敛低频的速度,比如多重网格法。

对于大部分 DNN,它并不需要任何显示的条件或者手动设计,它自然有低频优先的原则。举个例子,考虑如下 Poisson 方程:

其中,。它的真实解如下图曲线所示:

 黑色为Poisson方程的真解,插图里红色为真解的傅里叶变换

真解中有三个比较显著的频率峰值。如果我们用 Jacobi 迭代去解这个方程,如下图,高频先收敛。


 Jacobi迭代:三个重要频率点处的相对误差与训练步数的关系,红色表示相对误差小,高频先收敛

如果我们用 DNN 来解这个方程,我们会得到完全不一样的结果。DNN 的输入为 x,我们用 DNN 的输出去逼近真解 u(x)。损失函数采用 Poisson 方程的能量泛函。具体解的过程可以参见论文。如下图所示,F-Principle 非常明显,既低频比高频收敛得快很多。

 宽度为1-4000-500-400-1的DNN:三个重要频率点处的相对误差与训练步数的关系,红色表示相对误差小,低频先收敛

一个自然的想法是,为了更快地解 Poisson 方程,我们可以先用 DNN 解出低频部分。等低频收敛好以后,将 DNN 的输出作为 Jacobi 迭代的初值来继续解 Poisson 方程。

在下图中,我们展示了结合两种方法的效果。下图展示的是数值解和真实解之差的最大绝对值随计算机运行时间的变化。

 结合DNN与Jacobi来解Poisson方程。横坐标:计算机运行时间。纵坐标:数值解和真实解之差的最大绝对值。绿色星号:DNN的结果。虚线:Jacobi方法继续运算的结果,不同虚线表示选择不同DNN训练时刻的输出作为初值

如果单纯使用 DNN,绿色星号表明在一段时间后,DNN 的输出振荡很厉害。三条虚线的结果是在不同时刻使用 Jacobi 继续运算的结果。最左边的蓝色虚线选择的时刻过早,导致 Jacobi 方法需要花大时时间来收敛低频,因此误差下降很慢。最右边的绿色虚线选择的时刻过晚,导致大量时间花在 DNN 收敛高频上。中间的橙色虚线刚好利用了 DNN 收敛好的低频,并且马上使用 Jacobi 方法快速收敛高频,所以误差在短时间内能下降最快。

在偏微分方程的数值问题中,有很多问题对于传统算法是很困难的。很多研究工作已经开始探索如何使用 DNN 来解这些问题。

这个例子只是一个非常简单地情况,对于用 F-Principle 的理解来帮助 DNN 应用在更复杂、更高维的问题中,仍然有非常多值得探讨的问题。这个例子展示了在理解 DNN 的基础上去使用 DNN,我们可以既利用 DNN 的强项,又能避免 DNN 的弱点。

参考文献

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

点击以下标题查看更多往期内容:

#投 稿 通 道#

让你的论文被更多人看到

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

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

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

来稿标准:

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

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

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

? 投稿邮箱:

• 投稿邮箱:hr@paperweekly.site

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

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

?

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

进入知乎首页搜索「PaperWeekly」

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

关于PaperWeekly

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

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

F-Principle:初探深度学习在计算数学的应用相关推荐

  1. 【mindspore】初探深度学习

    [小小baby]初探深度学习 初探深度学习 AI框架的选择 深度学习的流程 环境配置 代码开发 机器情感 初探深度学习 终于还是转行进入深度学习了.我一直有个梦想,希望面前机器能像人一样拥有情感,有自 ...

  2. 从alexnet到resnet,初探深度学习算法玩摄影

    编辑:叶琰 简介 今天说的是初探,那就是说,目的是为了让大家先有一个比较直观的感受,主要集中在有监督算法上. 总体来说,就是指在底层特征的提取上,利用了从Alexnet开始,到最新的模型的方法,来替换 ...

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

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

  4. 深度干货!如何将深度学习训练性能提升数倍?

    作者 | 车漾,阿里云高级技术专家 顾荣,南京大学副研究员 责编 | 唐小引 头图 | CSDN 下载自东方 IC 出品 | CSDN(ID:CSDNnews) 近些年,以深度学习为代表的人工智能技术 ...

  5. 深度学习领域有哪些瓶颈

    来源:知乎问题 深度学习是近年来人工智能热潮的原因,它的出现在很多方面都作出了突破,包括在图像.NLP以及语音等领域都有很多问题取得很大的突破,但它目前也存在一些问题和瓶颈需要解决. 量子位 http ...

  6. 深度学习基础知识整理

    版权声明:本文为博主原创文章,未经博主允许不得转载. https://blog.csdn.net/kwame211/article/details/81165381 本文是在七月的BAT机器学习面试1 ...

  7. 《PyTorch深度学习实践》完结合集--B站刘二大人学习总结

    本篇主要是各类模型的基本介绍及应用,不涉及深层技术. 学习视频指路→B站指路 代码实践指路→代码指路 课件获取:通过百度网盘分享的文件:PyTorch深- 链接:https://pan.baidu.c ...

  8. 深度学习——fastai第四课 04_minist_basics

    文章目录 幕后:训练一个数字分类器 像素:计算机视觉的基础 边栏:韧性和深度学习 初尝试:像素相似 NumPy 数组和PyTorch 张量 使用广播计算评价指标 随机梯度下降(SGD) 计算梯度 通过 ...

  9. 深度学习 – Deep learning | DL

    1.初探深度学习 1.1.定义 深度学习的概念源于人工神经网络的研究.含多隐层的多层感知器就是一种深度学习结构.深度学习通过组合低层特征形成更加抽象的高层表示属性类别或特征,以发现数据的分布式特征表示 ...

最新文章

  1. JUnit基础及第一个单元测试实例(JUnit3.8)
  2. A Java Runtime Environment (JRE) or Java Development Kit (JDK)
  3. (转)函数指针,指针函数,指向函数的指针,返回指针的函数
  4. 20个 css3 html5 设计工具
  5. Jetty在win10上的配置,IDEA中配置Jetty,Maven中配置Jetty插件,Eclipse中配置Jetty插件及其使用,通过java代码内嵌Jetty Server
  6. 前端学习(1960)vue之电商管理系统电商系统之分类参数的基本结构
  7. 【转】Azure Messaging-ServiceBus Messaging消息队列技术系列2-编程SDK入门
  8. 格密码教程(五):Babai‘s algorithm和求解apprCVP算法
  9. 必须先说明组件oracle,Oracle Enterprise Manager 组件 说明 .
  10. python中wx_python中wx模块的具体使用方法
  11. [NLP论文阅读]A SIMPLE BUT TOUGH-TO-BEAT BASELINE FOR SENTENCE EMBEDDINGS
  12. 经典字符串匹配算法——KMP算法
  13. 海康(hikvision)录像机添加萤石(ezviz)摄像机常见问题(转)
  14. eplan mysql_EPLAN 部署SQL部件库安装详解
  15. 学习uc/os-ii
  16. MOSES的高级特征和功能
  17. 杯中悬佳酿,唇齿香气浓
  18. bilibili缓存文件在哪里_64G手机总提示空间不足?清理这4个文件夹,内存立马空出十几G...
  19. html语言中kbd的含义,HTML kbd键盘元素
  20. 输入小写字母转换acii和对应大写

热门文章

  1. Android切换到主线程
  2. 软件设计模式六大原则之四接口隔离原则(PHP语言实现)
  3. in_array foreach array_search的性能比较
  4. --------------springMVC的开篇,以及底层执行流程,配置视图解析器,静态资源的访问,流程图,工作原理...
  5. HTTP简介,http是一个属于应用层的面向对象的协议
  6. Hadoop安装过程
  7. BZOJ3577 : 玩手机
  8. 源代码管理-SVN自动更新
  9. 如何选择String
  10. matlab中删除照片_如何使用matlab从图像中删除划痕