如何从频域的角度解释CNN(卷积神经网络)?

2020 年 10 月 9 日 极市平台
↑ 点击 蓝字  关注极市平台

本文授权自知乎问答,转载需获得原作者授权。
编辑丨极市平台

极市导读

 

如何从频域的角度思考、解释卷积神经网络?本文整理了知乎相关问题下的两则优质回答,希望能给大家带来启发。>>加入极市CV技术交流群,走在计算机视觉的最前沿




观点一

作者丨若羽


我觉得这个对我启发最大的是上海交大许志钦的工作。

https://ins.sjtu.edu.cn/people/xuzhiqin/fprinciple/index.html

他的B站演讲:

https://www.bilibili.com/video/av94808183?p=2

另外,我大概线下听过他两次演讲,几乎都是关于神经网络与傅立叶变换、傅里叶分析方面的工作。

Training behavior of deep neural network in frequency domain
https://arxiv.org/pdf/1807.01251.pdf

这篇论文,开宗明义就是神经网络的泛化性能来源于它在训练过程,会更多关注低频分量。

CIFAR-10、MNIST的神经网络的拟合过程,蓝色代表低频、红色代表高频,越到后面,接近于收敛的情况下,需要学习的低频分量越少。



Theory of the frequency principle for general deep neural networks
https://arxiv.org/pdf/1906.09235v2.pdf

做了大量的数学推导证明F-Principle,分成训练的初始阶段、中间阶段、收尾阶段分别证明,对于非数学专业的人,有点繁琐。

Explicitizing an Implicit Bias of the Frequency Principle in Two-layer Neural Networks
https://arxiv.org/pdf/1905.10264.pdf

为什么参数比样本多的深层神经网络(DNNs)通常能很好地泛化,这仍然是个谜。理解这一难题的一个尝试是发现DNNs训练过程中的隐含偏差,例如频率原理(F-Principle),即DNNs通常从低频到高频拟合目标函数。受F-Principle的启发,该论文提出了一个有效的线性F-Principle动力学模型,该模型能准确预测大宽度的两层ReLU神经网络(NNs)的学习结果。这种Linear FP动力学被NNs的线性化Mean Field剩余动力学合理化。重要的是,这种LFP动力学的长时间极限解等价于显式最小化FP范数的约束优化问题的解,其中可行解的高频率受到更严重的惩罚。利用该优化公式,给出了泛化误差界的先验估计,表明目标函数的FP范数越高,泛化误差越大。总的来说,通过将F-Principle的隐式偏差解释为两层NNs的显式惩罚,这个工作朝着定量理解一般DNNs的学习和泛化迈出了一步。

这个是图像类的二维数据的LFP模型示意图。



许教授之前的介绍:

LFP 模型为神经网络的定量理解提供了全新的思路。首先,LFP 模型用一个简单的微分方程有效地刻画了神经网络这样一个参数极多的系统其训练过程的关键特征,并且能够精确地预测神经网络的学习结果。因此该模型从一个新的角度建立了微分方程和神经网络的关系。由于微分方程是一个非常成熟的研究领域,我们相信该领域的工具可以帮助我们进一步分析神经网络的训练行为。
其次,与统计物理类似,LFP 模型只与网络参数的一些宏观统计量有关,而与单个参数的具体行为无关。这种统计刻画可以帮助我们准确理解在参数极多的情况下 DNN 的学习过程,从而解释 DNN 在参数远多于训练样本数时较好的泛化能力。
在该工作中,我们通过一个等价的优化问题来分析该 LFP 动力学的演化结果,并且给出了网络泛化误差的一个先验估计。我们发现网络的泛化误差能够被目标函数f本身的一种 F-principle 范数(定义为
,γ(ξ) 是一个随频率衰减的权重函数)所控制。

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

FREQUENCY PRINCIPLE: FOURIER ANALYSIS SHEDS LIGHT ON DEEP NEURAL NETWORKS
https://arxiv.org/pdf/1901.06523.pdf


这表明,对于任意两个非收敛频率,在较小的权重下,低频梯度指数性地优于高频梯度。根据Parseval定理,空间域中的MSE损失与Fourier域中的L2损失等效。为了更直观地理解低频损耗函数的高衰减率,我们考虑了在只有两个非零频率的损失函数的Fourier域中的训练。


解释了ReLU函数为什么Work,因为tanh函数在空间域是光滑的,其导数在傅里叶区域随频率呈指数衰减。
许教授关于F-Principle的几篇科普文:

https://zhuanlan.zhihu.com/p/42847582
https://zhuanlan.zhihu.com/p/72018102
https://zhuanlan.zhihu.com/p/56077603
https://zhuanlan.zhihu.com/p/57906094

On the Spectral Bias of Deep Neural Networks
Bengio组的工作,之前写过一个比较粗糙的分析札记:
https://zhuanlan.zhihu.com/p/160806229

1、利用连续分段线性结构对ReLU网络的傅里叶谱分量进行分析。
2、发现了谱分量偏差(Spectrum bias)的经验证据,来源于低频分量,然而对低频分量的学习,有助于网络在对抗干扰过程中的鲁棒性。
3、通过流形理论,给予学习理论框架分析。


根据拓扑学的Storkes定理,证明ReLU函数紧凑、光滑,有助于训练的收敛,之后的Swish和Mish呢?(狗头)。

这样,在高维空间中,ReLU函数的谱衰减具有强烈的各向异性,ReLU傅立叶变换幅度的上限满足李普希茨约束。

实验:

中心点:低频分量学习优先级高
  1. 对函数做实验:


傅立叶变换效果
迭代过程对函数的学习
模型的标准化谱分量


2. 带噪环境学习MNIST数据


不同的验证损失
MNIST数据拟合的频率分量


神经网络可以近似任意值功能,但研究人员发现他们更喜欢低频的分量,也因此,它们表现出对平滑函数的偏倚——被称之为谱偏移(spectral bias)的现象。

流形假设



流形越复杂,然后学习过程越容易,这个假设会Break“结构风险最小化”假设,有可能会出现“过拟合”。



如果有复杂的数据集(ImageNet),搜索空间比较大,也要通过一定的方法,使其“work in harmony”,调谐地工作。

感觉Bengio认为其对深度学习的正则化有启发意义。

Machine Learning from a Continuous Viewpoint
https://arxiv.org/pdf/1912.12777.pdf

数学家Wienan.E的争鸣,频率原则并不总是Work的。
假设某个函数:


概率测度
基于核函数对其求导:
其中:
进行傅立叶系数的分解:
推导得到:
特征函数:
然后给出了频域原则work的边界。



work的情况:



不work的情况:

如果说Wienan. E是从数学家的角度给出了Frequency Principle的边界的话,那么做工程的小伙伴一定要看看这篇论文:

A Fourier Perspective on Model Robustness in Computer Vision
https://arxiv.org/pdf/1906.08988.pdf

代码也已经开源了:
https://github.com/google-research/google-research/tree/master/frequency_analysis

作者的意思是关注鲁棒性,不能完全丢掉高频特征。



图片说明翻译:使用人类无法识别的输入信息,模型可以实现高精度。上面显示的是经过训练和测试的模型,这些模型在输入端应用了严格的高通和低通滤波。通过积极的低通滤波,当图像看起来是简单的彩色球体时,该模型在ImageNet上仍然高于30%。在高通(HP)过滤的情况下,使用人类几乎看不见的输入特征,模型可以达到50%以上的精度。如右图所示,需要对高通滤波图像进行归一化处理,以便正确地可视化高频特征(我们用附录中提供的可视化高通滤波图像的方法)。



图片说明翻译:左:自然图像的傅里叶谱;我们通过平均所有CIFAR-10验证图像来估计E[|F(X)[i,j]|]。右:CIFAR-10-C中严重程度为3的腐败的傅里叶谱。对于每个腐败,我们通过平均所有验证图像来估计E[|F(C(X)−X)[i,j]|]。加性噪声在高频段具有较高的浓度,而雾、对比度等污染集中在低频段。


图片翻译说明:CIFAR-10上不同傅立叶基向量对加性噪声的模型灵敏度。我们将加性噪声固定为“L2范数为4”,并评估了三个模型:自然训练模型、对抗训练模型和高斯数据增强训练模型。对来自测试集中的1000个随机采样的图像进行平均错误率。在最下面的一行中,我们显示了沿着相应的傅立叶基向量受到噪声干扰的图像。自然训练的模型对除最低频率以外的所有加性噪声都高度敏感。对抗性训练和高斯数据增强都极大地提高了高频下的鲁棒性,而牺牲了自然训练模型在低频率下的鲁棒性(即,在这两个模型中,中间的蓝色区域比自然训练模型的小)。


图片翻译说明:ImageNet验证图像上的不同傅立叶基向量对加性噪声的模型敏感度。我们将基向量固定为L2范数的值等于15.7。错误率是整个ImageNet验证集的平均错误率。给出了以傅里叶域最低频率为中心的63×63平方。同样,自然训练的模型对除最低频率之外的所有加性噪声都高度敏感。另一方面,高斯数据增强提高了高频下的鲁棒性,同时牺牲了对低频扰动的鲁棒性。对于AutoAugment,我们观察到它的傅立叶热图在中心周围有最大的蓝色/黄色区域,这表明AutoAugment对低频到中频的破坏是相对健壮的。



图片翻译说明:固定范数和不同频率分布的加性噪声下模型的稳健性。对于每个CIFAR-10测试图像中的每个通道,在应用到图像之前,我们对独立同分布高斯噪声进行采样,应用低/高通滤波器,并将滤波后的噪声归一化为L2范数值为8。我们改变低/高通滤波器的带宽,生成两个曲线图。自然训练的模型对带宽为3的低频噪声具有更强的鲁棒性,而高斯数据增强和对抗性训练使模型对高频噪声具有更强的鲁棒性。



图片翻译说明:CIFAR-10-C腐蚀高频能量分数与测试精度的关系。绘图中的每个散布点代表特定模型对特定损坏类型的评估结果。X轴表示损坏类型的高频能量的分数,y轴表示与自然训练的模型相比测试精度的变化。总体而言,高斯数据增强、对抗性训练和添加低通滤波器提高了对高频破坏的鲁棒性,降低了对低频破坏的鲁棒性。与低频损坏相比,应用高通滤波器前端对高频损坏产生更显著的精度下降。AutoAugment提高了对几乎所有损坏的健壮性,并实现了最佳的整体性能。底部的图例显示了每条拟合线的斜率(K)和残差(r)。



图片翻译说明:(a)和(b):对抗扰动的傅立叶频谱,给定图片X,发起PGD攻击,得到对抗样本C(X),估算对抗扰动的傅立叶频谱,会使得图片错误分类;(a) 是自然训练得到的频谱;(b)是对抗训练得到的频谱。自然训练模型的对抗性扰动均匀分布在频率分量上。相比之下,对抗性的训练使这些扰动偏向较低的频率。(C)和(D):将范数大的傅立叶基向量加到图像上是一种生成内容保持黑盒对抗性示例的简单方法。

几点结论:

1) 对抗训练会关注到一些高频分量,而非一味执迷于低频分量。
2)AutoAugment有助于提高鲁棒性。

开源代码主要教人画出论文中类似的示意图。

另外一篇论文Eric Xing组里的,知乎的自媒体之前发过了:

High-frequency Component Helps Explain the Generalization of Convolutional Neural Networks
https://arxiv.org/pdf/1905.13545.pdf

自然训练的卷积的可视化与对抗训练的卷积的可视化

该论文实验了几个方法:

  • 对于一个训练好的模型,我们调整其权重,使卷积核变得更加平滑;

  • 直接在训练好的卷积核上将高频信息过滤掉;

  • 在训练卷积神经网络的过程中增加正则化,使得相邻位置的权重更加接近。


然后得出结论:

关注低频信息,有助于提高泛化性,高频分量可能与对抗攻击有联系,但不能太武断。
Contribution是用详细的实验证明Batch Normalization对于拟合高频分量,提高泛化性是有用的。



最后,就是全凭一张嘴了。

这边厢,许教授证明ReLU的光滑性有助于函数优化;那边厢,近期的一个工作叫Bandlimiting Neural networks against adversarial attacks

https://arxiv.org/pdf/1905.12797.pdf

ReLU函数得到一种piecewise的linear function



可以分解为众多的频率分量。

对于N=1000个节点的隐藏层,并且输入维度为n=200时,区域的最大数目大致等于10^200。换言之,即使是一个中等规模的神经网络也可以将输入空间划分为大量的子区域,这很容易超过宇宙中的原子总数。当我们学习神经网络时,我们不能期望每个区域内至少有一个样本。对于那些没有任何训练样本的区域,其中的结果线性函数可以是任意的,因为它们根本不对训练目标函数有贡献。当然,这些地区中的大多数都非常小。当我们测量整个空间的预期损失函数时,它们的贡献可以忽略不计,因为随机抽样点落入这些微小区域的机会非常小。然而,对抗性攻击带来了新的挑战,因为对抗性样本不是自然抽样的。考虑到区域的总数是巨大的,那么这些微小的区域在输入空间中几乎无处不在。对于输入空间中的任何一个数据点,我们几乎肯定可以找到这样一个微小的区域,其中线性函数是任意的。如果选择了这个微小区域内的一个点,神经网络的输出可能会出乎意料。这些微小的区域是神经网络易受敌意攻击的根本原因。

然后,提出了一种对抗防御的方法,表示没看懂,看官自己读论文,欢迎读完在评论区点拨我。



虽然有拖延症,但其他一些相关的、有趣的论文,我看到后也会在这个区分享的。

来源:
https://www.zhihu.com/question/59532432/answer/1510340606

回答二

作者丨心似风往

收到邀请后,就关注了这个问题一段时间,想着等一个有缘人回答这个问题,我就能不费时间的白嫖答案了,心中暗暗窃喜。然而,等了很长时间,都没有一个认认真真仔仔细细的回答。就只能自己出来抛砖引玉了。

很神奇,正好读过一篇文章是关于从频域去理解和分析模型robustness,这篇文章部分内容正好也分析了这个问题,而且,非常巧的是:实验也是用的 ResNet。这不巧了么这不!

先贴出论文的名字:
A Fourier Perspective on Model Robustness in Computer Vision [1]

首先,论文深度学习的模型取得了空前成功,但是有一个很大的问题,这就是它的robustness很差,即对某些测试的图片加一点corruption,图片就会被分类错误。增强robustness的一个方法就是对training set 的图片做data augmentation,让训练出来的模型具有抵抗corruption的robustness。但是作者发现,同样的data augmentation方法如Gaussian augmentation和adversarial training,并非对所有的corruption情况都能提高robustness。那作者提出了一个问题:为什么同样的augmentation 的方法,对有些corruption是提升性能,而有些是降低性能的呢?

然后,作者提出了一个假设:莫非是不一样的corruption提供的频率信息不一样?

对于CIFAR-10,作者使用了 Wide ResNet-28-10;

对于ImageNet,作者使用了 ResNet-50。

首先

作者分析了图像不同频率的信息对自然训练出的模型预测准确性的影响。


如上图所示,作者用ImageNet训练的模型 ResNet-50做了实验。

对于低频信息,作者直接在测试图像的频域加了低通滤波器,不同滤波器的大小让不同量的低通信号通过,四个典型的滤波后的图显示在图标的上方。

对高频信息,作者在图像的频域加了高通滤波器,并且做了normalization。不同滤波器的大小让不同量的高频信号通过,四个典型的滤波后的图显示在图标的右方。

图标的x轴是滤波器的大小,y轴是分类的准确性。

上面的图表说明:即使低通滤波器的大小非常小,图像看起来就像色块一样,人眼根本分不清是什么,模型依然取得了超过30%的准确性(低通滤波器得出的第一张图)。而对于高通滤波的部分(从上往下第二张图),即使人眼根本分不出这张图里是什么东西,模型依然取得了50%准确性。而且在低频信息少时,增加低频信息能快速提高准确性,当到达一定量时就不再影响了;高频信息对准确性的影响是逐渐提升的,没有低频快。

其次

训练集为CIFAR-10,作者分析了模型 Wide ResNet-28-10对additive noise的敏感性。


图中中间是低频信号区,越往边缘频率越高

训练集为CIFAR-10,训练的模型是 Wide ResNet-28-10

自然训练出来的模型对除了低频corruption噪声之外的其他频率都很敏感,adversarial training 和Gaussian augmentation 提高了模型对高频corruption 的robustness (错误率低)。

再次

训练集为ImageNet,作者分析了模型 ResNet-50 对additive noise的敏感性。


自然训练出来的模型对除了低频corruption噪声之外的其他频率都很敏感,Gaussian augmentation 牺牲了对于低频的perturbation 的robustness ,但是提高了高频的。对AutoAugment,低频、中频、高频的robustness逐渐降低。

最后

bandwidth增加时,高频信号和低频信号对test accuracy的影响。

训练集为CIFAR-10,模型为 Wide ResNet-28-10。


相对于自然训练出的模型,随着噪声滤波器bandwidth的增加,testaccuracy都在降低,同时我们发现,Gaussian augmentation和adversarial trainning得出的模型的accuracy都比自然训练得出的模型的accuracy高。

补充1: 根据本问题下 @Lost 的回答,也建议大家去看一下他说的那篇论文 Frequency Principle: Fourier Analysis Sheds Light on Deep Neural Networks [2]

https://arxiv.org/pdf/1901.06523.pdf

补充2: 同样建议大家读下面这篇论文High-frequency Component Helps Explain the Generalization of Convolutional Neural Network[3]

https://openaccess.thecvf.com/content_CVPR_2020/papers/Wang_High-Frequency_Component_Helps_Explain_the_Generalization_of_Convolutional_Neural_Networks_CVPR_2020_paper.pdf

参考资料

[1] A Fourier Perspective on Model Robustness in Computer Vision 
[2] Frequency Principle: Fourier Analysis Sheds Light on Deep Neural Networks 
[3] High-frequency Component Helps Explain the Generalization of Convolutional Neural Network 

来源:
https://www.zhihu.com/question/59532432/answer/1447173834

推荐阅读


ACCV 2020国际细粒度网络图像识别竞赛正式开赛!

添加极市小助手微信(ID : cvmart2),备注:姓名-学校/公司-研究方向-城市(如:小极-北大-目标检测-深圳),即可申请加入极市目标检测/图像分割/工业检测/人脸/医学影像/3D/SLAM/自动驾驶/超分辨率/姿态估计/ReID/GAN/图像增强/OCR/视频理解等技术交流群:每月大咖直播分享、真实项目需求对接、求职内推、算法竞赛、干货资讯汇总、与 10000+来自港科大、北大、清华、中科院、CMU、腾讯、百度等名校名企视觉开发者互动交流~

△长按添加极市小助手

△长按关注极市平台,获取 最新CV干货

觉得有用麻烦给个在看啦~   
登录查看更多
2

相关内容

迄今为止,产品设计师最友好的交互动画软件。

专知会员服务
43+阅读 · 2020年11月27日
【普林斯顿】机器学习数学视角,63页ppt
专知会员服务
87+阅读 · 2020年11月6日
专知会员服务
27+阅读 · 2020年10月24日
专知会员服务
16+阅读 · 2020年10月18日
非凸优化与统计学,89页ppt,普林斯顿Yuxin Chen博士
专知会员服务
100+阅读 · 2020年6月28日
【CVPR 2020-商汤】8比特数值也能训练卷积神经网络模型
专知会员服务
25+阅读 · 2020年5月7日
基于图卷积(GCN)和规则卷积(CNN)的情绪识别
卷积神经网络四种卷积类型
炼数成金订阅号
18+阅读 · 2019年4月16日
从傅里叶分析角度解读深度学习的泛化能力
PaperWeekly
7+阅读 · 2018年8月24日
卷积神经网络的最佳解释!
专知
12+阅读 · 2018年5月1日
深度学习之CNN简介
Python技术博文
20+阅读 · 2018年1月10日
【CNN】一文读懂卷积神经网络CNN
产业智能官
18+阅读 · 2018年1月2日
可解释的CNN
CreateAMind
17+阅读 · 2017年10月5日
CNN之卷积层
机器学习算法与Python学习
8+阅读 · 2017年7月2日
精选 | 一张动图看懂卷积神经网络之卷积计算层
七月在线实验室
25+阅读 · 2017年6月21日
Interpretable CNNs for Object Classification
Arxiv
20+阅读 · 2020年3月12日
Single-frame Regularization for Temporally Stable CNNs
Adaptive Neural Trees
Arxiv
4+阅读 · 2018年12月10日
VIP会员
相关资讯
基于图卷积(GCN)和规则卷积(CNN)的情绪识别
卷积神经网络四种卷积类型
炼数成金订阅号
18+阅读 · 2019年4月16日
从傅里叶分析角度解读深度学习的泛化能力
PaperWeekly
7+阅读 · 2018年8月24日
卷积神经网络的最佳解释!
专知
12+阅读 · 2018年5月1日
深度学习之CNN简介
Python技术博文
20+阅读 · 2018年1月10日
【CNN】一文读懂卷积神经网络CNN
产业智能官
18+阅读 · 2018年1月2日
可解释的CNN
CreateAMind
17+阅读 · 2017年10月5日
CNN之卷积层
机器学习算法与Python学习
8+阅读 · 2017年7月2日
精选 | 一张动图看懂卷积神经网络之卷积计算层
七月在线实验室
25+阅读 · 2017年6月21日
Top
微信扫码咨询专知VIP会员