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

2020-11-11 10:14:42 浏览数 (1)

链接:https://www.zhihu.com/question/59532432/answer/1510340606 编辑:深度学习与计算机视觉 声明:仅做学术分享,侵删

时域卷积=频域乘积,卷积神经网络大部分的计算也在卷积部分,如何从频域的角度思考卷积神经网络,如何从频域的角度解释ResNet。

作者:若羽

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

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

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

他的B站演讲

数学学院本科课程:统计计算与机器学习3 Frequency

Principlehttps://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的神经网络的拟合过程,感谢@Jimmy

指正,蓝色表示相对误差大,红色表示相对误差小,随着训练的epoch,频率越高(frequency index 大的),收敛越慢(即,对于某个epoch,低频的误差小,颜色偏红,高频部分误差大,颜色偏蓝色)。

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/1906.09235v2.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/1458221308

在数字信号处理里,周期卷积和循环卷积里面的补零法我认为可以考虑考虑,我也给两种卷积的计算方法,一种卷,一种乘。

假设有一张

的图片

如下所示:

有一个卷积核如下所示:

那么步长为1的卷积

可以有两种计算方法,计算结果都是

的矩阵。

第一种方法是通用的,如下图所示这样逐个计算,例如第一个元素是

,其他元素诸如此类计算,这个不是重点。

第二种方法是可以对卷积核循环补零后相乘计算,和你说的相乘有点像。

展开成

展开成

按列看这个矩阵(非常重要),注意看每一列的变化是根据卷积步长循环移位的,每一列的补零个数也是由图像大小和卷积核大小综合计算确定的。

尝试用

计算出

的向量,然后每三个一组变成

的卷积结果。

作者:刘奇 https://www.zhihu.com/question/59532432/answer/1461984696

可以去学习一下《深入浅出图神经网络这本书》,cnn可以看作一种特殊gcn,gcn是可以从频域的角度解释的,cnn也可以。

0 人点赞