文章目录

  • 前言
  • 猜想
  • 实验
    • 实验思路
    • 网络结构——position encoding network
    • 评价指标
    • 实验结果

前言

卷积神经网络在图像领域性能十分卓越,不仅可应用于图像识别,也可应用于目标检测与语义分割。目标检测与语义分割都需要定位目标在图像中的位置,而卷积神经网络在这两类任务中表现优异,是否意味着卷积神经网络可以编码目标的绝对位置(目标在图像中的位置,而不是目标相对于图像中的其他事物的位置)信息呢?

2020 ICLR的文章《how much position information do convolutional neural networks encode?》,通过实验验证了卷积神经网络可以编码目标的绝对位置信息,并且更进一步探究了卷积神经网络能编码目标的位置信息的原因,这将有助于我们设计针对目标检测与语义分割的卷积神经网络结构。

猜想

如下图所示,目标位于图像的正中间位置,当我们将图像进行裁剪,使得目标位于图像的右侧时,卷积神经网络的检测点(原文为detecting saliency)从图像的正中间移动到了图像的右侧,作者因此做出了一个假设:卷积神经网络可以编码目标在图像中的绝对位置,即feature vector\feature map中含有目标的绝对位置信息

有许多可视化技术验证了卷积神经网络可以学习目标具有的特征(例如猪的鼻子长什么样,眼睛长什么样等),例如grad-cam、cam等(这两类算法可以查看我的博客),这类可视化技术可以解释卷积神经网络分类的依据,但是不能解释为什么卷积神经网络可以定位到类别相关的区域,这篇文章将此归因为zero-padding,zero-padding将有助于卷积神经网络编码目标在图像中的位置信息,但是文章没有更进一步解释为什么zero-padding有助于卷积神经网络编码目标的位置信息。

实验

实验思路

假设我们存在一种可以反映位置关系的label,记为position map,如果我们能建立feature map/feature vector到YYY的映射,将表明feature map/feature vector与YYY之间存在某种规律,即feature map/feature vector中的数值含有位置信息的规律,而feature map/feature vector是由卷积神经网络提取的,这表明卷积神经网络可以提取位置信息。

映射关系可以通过神经网络建立,那么如何得到可以反映位置关系的position map呢?

作者设立了五类可以反映位置关系的position map,分别记为H、V、G、HS、VSH、V、G、HS、VSH、V、G、HS、VS。HHH中的像素值表示该位置离图像左边缘的距离,VVV中的像素值表示该位置离图像上边缘的距离,这两类图像可以证明卷积神经网络是否可以提取两个维度上的位置信息。GGG由高斯过滤器得到,论文没有具体解释如何得到G、HS、VSG、HS、VSG、HS、VS,这三类图像可以证明卷积神经网络是否可以提取两个维度上的位置信息,这五类label与图像的内容无关,因此输入图像可以是任何类别的图像。

上图中,第一行表示输入图像,第二行表示label,注意到作者添加了black、white、noise三类图像,这三类图像通常不含有图像的语义信息,可以验证在没有语义信息的前提下,卷积神经网络能否编码位置信息。

网络结构——position encoding network

position encoding network的网络结构如下,该网络由EncoderPosition Encoding Module两部分组成。

如上图所示,Encoder即上图中的fencf_{enc}fenc​,是一个参数固定的特征提取器,不参与训练,上图的fencf_{enc}fenc​含有五个特征提取模块,五个特征提取模块提取的feature map记为(fpos1,fpos2,fpos3,fpos4,fpos5)(f_{pos}^1,f_{pos}^2,f_{pos}^3,f_{pos}^4,f_{pos}^5)(fpos1​,fpos2​,fpos3​,fpos4​,fpos5​)。

Position Encoding Module将(fpos1,fpos2,fpos3,fpos4,fpos5)(f_{pos}^1,f_{pos}^2,f_{pos}^3,f_{pos}^4,f_{pos}^5)(fpos1​,fpos2​,fpos3​,fpos4​,fpos5​)作为输入,经过Γpos\Gamma_{pos}Γpos​处理,输出为position map,Γpos\Gamma_{pos}Γpos​首先使用双线性插值,让(fpos1,fpos2,fpos3,fpos4,fpos5)(f_{pos}^1,f_{pos}^2,f_{pos}^3,f_{pos}^4,f_{pos}^5)(fpos1​,fpos2​,fpos3​,fpos4​,fpos5​)中的feature map空间分辨率一致,接着将其concat,经过一层空间分辨率为k x k的卷积核WposcW_{pos}^cWposc​,得到position map,WposcW_{pos}^cWposc​可被训练

评价指标

position encoding network输出的feature map上采样,使其大小与position map一致,接着计算像素值之间均方差(MAE),计算公式如下:

nnn表示像素个数之和,xix_ixi​与yiy_iyi​分别表示feature map与position map在同一位置上的像素值,MAE数值越小,表明feature map与position map之间的差距越小

除此之外,论文还将使用斯皮尔曼相关系数(SCP)度量feature map与position map之间的相关性,SCP越接近于1,表明两个变量之间的相关性越强,变化趋势的方向以及程度越一致。

实验结果

论文做的实验比较多,这里截取两个比较有趣的部分。


PosENet:只使用Position Encoding Module
VGG:使用预训练的VGG+Position Encoding Module
ResNet:使用预训练的ResNet+Position Encoding Module

单独使用PosENet,效果很糟,但是加入VGG与ResNet,结果会变好,这说明ResNet与VGG提取的feature map是含有位置信息的。


上图显示了zero Padding对SCP与MAE两个指标的联系,可以看到,添加了zero padding后,SCP越大、MAE越小,这说明zero Padding与位置信息的提取有一定关系。论文也探究了zero padding在目标检测与语义分割任务中的表现,结果如下,可见zero padding对位置信息的提取尤为重要。

深度学习——卷积神经网络是否能编码位置信息?相关推荐

  1. 深度学习 卷积神经网络-Pytorch手写数字识别

    深度学习 卷积神经网络-Pytorch手写数字识别 一.前言 二.代码实现 2.1 引入依赖库 2.2 加载数据 2.3 数据分割 2.4 构造数据 2.5 迭代训练 三.测试数据 四.参考资料 一. ...

  2. 毕设 深度学习卷积神经网络的花卉识别

    文章目录 0 前言 1 项目背景 2 花卉识别的基本原理 3 算法实现 3.1 预处理 3.2 特征提取和选择 3.3 分类器设计和决策 3.4 卷积神经网络基本原理 4 算法实现 4.1 花卉图像数 ...

  3. 深度学习 卷积神经网络原理

    深度学习 卷积神经网络原理 一.前言 二.全连接层的局限性 三.卷积层 3.1 如何进行卷积运算? 3.2 偏置 3.3 填充 3.4 步长 3.5 卷积运算是如何保留图片特征的? 3.6 三维卷积 ...

  4. 毕业设计 - 题目:基于深度学习卷积神经网络的花卉识别 - 深度学习 机器视觉

    文章目录 0 前言 1 项目背景 2 花卉识别的基本原理 3 算法实现 3.1 预处理 3.2 特征提取和选择 3.3 分类器设计和决策 3.4 卷积神经网络基本原理 4 算法实现 4.1 花卉图像数 ...

  5. 深度学习——卷积神经网络的应用——目标检测

    一.理论部分介绍 1. 目标定位和特征点检测 图片检测问题: 分类问题:判断图中是否为汽车: 目标定位:判断是否为汽车,并确定具体位置: 目标检测:检测不同物体并定位. 目标分类和定位: 对于目标定位 ...

  6. 深度学习-卷积神经网络初识-1

    卷积神经网络 技交部 潘震宇 一.计算机视觉 在计算机视觉领域中,存在着许多问题,各类领域基本都包含着这俩种基础问题: 1. 图像分类 2. 目标检测 除上述之外,最近有一种新颖的技术,也出现在大众的 ...

  7. 毕业设计 - 题目:基于机器视觉opencv的手势检测 手势识别 算法 - 深度学习 卷积神经网络 opencv python

    文章目录 1 简介 2 传统机器视觉的手势检测 2.1 轮廓检测法 2.2 算法结果 2.3 整体代码实现 2.3.1 算法流程 3 深度学习方法做手势识别 3.1 经典的卷积神经网络 3.2 YOL ...

  8. 深度学习卷积神经网络学习小结2

    简介 经过大约两周左右的学习,对深度学习有了一个初步的了解,最近的任务主要是精读深度学习方向的文献,由于搭建caffe平台失败而且比较耗费时间就没有再尝试,所以并没有做实践方面的工作,本文只介绍了阅读 ...

  9. 2020-12-09 深度学习 卷积神经网络结构分析

    1. 结构总览 首先我们分析下传统神经网络对于图片的处理,如果还是用CIFAR-10上的图片,共3072个特征,如果普通网络结构输入那么第一层的每一个神经单元都会有3072个权重,如果更大的像素的图片 ...

最新文章

  1. vs mfc数据与控件绑定错了_如何进行数据趋势分析?VS扩展工具——C1迷你图控件了解一下...
  2. OpenGL坐标系转化之投影坐标系
  3. Lake Counting POJ - 2386
  4. Python学习(三)基础
  5. 【MFC系列-第33天】链接控件自绘技术
  6. skywalking使用方法_基于SkyWalking的监控系统安装与使用教程 PDF 下载
  7. 浅谈OpenCL之Platform API(2)
  8. vue框架:变更页面background背景颜色 - 代码篇
  9. 【codevs2455】繁忙的都市
  10. MYSQL中什么是规范化_数据库设计 - 什么是规范化(或规范化)?
  11. php.net对称压缩解压缩探讨
  12. 计算机毕业设计Java在线小说系统(源码+系统+mysql数据库+Lw文档)
  13. Asp.net 2.0在Windows 2003 Server 上配置Microsoft Excel、Microsoft Word应用程序权限时 error: 8000401a 的解决方法!...
  14. oozie中管理datax脚本方法实践
  15. 分析与提取QQ木马盗号技术
  16. python3计算md5_python 计算文件的md5值实例
  17. 利用Matlab解决线性规划问题并绘制特定形状的空间曲面(约束区域的绘图)
  18. 磁盘性能分析Disk
  19. 蓝魔w41原版 android 4.1固件,DX160固件Android8.1V1.04.150
  20. 多伦多计算机科学排名,Times公布的计算机和工程专业排名,多伦多大学占两大榜首,最抢眼!...

热门文章

  1. python爬取喜马拉雅音频数据
  2. .net EF 事务TransactionScope和BeginTransaction的用法
  3. Cocos2d-x 3.2键盘操控列表页的初步实现
  4. SystemUI 布局
  5. 企业营销环节应用RPA的三大典型场景
  6. 一招教你如何在简历上突出工作经验!(干货)
  7. Inconsistency detected. Invalid view holder adapter positionVH
  8. linux的xshell怎么保存密码,Xshell保存账号密码方法
  9. Docker容器无法解析域名
  10. laravel集合函数-pluck()