HOW MUCH POSITION INFORMATION DO CONVOLUTIONAL NEURAL NETWORKS ENCODE?
文章目录
- HOW MUCH POSITION INFORMATION DO CONVOLUTIONAL NEURAL NETWORKS ENCODE?
- 前言
- 一、位置编码网络(PosENet)
- 二、训练数据
- 三、实验
- 3.1 位置信息的存在性
- 3.2 分析PosENet
- 3.3 位置信息存储在哪里?
- 3.4 位置信息来自哪里?
- 四、结论
在阅读Segformer论文中,设计一个高效、有用、轻量的分割模型,其中对编码器的设计中对位置嵌入做了改进,使用一个卷积来完成位置编码。这个思想就是借鉴了“HOW MUCH POSITION INFORMATION DO CONVOLUTIONAL NEURAL NETWORKS ENCODE?”这篇文章。中文名翻译过来就是多少位置编码信息被卷积神经网络学习?
前言
在使用基于CNN的模型学习数据特征时,由于CNN是使用卷积在输入图像局部的滑动卷积提取特征,所以想当然的认为基于CNN的方法很难感知到图像的绝对位置信息。但是作者发现了一个有趣的现象,我们通常认为图像的显著性区域集中在图像中心,在对图像进行裁剪后(显著性区域内容不会变化,但是位置会发生变化),模型仍然可以感知到显著性区域。因此作者提出一个假设:卷积神经网络能够隐式地将图像的绝对位置编码进特征图中。作者通过一系列随机化测试来验证该假设。
一、位置编码网络(PosENet)
- 前馈网络编码器:编码器由5个特征提取器组成
f
θ
1
,
f
θ
2
,
f
θ
3
,
f
θ
4
,
f
θ
5
f_{\theta}^1,f_{\theta}^2,f_{\theta}^3,f_{\theta}^4,f_{\theta}^5
fθ1,fθ2,fθ3,fθ4,fθ5,网络从浅层到深层提取不同层次的特征
f
p
o
s
1
,
f
p
o
s
2
,
f
p
o
s
3
,
f
p
o
s
4
,
f
p
o
s
5
f_{pos}^1,f_{pos}^2,f_{pos}^3,f_{pos}^4,f_{pos}^5
fpos1,fpos2,fpos3,fpos4,fpos5。编码器部分的计算过程被表示如下:
f p o s i = f θ i ( W α ∗ I m ) f_{pos}^i=f_\theta^i(W_\alpha * I_m) fposi=fθi(Wα∗Im)
其中 W α W_\alpha Wα表示冻结的权重。 ∗ * ∗表示卷积操作。前馈网络编码器只用于提取特征提取,其权重是由预训练是预训练得到的。 - 位置编码器:位置编码器的输入是经过前馈网络得到的多尺度特征
f
p
o
s
1
,
f
p
o
s
2
,
f
p
o
s
3
,
f
p
o
s
4
,
f
p
o
s
5
f_{pos}^1,f_{pos}^2,f_{pos}^3,f_{pos}^4,f_{pos}^5
fpos1,fpos2,fpos3,fpos4,fpos5。然后应用双线性插值拉起多尺度特征图的空间维度,然后对它们做concat操作,得到特征图
f
p
o
s
c
f_{pos}^c
fposc, 然后对
f
p
o
s
c
f_{pos}^c
fposc做卷积操作和变换方程
T
p
o
s
\mathcal{T}_{pos}
Tpos将特征图为位置图。具体的操作如下:
f p o s c = ( f p o s 1 ⊕ . . . ⊕ f p o s 5 ) f ^ p = W p o s c ∗ f p o s c f_{pos}^c=(f_{pos}^1\oplus...\oplus f_{pos}^5) \ \ \ \ \ \ \ \ \ \ \hat{f}_p={W_{pos}^c*f_{pos}^c} fposc=(fpos1⊕...⊕fpos5) f^p=Wposc∗fposc
其中 W p o s c W_{pos}^c Wposc是与变换函数 T p o s \mathcal{T}_{pos} Tpos相连的可训练权重。
编码模块添加主要目的是用于验证前馈网络编码器是否隐式地学习了位置信息。如果没有在特征图中编码位置信息,那么PosENet的输出应该是随机的。
二、训练数据
为了验证卷积神经网络中是否学习到位置信息,我们分配一个归一化类似梯度的位置图作为Ground Truth来进行随机化测试。在实施过程中,选择了五种类似梯度的掩码:水平方向(H)、垂直方向(V)、高斯方向(G)、水平条纹(HS)以及垂直条纹(VS)。
从图中可以看到Ground Truth 和图像内容无关,所以每一张位置GT可以对应任意的图像。作者采用了多种位置编码去验证卷积神经网络对位置编码的学习情况。如果特征图中没有特征编码信息,那么输出则很难匹配GT,相反,如果特征图中隐式地编码了位置信息,那么,就可以匹配到GT。
三、实验
在实验结果中,VGG表示PosENet基于VGG16模型中提取特征。ResNet表示PosENet基于ResNet模型提取特征,而PosENet则表示仅应用PosENet模型直接从输入图像中学习位置信息。为了证明卷积神经网络可以隐式的编码绝对位置这个假设,作者做了4组实验:位置信息的存在性(对比有无前馈编码器提取特征)、分析PosENet(分析PosENet中卷积的大小和卷积层的层数对读取绝对位置的能力)、位置信息存储位置(主要是通过分析前馈神经不同层中对位置编码的能力)、位置信息来自哪里(对比有无zero-padding)。
3.1 位置信息的存在性
在这部分,在5种GT图像上训练带有前馈编码VGG和ResNet的PosNet网络以及仅仅应用PosENet网络(用于验证位置信息是不是从对物体的内容感知中获取的,此外在本部分的实验中PosENet仅使用了3x3的单个卷积层,并且未使用zero-padding),对应的定量的结果如Table1所示。从Table1中可以看到在5种GT实验中,使用前馈编码器的PosENent模型,不使用前馈编码器的PosENet的得分普遍较低。这个结果说明,仅仅从输入图像中提取位置信息是非常困难的。PosENet仅仅从输入图像中提取位置信息是非常困难的,只有在与深度编码网络结合时,才能提取与真实位置图一致的定位信息。通过不同模式下的测试,可以较好证明了模型并非盲目的过度拟合噪声,而是正在提取真实的定位信息。
3.2 分析PosENet
在这部分,作者设计了两个消融实验来检验编码网络的作用。(1)卷积层的堆叠长度的作用(a图)(2)卷积核大小的作用(b图)。
从(a)图中的结果中可以看到,增加更多的层能够使模型获得更高的得分,其中一个原因时堆叠多个卷积层可以使网络具有更大的感受野,另一个可能是位置信息的转换可能需要高于一阶推理的方式表示。
从(b)图中可以看到,较大的卷积核可能更有利于捕获更多的位置信息,这意味着位置信息可能在层内和特征空间中分布的更加广泛,进而更大感受野可以更好的解析位置信息。
3.3 位置信息存储在哪里?
前面的实验揭示了位置信息被编码在一个预训练的CNN模型中,那么那一层回编码更多的信息呢?
作者使用基于VGG-16作为前馈编码器的模型为例用于检验在
f
p
o
s
1
,
f
p
o
s
2
,
f
p
o
s
3
,
f
p
o
s
4
,
f
p
o
s
5
f_{pos}^1,f_{pos}^2,f_{pos}^3,f_{pos}^4,f_{pos}^5
fpos1,fpos2,fpos3,fpos4,fpos5中哪一层中编码了更多的信息。
从表3中可以看到来自深层的
f
p
o
s
5
f_{pos}^5
fpos5特征相比浅层的
f
p
o
s
1
f_{pos}^1
fpos1特征得到了更好的表现。因此这表明网络越深层处的编码器对位置信息的编码能力更强。同样这也和深层视觉特征看的特征更偏向全局的观点相吻合。
3.4 位置信息来自哪里?
作者在实验中证明了CNN能够学习到位置编码主要归因于zero-padding过程。是的,是源自如此基础性的内容。作者是通过对比在编码器中使用Zero-padding和不使用Zero-padding来验证这一点。
实验结果如表4和图6所示,可以看的,在没有zero-padding的实验中。模型的性能表现最差,远低于默认设置(zero-padding)的情况。当设置更多的zero-padding时,位置信息的作用也变得更加明显。
四、结论
在本篇文章中,探讨了绝对位置信息是否被隐式地编码在卷积神经网络中的假设。通过对比是否使用前馈编码器输出的特征的实验证明了卷积神经网络确实能够隐式地学习到图像的绝对位置信息。通过分析卷积核的大小和卷积层的层数证明了,更大的感受野和非线性读取位置信息进一步增强了单层3x3PosENet对位置的读取能力。通过分析前馈编码器不同层的位置编码能力得出更深的特征提取层具有更好的位置编码能力。通过对比编码器中是否设置zero-padding操作,验证了卷积神经网络对图像的位置编码能力主要来源于zero-padding。