论文阅读-U3M(2)

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。

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:/a/892216.html

如若内容造成侵权/违法违规/事实不符,请联系我们进行投诉反馈qq邮箱809451989@qq.com,一经查实,立即删除!

相关文章

单片机原理及应用笔记:C51的运算符与项目实践

单片机原理及应用笔记 作者简介 李永康,男,银川科技学院计算机与人工智能学院,2022级计算机与科学技术9班本科生,单片机原理及应用课程第7组。 指导老师:王兴泽 电子邮件:3214729183qq.com 个人CSDN主…

学习 PostgreSQL + Spring Boot 3 +mybatisplus整合过程中的报错记录

今天计划学习 PostgreSQL,并顺便尝试使用 Spring Boot 3.x 框架,打算整合 Spring Boot 3、PostgreSQL 和 MyBatis-Plus。整合后一直出现以下报错: 去AI上面搜了讲的是sqlSessionFactory 或 sqlSessionTemplate 没有正确配置 初始分析&#…

linux提权【笔记总结】

文章目录 信息收集通过命令收集信息内核,操作系统,设备信息等用户信息环境信息进程与服务安装的软件服务与插件计划任务查看是否存在明文密码查看与主机的通信信息查看日志信息 通过脚本收集信息LinEnum脚本介绍复现 Linuxprivchecker复现 linux-exploit…

URDF统一机器人建模语言

统一机器人建模语言 URDF(Unified Robot Description Format)统一机器人描述格式,URDF使用XML格式描述机器人文件。 我们从下面四个方面介绍URDF: URDF的组成介绍 URDF-Link介绍 URDF-Joint介绍 创建一个简单的URDF…

目标检测指标:AP,mAP

目标检测指标:AP,mAP 论文:A Survey on Performance Metrics for Object-Detection Algorithms 文章目录 目标检测指标:AP,mAP摘要1 介绍2 主要的性能指标TP、FP、FNP、RAP A P 11 AP_{11} AP11​ A P a l l AP_{all}…

Chromium HTML Tags与c++接口对应关系分析

一、HTML 标签(HTML Tags) <a> <head> <img>等等这些标签在c中的接口是如何定义和查找的呢&#xff1f; 更多标签参考&#xff1a; HTML <a> target 属性 (w3school.com.cn) 二、html_tag_names.json5 (third_party\blink\renderer\core\html\htm…

基于SpringBoot的体育商城购物系统

作者&#xff1a;计算机学姐 开发技术&#xff1a;SpringBoot、SSM、Vue、MySQL、JSP、ElementUI、Python、小程序等&#xff0c;“文末源码”。 专栏推荐&#xff1a;前后端分离项目源码、SpringBoot项目源码、Vue项目源码、SSM项目源码、微信小程序源码 精品专栏&#xff1a;…

【AI大模型】初识LangChain:功能强大的语言模型框架

目录 &#x1f354; 什么是LangChain &#x1f354; LangChain主要组件 2.1 Models 2.1.1 LLMs (大语言模型) 2.1.2 Chat Models (聊天模型) 2.1.3 提示模板 2.1.4 Embeddings Models(嵌入模型) 2.2 Prompts 2.3 Chains(链) 2.4 Agents (代理) 2.5 Memory 2.6 Inde…

爬虫post收尾以及cookie加代理

爬虫post收尾以及cookie加代理 目录 1.post请求收尾 2.cookie加代理 post收尾 post请求传参有两种格式&#xff0c;载荷中有请求载荷和表单参数&#xff0c;我们需要做不同的处理。 1.表单数据&#xff1a;data字典传参 content-type: application/x-www-form-urlencoded; …

鸿蒙开发案例:HarmonyOS NEXT语法实现2048

【实现的功能】 • 游戏逻辑&#xff1a;实现了2048游戏的核心逻辑&#xff0c;包括初始化游戏盘面、添加随机方块、处理四个方向的滑动操作等。 • UI展示&#xff1a;构建了游戏的用户界面&#xff0c;显示得分、游戏盘面&#xff0c;并提供了重新开始按钮。 • 用户交互&…

【Docker基础六】docker-compose安装zookeeper、kafka、kafdrop

本文使用 Bitnami/Kafka 提供的kafka容器镜像。详情参考&#xff1a;bitnami/kafka - Docker 镜像 |Docker 中心 创建Docker Compose文件 创建一个名为 docker-compose.yml 的文件&#xff0c;并复制以下内容 version: "3.8" services:zookeeper:image: docker.io…

【C语言】赋值运算符自增、自减

C语言中用来表示赋值&#xff0c;将符号右边的常量或变量的值&#xff0c;赋值给左边的变量。 等号用来表示&#xff0c;一般用于判断条件&#xff0c;属于关系运算的一种&#xff0c;所以会有返回值&#xff0c;1或0。 #include <stdio.h> /* 功能&#xff1a;赋值运算…

微信小程序后台搭建—node+mysql

想必大家都有一个困扰&#xff0c;想要用微信小程序作为前端&#xff0c;但是后端不知道如何用node连接微信小程序&#xff0c;我最近也一直困扰许久&#xff0c;所以我就想用node写后端接口在连接微信小程序&#xff0c;记录一下学习笔记 前言 前端:微信小程序 后端:nodeexpr…

QT QML 练习8-Simple Transformations

简单的转换&#xff08;Simple Transformations&#xff09; 转换操作改变了一个对象的几何状态。QML元素对象通常能够被平移&#xff0c;旋转&#xff0c;缩放。下面我们将讲解这些简单的操作和一些更高级的用法。 我们先从一个简单的转换开始。用下面的场景作为我们学习的开始…

去掉CODESYS的用户管理密码

首先在成功连接PLC的情况下&#xff08;CODESYS登录成功&#xff09;情况下&#xff1a; 1. 2. 3. 4.CODESYS自动化应用进阶&#xff08;二&#xff09;&#xff1a;如何安装使用CODESYS RTE及使用CODESYS RTE过程中常见的问题_哔哩哔哩_bilibili 视频在00&#xff1a;57&…

基于Spring Boot的企业客户管理系统

目录 前言 功能设计 系统实现 获取源码 博主主页&#xff1a;百成Java 往期系列&#xff1a;Spring Boot、SSM、JavaWeb、python、小程序 前言 本论文主要论述了如何使用JAVA语言开发一个企业客户管理系统&#xff0c;本系统将严格按照软件开发流程进行各个阶段的工作&am…

仿 Mac 个人网站开发 |项目复盘

一、前言 1.1 灵感来源 早年有幸看到国外大佬做的一个 基于 Web 的 Windows XP 桌面娱乐系统, 那时刚好有搭建一个个人博客的想法, 所以就想是否可以基于 WEB 实现一个仿 Mac UI 的个人博客, 以应用的形式来展示博客各个功能! 1.2 相关链接(求个 Star) 前端开源代码后端开源…

OpenAI 实时语音Realtime API接口申请: 助力开发者打造快速语音对话体验

OpenAI发布宣布推出Realtime API的公开测试版&#xff0c;所有付费开发者都可以在他们的应用中构建快速的语音对话体验。该API支持六种预设语音&#xff0c;类似于ChatGPT的高级语音模式&#xff0c;使自然的语音对话成为可能。 此外&#xff0c;Chat Completions API也新增了音…

【微服务】springboot远程docker进行debug调试使用详解

目录 一、前言 二、线上问题常用解决方案 2.1 微服务线上运行中常见的问题 2.2 微服务线上问题解决方案 2.3 远程debug概述 2.3.1 远程debug原理 2.3.2 远程debug优势 三、实验环境准备 3.1 搭建springboot工程 3.1.1 工程结构 3.1.2 引入基础依赖 3.1.3 添加配置文…

linux下使用mpi求自然数和

搭建MPI并行计算环境&#xff0c;编写 MPI程序&#xff0c;求和 1 23....1 0000。 要求: 1.使用100个进程; 2.进程0计算1 2...100, 进程1计算101 102... 200, ..... 进程99计算9901 9902... 10000; 3.调用计时函数,分别输出每个进程的计算时间; 4.需使用MPI集群通信函数和同…