论文阅读-U3M(2)

news/2024/10/21 4:50:56/

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=Wposcfposc
    其中 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。


http://www.ppmy.cn/news/1540699.html

相关文章

【LeetCode每日一题】——523.连续的子数组和

文章目录 一【题目类别】二【题目难度】三【题目编号】四【题目描述】五【题目示例】六【题目提示】七【解题思路】八【时间频度】九【代码实现】十【提交结果】 一【题目类别】 前缀和 二【题目难度】 中等 三【题目编号】 523.连续的子数组和 四【题目描述】 给你一个…

第2节 如何学习鸿蒙技术

以下是学习鸿蒙技术的一些途径: 一、官方文档与资源 1. 华为开发者官网 • 这是最权威的学习资源平台。官网提供了详细的鸿蒙操作系统的文档,包括架构介绍、开发指南、API参考等内容。例如,对于初学者来说,可以从入门教程开始&am…

015集——c# 实现CAD excel交互(CAD—C#二次开发入门)

第一步:添加引用 程序集—>扩展 namespace WindowsFormsApp2 {public partial class Form1 : Form{public Form1(){InitializeComponent();}private void Form1_Load(object sender, EventArgs e){}private void 获取当前excel_Click(object sender, EventArgs e…

GNU 链接脚本

官方手册 The GNU linker 目录 3 链接脚本3.1 基本链接脚本概念3.2 链接脚本格式3.3 简单链接脚本示例3.4 简单链接脚本命令3.4.1 设置入口点3.4.2 处理文件的命令3.4.3 处理对象文件格式的命令3.4.4 为内存区域指定别名3.4.5 其他链接器脚本命令 3.5 为符号赋值3.5.1 简单赋值…

数据中台业务架构图

数据中台的业务架构是企业实现数据驱动决策和业务创新的关键支撑。它主要由数据源层、数据存储与处理层、数据服务层以及数据应用层组成。 数据源层涵盖了企业内部各个业务系统的数据,如 ERP、CRM 等,以及外部数据来源,如社交媒体、行业数据…

C06.L11.二维前缀和.课堂练习2.打砖块(brick)

hi!我是AC使者! 题目描述 KXT 是一个很无聊的小朋友,一天到晚都在打坐...... 一天,被他发现了一个比打坐更无聊的事情——打砖块。很多块砖分布在一个m*mm∗m 的矩阵中,他可以消掉以他为左上角顶点的一个 n*nn∗n 的…

无人机电机故障率骤降:创新设计与六西格玛方法论双赢

项目背景 TBR-100是消费级无人机头部企业推出的主打消费级无人机,凭借其出色的续航能力和卓越的操控性,在市场上获得了广泛认可。在产品运行过程,用户反馈电机故障率偏高,尤其是在飞行一段时间后出现电机过热、损坏以及运行不稳定…

ubuntu安装golang并设置goproxy

在Ubuntu上安装Go语言(Golang)通常有几种方法,以下是一些常见的安装步骤: 方法一:使用包管理器安装 更新包列表: sudo apt update安装Go: sudo apt install golang-go验证安装: go …