其他分享
首页 > 其他分享> > CNN的典型特性

CNN的典型特性

作者:互联网

以下文章摘录自:

《机器学习观止——核心原理与实践》

京东: https://item.jd.com/13166960.html

当当:http://product.dangdang.com/29218274.html

(由于博客系统问题,部分公式、图片和格式有可能存在显示问题,请参阅原书了解详情)

 

1.1        CNN的典型特性

除了前面小节所阐述的典型特征以外,我们还应该关心卷积神经网络的如下特征,以保证模型的鲁棒性:

l  位移不变性

l  尺寸不变性

l  旋转不变性

等等

1.1.1        CNN位移不变性

位移不变性很好理解,它指的是无论物体在图像中的什么位置,卷积神经网络的识别结果都应该是一样的。

例如下面这两张输入图像中的cat:

图  位移不变性

 

上图左侧中的猫在图像中的位置偏右,而右侧中的猫在图像中的位置偏左——如果物体在图像中所处的位置,对于模型的预测结果不会产生任何影响,那么我们就可以说它具备了位移不变性。

那么神经网络是否具备这一关键的特性呢?

我们先来分析一下一个普通的神经网络中的情况。如下图所示:

图  一个全连接神经网络范例——SimpleNet1

 

在上图所描述的神经网络中,输入层有25个节点,拥有若干中间隐藏层,且各层之间都采用全连接的方式来组建,最终输出层的节点数量则是两个。

我们假设需要训练上述模型来识别一个十字的形状,如下图所示是它的training set中几个元素的直观展示:

图  全连接网络训练数据集直观展示

 

那么基于SimpleNet1,结合这一数据集训练出来的网络,事实上只学习到了第一排第2个,第二排前3个以及第三排第2个节点的权重。换句话说,如果我在测试时抛出有异于样本1所在位置的任何一个十字形状,它都将无法预测准确:

图  SimpleNet1不具备位移不变性

 

有什么解决的办法呢?

其中一种潜在的解决方案就是增加训练数据集——因为理论上只要神经网络模型学习到了各种可能出现的情况,那么就不容易犯错误了。不过显然这是相对低效的一种做法,而且我们也不可能穷举所有情况。

我们再换个角度来思考上述问题:实际上问题的焦点就在于:有没有办法将SimpleNet1在某个位置学习到的特征也可以被应用到图像的其它位置呢?

聪明的你肯定已经猜到了——这其实就是卷积神经网络的做法了。因为CNN就是利用一个kernel在整张图像上不断步进来完成卷积操作的,而且在这个过程中kernel的参数是共享的。换句话说,它其实就是拿了同一张“通缉令”在“全国范围”内查找“嫌疑犯”,这样一来理论上就具备了位移不变性了(当然,受限于步进跨度、卷积核大小等因素的影响,某些条件下CNN也可能会存在“漏”的情况)。

值得一提的是,目前的卷积神经网络似乎还没有“空间整体”的概念(注意,这并不是绝对的,因为CNN的特征是具有层级性质的,所以高层特征理论上有可能会带有全局信息,从而在一定程度上保障“空间关系”),这在某些场合下有一定概率会出现问题。比如下面的范例:

图  CNN缺乏“空间整体”理解

 

CNN会将上述两个图都判定为face——这是因为组成face的各个部件确实都在图像中出现了,只不过它们的排列是混乱的。但对于人类来说,这样的预测结果显然是比较“滑稽可笑”的,或者说无法接受的。

图 Capsule Network的预测结果

 

关于CNN的这个问题,最新的Capsule Network据说可以给出有效的解决办法。感兴趣的读者可以查找相关资料做进一步的学习。

1.1.2        CNN尺度不变性

尺度不变性,简单来讲就是指物体在被测试图像中的尺寸大小原则上不会影响模型的预测结果,如下示意图所示:

图  物体在图像中的尺寸大小差异

 

如果模型具备尺度不变性,那么理论上它针对上述3个图像给出的预测结果都应该是cat(假设输出结果不区分具体的猫的品种)。

在机器学习中,尺度不变性是不少算法模型想要解决的问题。例如我们前面章节中重点讲解过的SIFT的全称是“Scale-invariant feature transform”(尺度不变特征转换),其中的尺度不变就是它的一个最重要的特征。

图  SIFT算法

 

那么CNN是否也具备这个特性呢?

理论上来说,单一层级的卷积神经网络并不具备尺度不变性。举个例子来说,对于同一种形状特征(例如弧线),特征尺寸和可以检测它的卷积核的大小理论上是成正比的。

图  特征尺寸不同时的直观表现

 

反观卷积神经网络,它的kernel size做为超参数是固定大小的,并不会动态调节(即便可以动态调节也没有意义,因为我们不知道目标尺寸究竟有多大)。

不过这并不代表CNN不能够应对尺度的变化。

这是因为大尺寸的特征是可以由若干小尺寸的特征“拼起来”的。

图  不同尺度特征的“拼凑”关系

 

例如上图所示的范例中,十字特征的尺度是3*3大小,而我们的卷积核只有2*2。虽然理论上卷积核的尺寸并不能一次性匹配十字特征,但通过卷积核1、2、3…等小尺寸的“拼接”,一样可以做到十字特征的准确“匹配”。

根据我们在前面章节的学习可知,通过小尺寸filter的堆叠来达到同样的效果,实际上比直接用大尺寸filter更节省参数数量,所以可以看到现在各个主流的神经网络框架中用的filter size普遍都不大(或者小尺寸filter占比高)。当然,这也并不代表大尺寸的filter“一无事处”。如果某些情况下大尺寸的filter刚好可以匹配到特征,那么此时它的效率要高于小尺寸的堆叠。正是基于这样的考虑,有些神经网络框架会选择“大小通吃”的策略来选择卷积核,比如著名的inception model。

图  inception module

 

所以简单来说,卷积神经网络就是通过“大”和“小”卷积核的搭配和层叠,来满足图像识别中的尺度不变性的要求,同时降低参数数量的。

1.1.3        CNN旋转不变性

旋转不变性,简单来讲是指物体的旋转角度不会影响模型的预测结果。

如下示意图所示:

图  旋转不变性图示

 

我们来思考一下,CNN卷积神经网络是否具备旋转不变性呢?

仔细观察卷积神经网络的各个核心组成元素(即卷积核、池化、全连接等)以及它们的工作原理,我们可以得出初步的结论——从算法层面来讲,卷积神经网络理论上并不具备旋转不变性,或者说它并没有针对这一特性做什么特殊的设计。

不过从业界的很多实践结果来看,CNN对于不同旋转角度的样本的预测精度并不是没有任何保障。如下图所示:

图  在较严苛的情况下,CNN仍然可以应对一些旋转情况

 

我们认为出现这种结果的主要原因有两个:

(1) 池化层的“顺带”作用

我们知道,max pooling是针对数据在一定范围内取它们的最大值,比如下面所示的是2*2空间大小的操作范例:

图  max pooling范例

 

这种操作过程“顺带”赋予了CNN一个关键能力——即物体在旋转一定的小角度后,有某些概率下得到的结果值不会产生变化,从而让它似乎“具备”了旋转不变性。

从上述的描述中我们也可以看到,CNN的这种旋转不变性其实是“不可靠”的,带有一定的随机性质。

 

(2) 数据增强起到了作用

正因为算法层面对于旋转不变性没有特殊的设计,所以我们在应用卷积神经网络时更要重视这一问题。一种典型的办法就是采用数据增强,以“人为构造数据的方式”提升训练出来的模型在应对“旋转”问题时的鲁棒性。

如下示意图所示:

图  数据增强(旋转)

 

数据增强在深度神经网络中的重要性是毋庸置疑的,大家还可以参考本书其它章节来做更完整的学习。

1.1.4        CNN视角不变性

视角(viewpoint)不变性,简单来讲就是无论从何种角度去观察物体,都不会影响模型的预测结果。如下示意图所示:

图   “自由女神像”的不同视角

 

以上面的范例来说,不论我们从哪个视角来观察这几张照片,其实都不会改变它是“自由女神像”这一预测结果——如果模型具备了这一能力,我们就称之为视角不变性。

和前述的旋转不变性类似,CNN本身的“配备”中也并没有针对视角不变性问题给出答案。换句话说,大家在训练CNN模型时采用的数据增强手段,不光要考虑样本的旋转,同时还需给出不同视角的物体描述(如果适用的话)。

只有我们深入理解了CNN所具备的原生特性,才能够真正做到“取其长,且补其短”,从而设计并训练出满足要求的高精度模型。

 

标签:典型,卷积,特性,旋转,神经网络,尺寸,CNN,不变性
来源: https://blog.csdn.net/uiop78uiop78/article/details/116107256