在我们读计算机视觉的相关论文时,经常会看到平移不变性这个词,通常观点中,大家都是普遍认为CNN是具有平移不变性的,然而近年来,有一些工作的研究对平移不变性提出了质疑,本文对一些平移不变性的理解进行记录,对于持有平移不变性的观点,和持有平移变化的观点,对该两类观点进行简单的记录,不提出相关的解决方法。
1. 什么是平移不变性?
要解释平移不变性,首先要介绍一下不变性的概念。
不变性意味着即使目标的外观发生了某种变化,但是你依然可以把它识别出来。这对图像分类来说是一种很好的特性,因为我们希望图像中目标无论是被平移,被旋转,还是被缩放,甚至是不同的光照条件、视角,都可以被成功地识别出来。
所以上面的描述就对应着各种不变性:
- 平移不变性:Translation Invariance
- 旋转/视角不变性:Ratation/Viewpoint Invariance
- 尺度不变性:Size Invariance
- 光照不变性:Illumination Invariance
平移不变性便是不变性的一种。
在欧几里得几何中,平移是一种几何变换,表示把一幅图像或一个空间中的每一个点在相同方向移动相同距离。比如对图像分类任务来说,图像中的目标不管被移动到图片的哪个位置,得到的结果(标签)应该是相同的,这就是卷积神经网络中的平移不变性。
平移不变性意味着系统产生完全相同的响应(输出),不管它的输入是如何平移的 。平移同变性(translation equivariance)意味着系统在不同位置的工作原理相同,但它的响应随着目标位置的变化而变化 。比如,实例分割任务,就需要平移同变性,目标如果被平移了,那么输出的实例掩码也应该相应地变化。最近看的FCIS这篇文章中提到,一个像素在某一个实例中可能是前景,但是在相邻的一个实例中可能就是背景了,也就是说,同一个像素在不同的相对位置,具有不同的语义,对应着不同的响应,这说的也是平移同变性。
2. 观点1:卷积神经网络具有平移不变性
传统观点,例如CNN的一系列经典工作中,包括现在主流的工作,都是在该基础观点下进行的。那为什么会认为卷积神经网络具有平移不变性呢?简单的回答,就是卷积+最大池化等于平移不变性。
卷积:简单地说,图像经过平移,相应的特征图上的表达也是平移的。下图只是一个为了说明这个问题的例子。输入图像的左下角有一个人脸,经过卷积,人脸的特征(眼睛,鼻子)也位于特征图的左下角。
假如人脸特征在图像的左上角,那么卷积后对应的特征也在特征图的左上角。
在神经网络中,卷积被定义为不同位置的特征检测器,也就意味着,无论目标出现在图像中的哪个位置,它都会检测到同样的这些特征,输出同样的响应。比如人脸被移动到了图像左下角,卷积核直到移动到左下角的位置才会检测到它的特征。
池化:比如最大池化,它返回感受野中的最大值,如果最大值被移动了,但是仍然在这个感受野中,那么池化层也仍然会输出相同的最大值。这就有点平移不变的意思了。
所以这两种操作共同提供了一些平移不变性,即使图像被平移,卷积保证仍然能检测到它的特征,池化则尽可能地保持一致的表达。
从概念来理解的话,卷积层+池化层的操作,使得模型具有平移不变性的观点似乎是可以站得住脚的,也是主流进行研究的理论支点。但近年来的工作,使平移不变性这观点产生了程度不一的动摇,本人也是对平移不变性观点持保留意见的,下面详细介绍一篇不具有平移不变性的工作。
3. 观点2:卷积神经网络不具有平移不变性
论文地址:arxiv.org/pdf/1805.12177.pdf
希伯来大学的Aharon Azulay和Yair Weiss近期发表的Why do deep convolutional networks generalize so poorly to small image transformations? 这篇文章发现当小尺寸图像发生平移后,CNN会出现识别错误的现象,而且这一现象是普遍的。
摘要
通常我们认为深度CNN对图像的平移、形变具有不变性,但本文却揭示了这样一个现实:当图像在当前平面上平移几个像素后,(1)现代CNN(如VGG16、ResNet50和InceptionResNetV2)的输出会发生巨大改变,而且图像越小,网络的识别性能越差;(2)同时,网络的深度也会影响它的错误率。
论文通过研究表明,产生这个现象的主因是(1)现代CNN体系结构没有遵循经典采样定理,无法保证通用性,而且(2)常用图像数据集的统计偏差也会使CNN无法学会其中的平移不变性。综上所述,CNN在物体识别上的泛化能力还比不上人类。
NN的失误
深度卷积神经网络(CNN)对计算机视觉带来的革新是天翻地覆的,尤其是在物体识别领域。和其他机器学习算法一样,CNN成功的关键在于归纳偏差的方法,不同架构的选择影响着偏差的具体计算方式。在CNN中,卷积和池化这两个关键操作是由图像不变性驱动的,这意味如果我们对图像做位移、缩放、变形等操作,它们对网络提取特征没有影响。
但事实真的如此吗?
在上图中,左侧图像是模型的输入,右侧折线图是模型评分,使用的模型是InceptionResNet-V2 CNN。可以发现,作者在这里分别对图像做了平移、放大和微小形变。在最上方的输入中,他们只是将图像从左到右依次下移了一像素,就使模型评分出现了剧烈的波动;在中间的输入中,图像被依次放大,模型的评分也经历了直线下降和直线上升;而对于最下方的输入,这三张图是从BBC纪录片中选取的连续帧,它们在人类眼中是北极熊的自然运动姿态,但在CNN“眼中”却很不一样,模型评分同样遭遇“滑铁卢”。
为了找出导致CNN失误的特征,他们又从ImageNet验证集中随机选择了200幅图像,并把它们嵌入较大的图像中做系统性平移,由图像平移导致的空白区域已经用程序修补过了,在这个基础上,他们测试了VGG16、ResNet50和InceptionResNetV2三个现代CNN模型的评分,结果如下:
图A的纵坐标是200张图像,它用颜色深浅表示模型识别结果的好坏,其中非黑色彩表示模型存在能对转变后的图像正确分类的概率,全黑则表示完全无法正确分类。通过观察颜色变化我们可以发现,无论是VGG16、ResNet50还是InceptionResNetV2,它们在许多图片上都显示出了由浅到深的突然转变。
论文作者在这里引入了一种名为jaggedness的量化标准:模型预测准确率top-5类别中的图像,经历一次一像素平移就导致分类错误(也可以是准确率低一下子变成准确率高)。他们发现平移会大幅影响输出的图片占比28%。而如图B所示,相对于VGG16,ResNet50和InceptionResNetV2因为网络更深,它们的“jaggedness”水平更高。
那么,这是为什么呢?
对采样定理的忽略
CNN的上述失误是令人费解的。因为从直观上来看,如果网络中的所有层都是卷积的,那当网络对图像编码时,所有表征应该也都跟着一起被编码了。这些特征被池化层逐级筛选,最后提取出用于分类决策的终极特征,理论上来说,这些特征相对被编码的表征应该是不变的。所以问题在哪儿?
这篇论文提出的一个关键思想是CNN存在采样缺陷。现代CNN中普遍包含二次采样(subsampling)操作,它是我们常说的降采样层,也就是池化层、stride。它的本意是为了提高图像的平移不变性,同时减少参数,但它在平移性上的表现真的很一般。之前Simoncelli等人已经在论文Shiftable multiscale transforms中验证了二次采样在平移不变性上的失败,他们在文中说:
我们不能简单地把系统中的平移不变性寄希望于卷积和二次采样,输入信号的平移不意味着变换系数的简单平移,除非这个平移是每个二次采样因子的倍数。
考虑到现在CNN通常包含很多池化层,它们的二次采样因子会非常大,以InceptionResnetV2为例,这个模型的二次采样因子是45,所以它保证精确平移不变性的概率有多大?只有 。
鉴于精确平移不变性的实现难度过大,Simoncelli等人也提出了一种折衷方法:移位性(shiftability)。只要能证明特征信号是可移位的(shiftable),我们就可以假装平移不变性是成立的。下面是它的简单数学推理:
定义1
我们设r(x)是模型在图像x处获得的特征信号,如果把图像平移后,模型获得的还是同样的特征信号,那我们就称这个信号是“卷积”的。注意一点,这个定义已经包含输入图像进入filter提取特征信号等其他线性操作,但不包括二次采样和其他非线性操作。
论点
如果 是卷积的,那么全局池化后得到的特征信号 应该具有平移不变性。
证明
以下论据来自之前我们对“卷积”的定义。如果 是图像 处的特征信号,而 是同一图像平移后的特征信号,那么 成立,因为两者是平移前后的特征信号,是不变的。
定义2
对于特征信号 和二次采样因子 ,如果信号中 处的任意输出 是采样网格的线性插值:
那么我们就可以认为 是“可移位的”。因为参照之前图像位移的说法,既然采样后信号具有平移不变性,那原信号载体就是可以移动的。其中 是二次采样因子s采样网格上的信号, 是从采样中重建的 基函数。
经典Shannon-Nyquist定理告诉我们,当且仅当采样频率是 最高频率的两倍时, 才可以位移。
论点
如果 可以移位,那么采样网格全局池化后得到的最终特征信号 应该具有平移不变性。
证明
采样网格上的全局池化其实就相当于所有 的全局池化:
其中, 和 与 无关。
而现代CNN的二次采样忽视了以上这些内容,所以平移不变性是难以保证的。
为什么CNN不能从数据中学习平移不变性?
虽然上一节论证了CNN在架构上就无法保证平移不变性,但为什么它就不能从大量数据里学到不变性呢?事实上,它确实能从数据中学到部分不变性,那么问题还出在哪儿?
论文的观点是数据集里的图像自带“摄影师偏差”,很可惜论文作者做出的解释很糟糕,一会儿讲分布,一会儿讲数据增强,非常没有说服力。但是这个观点确实值得关注,心理学领域曾有过关于“摄影师偏差”对人类视角影响的研究,虽然缺乏数据集论证,但很多人相信,同样的影响也发生在计算机视觉中。
这里我们引用Azulay和Weiss的两个更有说服力的点:
- CIFAR-10和ImageNet的图片存在大量“摄影师偏差”,这使得神经网络无需学会真实的平移不变性。宏观来看,只要不是像素级别的编码,世界上就不存在两张完全一样的图像,所以神经网络是无法学到严格的平移不变性的,也不需要学。
- 例如近几年提出的群卷积,它包含的filter数量比其他不变性架构更少,但代价是filter里参数更多,模型也更不灵活。如果数据集里存在“摄影师偏差”,那现有不变性架构里的参数是无法描述完整情况的,它们只会获得一个“模糊”的结果,而且缺乏灵活性,性能自然也比非不变性架构要差不少。
小结
虽然CNN在物体识别上已经取得了“超人”的成果,但这篇论文也算是个提醒:我们还不能对它过分自信,也不能对自己过分自信。随着技术发展越来越完善,文章中提及的这几个本质上的问题也变得越来越难以蒙混过关。
或许由它我们能引出一个更有趣的问题,如果人类尚且难以摆脱由视觉偏差带来的认知影响,那人类制造的系统、机器该如何超越人类意识,去了解真实世界。
对于该篇工作提出的摄影师偏差,个人理解是摄影师的拍摄角度喜爱等情况,针对实际的应用场景,相机可以根据实际需求进行放置,如果神经网络对于不同的偏差进行的精度测试是有限的,则它将难以在现有的实际场景中部署,针对该问题自己也有所研究,希望后续有机会能够针对该问题进行一些观点的陈述。