卷积网络的平移不变性

1 什么是不变性

【不变性】就是目标发生了变换,但是你依然可以识别出来。在图像任务中,我们希望图像中的目标即使被平移、被旋转或者被缩放,模型都可以识别出来图像的目标。

所以不变性有下面几种:

平移不变性:Translation Invariance
旋转不变性:Rotation Invariance
尺度不变性:scale Invariance
光照不变性:Illumination Invariance
在图像分类任务中,平移不变性就是图像中的目标不管被移动到哪个位置,模型给出的标签应该都是相同的。

【平移不变性对应的有一个概念是平移同变性(translation equivariance),这个是用在图像的目标检测中的,如果输入图像中的目标进行了平移,那么最终检测出来的候选框应该也相应的移动,这就是同时改变。】

2 为什么有平移不变性

主要是由两个原因,一个是卷积,一个是最大池化。

【为什么卷积可以提供平移不变性】 比方说目标是在图像的左上角,经过卷积之后,目标的特征也会在特征图的左上角;目标在图像的左下角,经过相同的卷积核卷积之后,目标的特征也会在特征图的左下角。然后卷积层后面接上一个全连接层进行分类,就算目标位置改变了,但是经过相同的卷积核卷积,然后展开变成全连接层。所以对于全连接层来说,改变的之后特征的位置。可能之前目标的特征是作为全连接的第一个神经元的输入,平移目标位置之后,该特征就作为全连接的最后一个神经元的输入。

不过这种说法想体现的就是,就算目标位置变了,经过相同卷积核提取的特征该有的都有,只是位置变了。

简单地说,卷积+最大池化约等于平移不变性。

卷积:简单地说,图像经过平移,相应的特征图上的表达也是平移的。下图只是一个为了说明这个问题的例子。输入图像的左下角有一个人脸,经过卷积,人脸的特征(眼睛,鼻子)也位于特征图的左下角。假如人脸特征在图像的左上角,那么卷积后对应的特征也在特征图的左上角。 (如下两幅图所示)

在神经网络中,卷积被定义为不同位置的特征检测器,也就意味着,无论目标出现在图像中的哪个位置,它都会检测到同样的这些特征,输出同样的响应。比如人脸被移动到了图像左下角,卷积核直到移动到左下角的位置才会检测到它的特征。

在这里插入图片描述
在这里插入图片描述
池化:比如最大池化,它返回感受野中的最大值,如果最大值被移动了,但是仍然在这个感受野中,那么池化层也仍然会输出相同的最大值。这就有点平移不变的意思了。

所以这两种操作共同提供了一些平移不变性,即使图像被平移,卷积保证仍然能检测到它的特征,池化则尽可能地保持一致的表达。

【为什么池化可以提供平移不变性】 我觉得这个相比上面的解释,是有一定的道理的。最大池化层返回感受野中的最大值,如果最大值被移动了,但是仍然在这个感受野中,那么池化层也仍然会输出相同的最大值。这就有点平移不变的意思了。

在参考链接[2]中,给出了几个“池化层具有不变性”的例子:
在这里插入图片描述
可以看到,同样的数字1,原图中平移了1个像素,但是经过2*2的最大池化层之后,得到了相同的特征图。此外,最大池化层还可以根据类似的原理,得到尺度不变性和旋转不变性:
在这里插入图片描述
在这里插入图片描述
【池化层引入了平移不变性我觉得是比较靠谱的,这也是池化层的重要作用之一:为CNN引入不变性。但是怎么说呢?虽然目前听起来很有道理,在面试的时候被问起来池化层作用的时候我觉得回答上不变性也是不错的,但是下文就会讲解,池化层实际上并没有引入不变性。好像是2019年的一个论文强调了池化层并没有不变性】

3 为什么没有平移不变性

现在卷积网路的图像输入,改变一个像素就可能会得出不同的结构,所以很容易遭到对抗攻击。下面有一个形象的例子:
在这里插入图片描述
可以看出来,当平移小鸟的位置的时候,预测结果是有很大的波动的。

池化层并没有平移不变性。下面是参考链接[3]给出的一个简单的例子,这是一个一维卷积的例子,二维图像类似:
在这里插入图片描述
上图是一个没有平移的原始一位数据做了一个1*2的最大池化;
在这里插入图片描述
如果对一位数据做了一个平移,那么得到的池化结果就完全不同!这也就是为什么下采样(平均池化层,最大池化层等)没有平移不变性。

4 平移不变性的定义

说了这么多平移不变性,那么平移不变性的具体的严格的定义到底是什么呢?

定义几个数学符号。原始的输入数据为

									X

,经过下采样层变成

									D(X)

,然后再经过上采样得到

									U(D(X))

.(D是Down下采样,U是Up上采样)

【平移不变性】 如果平移之后的输入图像的下采样的上采样与原始输入图像的下采样的上采样相同,那么就是平移不变性。(中文说的太绕嘴了,数学公式清晰)

									U(D(X))=U(D(Xshift))
									Xshift

就是平移之后的输入;

举个例子:
在这里插入图片描述
这个就是

									U(D(X))

在这里插入图片描述
这个就是

									U(D(Xshift))

可以发现两者并不相等,所以并没有平移不变性。

5 如何实现平移不变性

现在使用的全局平均池化层,就是可以实现平移不变性。依然是用上面的例子:
在这里插入图片描述
可以发现,其实不管平移多少,反正得到的数值都是一样的,全局平均池化消除了位置的影响,所以实现了平移不变性。

参考链接:
[1]https://zhangting2020.github.io/2018/05/30/Transform-Invariance/

[2]https://www.zhihu.com/question/36686900

[3]https://www.jianshu.com/p/6041f3e8a583

转载于:
[1] https://cloud.tencent.com/developer/article/1661000

[2] https://codeantenna.com/a/dCn757fOJD

  • 8
    点赞
  • 38
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
深度学习善于从原始输入数据中挖掘越来越抽象的特征表示,而这些表示 具有良好的泛化能力.它克服了过去人工智能中被认为难以解决的一些问题.且随着训练数据集数量的显著增长 以及芯片处理能力的剧增,它在目标检测和计算机视觉、自然语言处理、语音识别和语义分析等领域成效卓然,因 此也促进了人工智能的发展.深度学习是包含多级非线性变换的层级机器学习方法,深层神经网络是目前的主要 形式,其神经元间的连接模式受启发于动物视觉皮层组织,而卷积神经网络则是其中一种经典而广泛应用的结构. 卷积神经网络的局部连接、权值共享及池化操作等特性使之可以有效地降低网络的复杂度,减少训练参数的数目, 使模型对平移、扭曲、缩放具有一定程度的不变性,并具有强鲁棒性和容错能力,且也易于训练和优化.基于这些优 越的特性,它在各种信号和信息处理任务中的性能优于标准的全连接神经网络.该文首先概述了卷积神经网络的 发展历史,然后分别描述了神经元模型、多层感知器的结构.接着,详细分析了卷积神经网络的结构,包括卷积层、 池化层、全连接层,它们发挥着不同的作用.然后,讨论了网中网模型、空间变换网络等改进的卷积神经网络.同时, 还分别介绍了卷积神经网络的监督学习、无监督学习训练方法以及一些常用的开源工具.此外,该文以图像分类、 人脸识别、音频检索、心电图分类及目标检测等为例,对卷积神经网络的应用作了归纳.卷积神经网络与递归神经 网络的集成是一个途径.为了给读者以尽可能多的借鉴,该文还设计并试验了不同参数及不同深度的卷积神经网 络来分析各参数间的相互关系及不同参数设置对结果的影响.最后,给出了卷积神经网络及其应用中待解决的若 干问题

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值