小波集成CNN进行噪声鲁棒的图像分类
Wavelet Integrated CNNs for Noise-Robust Image Classification
摘要
卷积神经网络(CNN)通常容易受到噪声干扰,即较小的图像噪声会导致输出的急剧变化。 为了抑制噪声对最终预测的影响,我们通过用离散小波变换(DWT)替换最大池化,跨步卷积和平均池化来增强CNN。 我们介绍了适用于各种小波(如Haar,Daubechies和Cohen等)的通用DWT和逆DWT(IDWT)层,并使用这些层设计小波集成的CNN(WaveCNets)进行图像分类。 在WaveCNets中,特征图在下采样期间分解为低频和高频分量。 低频分量存储包括基本目标结构的主要信息,该信息被传输到后续层中以提取鲁棒的高级特征。 推理期间会丢弃包含大部分数据噪声的高频分量,以提高WaveCNets的噪声鲁棒性。 我们在ImageNet和ImageNet-C(嘈杂的ImageNet)上的实验结果表明,WaveCNets(VGG,ResNets和DenseNet的小波集成版本)比普通版本具有更高的准确性和更好的噪声鲁棒性。
一、引言
由于输入的微小变化而导致的急剧变化会在训练有素的卷积神经网络(CNN)的图像分类结果中出现。 尤其是,CNN具有较弱的噪声鲁棒性。 数据的随机噪声主要是高频成分。 在信号处理领域,将数据转换为不同的频率间隔,并对高频间隔中的分量进行去噪是一种有效的去噪方法。 诸如离散小波变换(DWT)[26]之类的变换包括滤波和下采样。 但是,常用的CNN架构(VGG,ResNets和DenseNet等)在特征图下采样之前不会执行滤波。
如果不进行滤波,则下采样可能会导致低频和高频分量之间出现混叠。 特别是,高频分量中的噪声可能会被下采样到后续特征图中,从而降低CNN的噪声鲁棒性。同时,如图1所示,低频成分中呈现的基本目标结构可能会被破坏。
图1. 最大池化和小波变换的比较。最大池化是深层网络中常用的下采样操作,它很容易破坏基本的目标结构。 离散小波变换(DWT)将图像
X
\mathbf {X}
X分解为低频分量
X
l
l
\mathbf {X} _ {l l}
Xll和高频分量
X
l
h
\mathbf {X} _ {l h}
Xlh,
X
h
l
\mathbf {X} _ {h l}
Xhl,
X
h
h
\mathbf {X} _ {h h}
Xhh。
X
l
h
\mathbf {X} _ {l h}
Xlh,
X
h
l
\mathbf {X} _ {h l}
Xhl,
X
h
h
\mathbf {X} _ {h h}
Xhh表示包括大部分噪声的图像细节,而
X
l
l
\mathbf {X} _ {l l}
Xll是数据的低分辨率版本,其中表示了基本目标结构。 在图中,区域A(AP)的窗口边界和区域B(BP)的极点被最大池化打破,而这些对象的主要特征保留在DWT输出(AW和BW)中。
在本文中,为了抑制噪声对最终预测的影响并提高分类精度,我们将小波集成到常用的CNN架构中。 我们首先将DWT和逆DWT(IDWT)转换为PyTorch中的通用网络层。 然后,通过用DWT代替常用的下采样,设计小波集成卷积网络(WaveCNet)。 在下采样期间,WaveCNet消除了特征图的高频成分,以提高CNN的噪声鲁棒性,然后从低频成分中提取高级特征,以实现更好的分类精度。 当使用各种小波和各种CNN架构时,我们使用ImageNet和ImageNet-C评估WaveCNets的分类精度和鲁棒性。 最后,我们探讨了DWT/IDWT层在图像分割中的应用。 综上所述:
1.我们提出了适用于各种小波的通用DWT / IDWT层,可用于设计端到端小波集成深度网络。
2.我们通过用DWT替换现有的下采样操作来设计WaveCNets,以提高CNN的分类准确性和鲁棒性。
3.我们在ImageNet上评估WaveCNets,并获得更高的准确性和更好的噪声鲁棒性。
4.提出的DWT / IDWT层进一步集成到SegNet中,以提高编码器-解码器网络的分割性能。
二、相关工作
2.1 噪声鲁棒性
当输入图像发生更改时,CNN的输出可能会显着不同,无论这种改变是否易于被人类感知。尽管变化可能是由各种因素引起的,例如平移,旋转,噪声,模糊,人为攻击等,但我们还是将CNN的鲁棒性放在常见的噪声中。 在[21]中设计了一种高级表示引导的去噪器,以在将污染的图像输入到CNN中之前对它进行去噪,这可能会使整个深度网络结构变得复杂。 在[36]中,作者提出了CNN的去噪块,以对特征图进行去噪并抑制噪声对最终预测的影响。 然而,作者使用诸如高斯滤波,均值滤波和中值滤波等空间滤波来设计其去噪块,这些空间滤波会在整个频域中进行去噪,并且可能破坏低频分量中包含的基本目标结构。 因此,它们的降噪块需要CNN收敛的残差结构。 最近,在[15]中提出了一个基准,用于评估CNN在嘈杂图像上的性能。 我们的WaveCNets将使用此基准进行评估。
最近的研究表明,经过ImageNet训练的CNN倾向于从对噪声敏感的目标纹理中提取特征。 风格化的ImageNet是通过使用样式转移对ImageNet图像进行风格化来提出的,以使CNN能够从目标结构中提取更鲁棒的特征。 当特征图流经CNN中的特征图时,噪声可能会放大,从而导致最终的错误预测。 这些问题可能与忽略经典采样定理的下采样操作有关。
2.2 下采样
为了实现局部连接和权重共享,研究人员将各种下采样操作(例如最大池化,平均池化,混合池化,随机池化和跨步卷积等)引入到深度网络中。虽然最大池化和平均池化既简单又有效,但它们可以擦除或淡化图像中的细节。 尽管引入混合池化和随机池化来解决这些问题,但是最大池化,平均池化和跨步卷积仍是CNN中使用最广泛的操作。
这些下采样操作通常会忽略经典的采样定理,这可能会破坏目标结构并积累噪声。 图1显示了一个最大池化的示例。 抗混叠CNN将经典的抗混叠滤波与下采样相结合。 作者对分类精度的提高和更好的噪声鲁棒性感到惊讶。 与抗混叠CNN相比,我们的WaveCNets在两个方面有显着不同:(1)虽然在抗混叠CNN中仍使用最大值操作,但WaveCNets不需要这种操作。 (2)抗混叠CNN中使用的低通滤波器是根据Pascal三角形的行向量凭经验设计的,这是临时的,没有给出理论依据。 由于没有低通滤波器的上采样操作,即重构,因此,抗混叠的U-Net必须在正常的上采样后应用相同的滤波,以实现抗混叠的效果。 相比之下,我们的WaveCNets被定义明确的小波理论证明是正确的。下采样和上采样都可以分别用DWT和IDWT代替。
在用于图像到图像变换任务的深层网络中,上采样操作(例如U-Net中的转置卷积和SegNet中的max-unpooling)广泛用于提升特征图分辨率。 由于缺少严格的数学术语,因此这些上采样操作无法精确地恢复原始数据。 它们在恢复图像细节方面效果不佳。
2.3 小波
小波是功能强大的时频分析工具,在信号处理中具有广泛的应用。离散小波变换(DWT)将数据分解为不同频率间隔的各个分量,而逆DWT(IDWT)可以使用DWT输出重建数据。 DWT可以用于信号处理中的抗混叠,我们将探索其在深度网络中的应用。 IDWT可用于图像到图像任务中的细节还原。
小波已经与神经网络相结合,用于函数逼近,信号表示和分类。 在这些早期工作中,作者应用浅层网络在小波参数域中搜索最优小波。 最近,这种方法与更深层的网络一起用于图像分类,但是由于计算量巨大,网络难以训练。 ScatNet将非线性模式的小波变换与平均池化进行级联,以提取对变形具有鲁棒性的平移不变特征,并保留用于图像分类的高频信息。 作者在从数学和算法角度探索如何设计最佳深度网络时介绍了ScatNet。 与同期的CNN相比,ScatNet在手写数字识别和纹理识别任务上获得了更好的性能。但是,由于严格的数学假设,ScatNet无法轻松地转移到其他任务。
在深度学习中,小波通常扮演图像预处理或后处理的角色。同时,研究人员通过将小波变换作为采样操作,尝试将小波变换引入各种任务的深层网络设计中。 文献[22]中提出的多级小波CNN(MWCNN)将小波包变换(WPT)集成到用于图像恢复的深度网络中。 MWCNN连接输入特征图的低频和高频分量,并以统一的方式对其进行处理,而这些分量中的数据分布却存在显着差异。 文献[11]中提出的卷积小波神经网络(CWNN)应用双树复数小波变换(DT-CWT)来抑制噪声并保留用于从SAR图像中提取鲁棒特征的结构。 CWNN的体系结构仅包含两个卷积层。 尽管DT-CWT是冗余的,但CWNN将DT-CWT输出的多个分量的平均值作为下采样输出。 在[35]中提出的小波池是使用两级DWT设计的。 它的反向传播执行一个一级DWT和一个二级IDWT,这不遵循梯度的数学原理。 作者在各种数据集(MNIST,CIFAR-10,SHVN和KDEF)上测试了他们的方法。 但是,它们的网络体系结构仅包含四个或五个卷积层。 作者没有系统地研究该方法在像ImageNet这样的标准图像数据集上的潜力。 最近,在[37]中研究了小波变换在图像风格转换中的应用。 在上述工作中,由于缺乏通用的小波变换层,作者仅使用一个或两个小波来评估其方法。
三、我们的方法
我们的方法是尝试应用小波变换来改善深度网络中的下采样操作。 我们首先设计通用的DWT和IDWT层。
3.1 DWT和IDWT层
DWT和IDWT层设计中的关键问题是数据的正向和反向传播。 尽管以下分析是针对正交小波和1D信号的,但只需稍作更改即可将其推广到其他小波和2D/3D信号。
前向传播
对于一个一维信号
s
=
{
s
j
}
j
∈
Z
\mathbf{s}=\left\{s_{j}\right\}_{j \in \mathbb{Z}}
s={sj}j∈Z,DWT将其分解为低频分量
s
1
=
{
s
1
k
}
k
∈
Z
\mathbf{s}_1=\left\{s_{1k}\right\}_{k \in \mathbb{Z}}
s1={s1k}k∈Z和高频分量
d
1
=
{
d
1
k
}
k
∈
Z
\mathbf{d}_1=\left\{d_{1k}\right\}_{k \in \mathbb{Z}}
d1={d1k}k∈Z,其中
{
s
1
k
=
∑
j
l
j
−
2
k
s
j
d
1
k
=
∑
j
h
j
−
2
k
s
j
(1)
\left\{\begin{array}{l} s_{1 k}=\sum_{j} l_{j-2 k} s_{j} \\ d_{1 k}=\sum_{j} h_{j-2 k} s_{j} \end{array}\right. \tag{1}
{s1k=∑jlj−2ksjd1k=∑jhj−2ksj(1)
l
=
{
l
k
}
k
∈
Z
\mathbf{l}=\left\{l_{k}\right\}_{k \in \mathbb{Z}}
l={lk}k∈Z,
h
=
{
h
k
}
k
∈
Z
\mathbf{h}=\left\{h_{k}\right\}_{k \in \mathbb{Z}}
h={hk}k∈Z是正交小波的低通和高通滤波器。根据公式(1),DWT由滤波和下采样组成。
使用IDWT,可以从
s
1
\mathbf{s}_1
s1,
d
1
\mathbf{d}_1
d1重建
s
\mathbf{s}
s,其中
s
j
=
∑
k
(
l
j
−
2
k
s
1
k
+
h
j
−
2
k
d
1
k
)
(2)
s_{j}=\sum_{k}\left(l_{j-2 k} s_{1 k}+h_{j-2 k} d_{1 k}\right)\tag{2}
sj=k∑(lj−2ks1k+hj−2kd1k)(2)
在矩阵和向量的表达式中,公式(1)和公式(2)可以改写为
s
1
=
L
s
,
d
1
=
H
s
(3)
\mathbf{s}_{1}=\mathbf{L} \mathbf{s}, \quad \mathbf{d}_{1}=\mathbf{H} \mathbf{s} \tag{3}
s1=Ls,d1=Hs(3)
s
=
L
T
s
1
+
H
T
d
1
(4)
\mathbf{s}=\mathbf{L}^{T} \mathbf{s}_{1}+\mathbf{H}^{T} \mathbf{d}_{1}\tag{4}
s=LTs1+HTd1(4)
其中
L
=
(
⋯
⋯
⋯
⋯
l
−
1
l
0
l
1
⋯
⋯
l
−
1
l
0
l
1
⋯
⋯
⋯
)
(5)
\mathbf{L}=\left(\begin{array}{ccccccc} \cdots & \cdots & \cdots & & & & \\ \cdots & l_{-1} & l_{0} & l_{1} & \cdots & & \\ & & \cdots & l_{-1} & l_{0} & l_{1} & \cdots \\ & & & & & \cdots & \cdots \end{array}\right)\tag{5}
L=⎝⎜⎜⎛⋯⋯⋯l−1⋯l0⋯l1l−1⋯l0l1⋯⋯⋯⎠⎟⎟⎞(5)
H
=
(
⋯
⋯
⋯
⋯
h
−
1
h
0
h
1
⋯
⋯
h
−
1
h
0
h
1
⋯
⋯
⋯
)
(6)
\mathbf{H}=\left(\begin{array}{ccccccc} \cdots & \cdots & \cdots & & & & \\ \cdots & h_{-1} & h_{0} & h_{1} & \cdots & & \\ & & \cdots & h_{-1} & h_{0} & h_{1} & \cdots \\ & & & & & \cdots & \cdots \end{array}\right)\tag{6}
H=⎝⎜⎜⎛⋯⋯⋯h−1⋯h0⋯h1h−1⋯h0h1⋯⋯⋯⎠⎟⎟⎞(6)
对于2D信号
X
\mathbf {X}
X,DWT通常在其每一行和每一列上执行一维DWT,即
X
l
l
=
L
X
L
T
(7)
\mathbf{X}_{l l}=\mathbf{L} \mathbf{X} \mathbf{L}^{T}\tag{7}
Xll=LXLT(7)
X
l
h
=
H
X
L
T
(8)
\mathbf{X}_{l h}=\mathbf{H} \mathbf{X} \mathbf{L}^{T}\tag{8}
Xlh=HXLT(8)
X
h
l
=
L
X
H
T
(9)
\mathbf{X}_{h l}=\mathbf{L} \mathbf{X} \mathbf{H}^{T}\tag{9}
Xhl=LXHT(9)
X
h
h
=
H
X
H
T
(10)
\mathbf{X}_{h h}=\mathbf{H} \mathbf{X} \mathbf{H}^{T}\tag{10}
Xhh=HXHT(10)
并且相应的IDWT通过以下方式实现
X
=
L
T
X
l
l
L
+
H
T
X
l
h
L
+
L
T
X
h
l
H
+
H
T
X
h
h
H
(11)
\mathbf{X}=\mathbf{L}^{T} \mathbf{X}_{l l} \mathbf{L}+\mathbf{H}^{T} \mathbf{X}_{l h} \mathbf{L}+\mathbf{L}^{T} \mathbf{X}_{h l} \mathbf{H}+\mathbf{H}^{T} \mathbf{X}_{h h} \mathbf{H}\tag{11}
X=LTXllL+HTXlhL+LTXhlH+HTXhhH(11)
反向传播
对于DWT的反向传播,我们从公式(3)开始进行微分,
∂
s
1
∂
s
=
L
T
,
∂
d
1
∂
s
=
H
T
(12)
\frac{\partial \mathbf{s}_{1}}{\partial \mathbf{s}}=\mathbf{L}^{T}, \quad \frac{\partial \mathbf{d}_{1}}{\partial \mathbf{s}}=\mathbf{H}^{T}\tag{12}
∂s∂s1=LT,∂s∂d1=HT(12)
类似地,对于1D IDWT的反向传播,对公式(4)进行微分,
∂
s
∂
s
1
=
L
,
∂
s
∂
d
1
=
H
(13)
\frac{\partial \mathbf{s}}{\partial \mathbf{s}_{1}}=\mathbf{L}, \quad \frac{\partial \mathbf{s}}{\partial \mathbf{d}_{1}}=\mathbf{H}\tag{13}
∂s1∂s=L,∂d1∂s=H(13)
2D/3D DWT和IDWT的前向和后向传播稍微复杂一些,但与1D DWT和IDWT相似。实际上,我们选择具有有限滤波器的小波,例如,具有 l = 1 2 { 1 , 1 } \mathbf{l}=\frac{1}{\sqrt{2}}\{1,1\} l=21{1,1}和 h = 1 2 { 1 , − 1 } \mathbf{h}=\frac{1}{\sqrt{2}}\{1,-1\} h=21{1,−1}的Haar小波。 对于有限信号 s ∈ R N \mathbf{s} \in \mathbb{R}^{N} s∈RN和 X ∈ R N × N \mathbf{X} \in \mathbb{R}^{N \times N} X∈RN×N, L \mathbf{L} L, H \mathbf{H} H被截断为 ⌊ N 2 ⌋ × N \left\lfloor\frac{N}{2}\right\rfloor \times N ⌊2N⌋×N的大小。我们在PyTorch中将1D / 2D / 3D DWT和IDWT转换为网络层。 在各层中,我们对多通道数据逐通道进行DWT和IDWT。
3.2 WaveCNets
给定一个嘈杂的2D数据
X
\mathbf{X}
X,随机噪声主要出现在其高频分量中。 因此,如图2(a)所示,基于小波的一般去噪包括三个步骤:(1)使用DWT将噪声数据
X
分
解
为
\mathbf{X}分解为
X分解为低频分量
X
l
l
\mathbf {X} _ {l l}
Xll和高频分量
X
l
h
\mathbf {X} _ {l h}
Xlh,
X
h
l
\mathbf {X} _ {h l}
Xhl,
X
h
h
\mathbf {X} _ {h h}
Xhh,(2)滤除高频成分 (3)使用IDWT与处理后的分量一起重建数据。
图2.基于小波变换的一般去噪方法和用于WaveCNet中的一种。
在本文中,我们选择最简单的基于小波的“去噪”,即去除高频分量,如图2(b)所示。
D
W
T
l
l
DWT_{l l}
DWTll表示将特征映射映射到低频分量的变换。 我们通过用
D
W
T
l
l
DWT_{l l}
DWTll替换常用的下采样来设计WaveCNets。 如图3所示,在WaveCNets中,最大池化和平均池化被
D
W
T
l
l
DWT_{l l}
DWTll直接取代,而跨步卷积则使用步长为1的卷积和
D
W
T
l
l
DWT_{l l}
DWTll进行卷积,即,
MaxPool
s
=
2
→
D
W
T
l
l
(14)
\operatorname{MaxPool}_{s=2} \rightarrow \mathrm{DWT}_{l l}\tag{14}
MaxPools=2→DWTll(14)
C
o
n
v
s
=
2
→
D
W
T
l
l
∘
Conv
s
=
1
(15)
\mathrm{Conv}_{s=2} \rightarrow \mathrm{DWT}_{l l} \circ \operatorname{Conv}_{s=1}\tag{15}
Convs=2→DWTll∘Convs=1(15)
AvgPool
s
=
2
→
DWT
l
l
(16)
\text { AvgPool }_{s=2} \rightarrow \text { DWT }_{l l}\tag{16}
AvgPool s=2→ DWT ll(16)
其中“ MaxPools”,“ Convs”和“ AvgPools”分别表示最大池化,跨步卷积和步长为
s
s
s的平均池化。
图3.(a)基线,即深层网络中的下采样操作。 (b)WaveCNets中的小波集成下采样。
虽然 D W T l l DWT_{l l} DWTll将特征图的大小减半,但它会删除其高频分量并对其进行去噪。 D W T l l DWT_{l l} DWTll的输出,即低频分量,保存特征图的主要信息以提取可识别的特征。 在WaveCNets的下采样期间, D W T l l DWT_{l l} DWTll可以抵抗噪声在深层网络中的传播,并有助于在特征图中维护基本的目标结构。 因此, D W T l l DWT_{l l} DWTll将加速深度网络的训练,带来更好的噪声鲁棒性,增加分类精度。