Deep Convolutional Neural Networks for Image Classification: A Comprehensive Review(论文解读)

版权声明:本文为博主原创文章,未经博主允许不得转载。 https://blog.csdn.net/Enjoy_endless/article/details/87939887

这是一篇关于图像处理(分类方向)的卷积神经网络发展的一个综述,聚焦于CNN在图像分类方向的应用,文章分析了:(1)他们早期的成功,(2)他们在深度学习复兴中的角色,(3)选择了象征性的工作成果,以及(4)通过回顾300多种出版物的贡献和挑战所带来的改进。 我们还介绍了他们目前的一些趋势和仍存在的挑战。

本综述面向那些想要了解CNN技术和体系结构发展的人,从他们的前辈到现代最先进的深度学习系统,特别是对于图像分类。 它还对其未来提出了简要的见解,并提供了一些有趣的即将发生的方向,使其适合该领域的研究人员。

论文对于相关技术细节、原理、优缺点等总结论述非常详尽、完整,非常适合学习并不断回顾;尤其是对于相关技术方向的未来发展,提了非常具有指引性的价值,值得慢慢品味。

1介绍

图像分类是计算机视觉任务的基础,如定位、检测、分割等等;

传统方法:双阶段方法,手工制作的特征使用特征描述符从图像中提取出来的,并且这些特征描述符用作可训练分类器的输入。

最近发展:深度学习模型利用多层非线性信息处理,GPUs,
大规模数据集,更好的算法,max pooling,ImageNet Large Scale Visual Recognition Challenge (ILSVRC) 2012
DCNN:1)网络结构2)非线性激活函数3)监督组件4)规则化机制5)优化技术

总共分为7个部分第一个部分就是本部分的简单介绍;第二部分简单介绍CNN及其架构的各个关键部件;第三个部分介绍CNN的发展,包括反向传播、最大池化、MNIST数据集等;第四部分介绍DCNN在深度学习复兴中扮演的角色集发展中取得的显著工作成果;第五部分对于DCNN各个方面改进的尝试,包括网络结构、非线激活函数、监督部件、规则化机制、优化技术、计算复杂度等;第六部分总结仍然存在的挑战及未来趋势。

2 CNN架构在这里插入图片描述

前向传播:卷积、池化、全连接
2.1 卷积层
特征提取,输入图像x,卷积滤波器Wk,及激活函数f:sigmoid、双曲正切、ReLus;

2.2 池化层
减少特征图的空间分辨率,从而实现输入失真和平移的空间不变性。
平均、最大池化

2.3 全连接层
解释特征表示并执行高级推理的功能。Softmax、SVM、
计算量较大,比较不同分类器的性能仍需要进一步的研究。

2.4训练
反向传播,过拟合,通过正则化来缓解。

3 CNN发展

3.1 启发于神经科学
人工神经网络,进化算法和细胞自动机到CNN。
视觉上包含了具有局部接受领域的简单细胞,以及对移位或扭曲输入不变的复杂细胞,以分层方式排列。

3.2 反向传播应用于CNNs
关键的区别在于他们使用反向传播以完全监督的方式进行训练,这与他们的前任所使用的无监督强化方案形成对比。 这使得他们更加依赖于自动学习而不是手工设计的特征提取预处理。

3.3 MNIST数据集
在这里插入图片描述
Modified National Institute of Standards and Technology (MNIST) data set of 70,000 handwritten digits,相对于传统ANNs,CNNs需要较少的自由参数(权重共享),且考虑输入数据的空间拓扑,允许处理二维形状可变性。

4 DCNNs深度学习的复兴

4.1 复兴的背景
使用基于能量的模型(Using an energy-based model)来提取稀疏特征,其具有包括分类和分割的若干应用,然后使用结果输出来初始化DCNN的第一层,
编码器询问 interrogated 输入图像并计算图像的代码矢量,然后通过非线性稀疏逻辑模块将其转换为稀疏代码矢量。 计算输入图像的恢复版本的解码器对稀疏代码矢量进行解密,并且其输出用于初始化CNN的第一层权重。

4.2 GPUs及改进的算法
4.2.1无监督预训练
使用类似DCNN的架构,以无人监督的方式训练,以学习局部稀疏特征,这些特征对于小的移位和失真是局部不变的,方法引入了最大池化。虽然早期成功,DCNN仍然不能进行大规模的提升和分析;这仍然是一个开放的研究领域。
考虑小孩如何学习周围的环境,如何学习辨别和分类目标,使用半监督或弱监督的方式。
4.2.2 GPUS的应用
人们期望即将到来的硬件和软件进展将集中在将DCNN部署到移动设备上。
4.2.3 max pooling提高泛化能力
与子采样操作相比,最大池化操作是极其优越的,可以获得与图像相关的差异,并且可以改善泛化和更快的收敛。

4.3计算机视觉任务中DCNN应用的变革点
应用:图像和目标分类识别、面部检测、图像分割、场景解析、自动驾驶、手势识别;
在这里插入图片描述
激活函数的尝试:sigmoid、双曲正切、ReLU,训练更快
利用双GPU平行训练;
引入防止过拟合的规则化技术Dropout:以0.5概率随机舍弃隐藏神经元;
数据扩充:通过对训练图像应用平移和水平反射,改变其颜色通道的强度,以及在像素值上执行主要成分分析(PCA)来创建更多图像,从而提高了分类性能。
在这里插入图片描述
4.4 代表性的改进
ImageNet Large Scale Visual Recognition Competition (ILSVRC)
使用
多层反卷积网络
可视化特征提取层;
GoogleNet:Inception model,22 层,
Hebbian原则:精确表达就是如果两个神经元常常同时产生动作电位,或者说同时激动(fire),这两个神经元之间的连接就会变强,反之则变弱;就是把全连接的网络变为稀疏连接(卷积层其实就是一个稀疏连接),当某个数据集的分布可以用一个稀疏网络表达的时候就可以通过分析某些激活值的相关性,将相关度高的神经元聚合,来获得一个稀疏的表示。

1*1卷积核作用:1x1的卷积核由于大小只有1x1,所以并不需要考虑像素跟周边像素的关系,它主要用于调节通道数,对不同的通道上的像素点进行线性组合,然后进行非线性化操作,可以完成升维和降维的功能。原有通道数分别与卷积核数线性组合,最终通道数变为现有卷积核的数量,从而实现降升维度。相当于利用卷积核在特征图的通道数上进行卷积,压缩通道数二次提取特征。实现了跨通道的信息组合,并增加了非线性特征 ,可以在保持feature map尺度不变的(即不损失分辨率)的前提下大幅增加非线性特性(利用后接的非线性激活函数),把网络做的很deep,增加非线性特性。

Inception 结构的主要思路是怎样用密集成分来近似最优的局部稀疏结构。
(1)采用不同大小的卷积核意味着不同大小的感受野,最后拼接意味着不同尺度特征的融合
(2)之所以卷积核大小采用1、3和5,主要是为了方便对齐。设定卷积步长stride=1之后,只要分别设定pad=0、1、2,那么卷积之后便可以得到相同维度的特征,然后这些特征就可以直接拼接在一起了;
(3)文章说很多地方都表明pooling挺有效,所以Inception里面也嵌入了。
(4)网络越到后面,特征越抽象,而且每个特征所涉及的感受野也更大了,因此随着层数的增加,3x3和5x5卷积的比例也要增加

Residual网络:152层,参考前面的图层输入而不是学习未引用的函数来学习残差函数,
在这里插入图片描述
在这里插入图片描述

5 深入的进一步改进和最新进展

关于网络结构的进一步尝试:非线性激活函数,监督组件,正则化机制,优化技术和DCNN的更快速处理

5.1网络结构

5.1.1卷积层
5.1.1.1网络中的网络

利用多层感知机代替传统的线性卷积滤波(更适合学习线性的潜在特征)
这些MLP卷积层比标准卷积层更好地模拟局部图像块。
结合全局平均池化替代全连接层;

5.1.1.2 Inception 及其改进
使用11的降维滤波,一个55的替换为2层3*3的;加快训练速度;
在这里插入图片描述
5.1.1.3双重卷积
学习滤波器集群P26
5.1.1.4分析和展望
卷积滤波更适合产生线性模型而对于抽象特征(非线性)的是一个挑战;
提出了NIN(网络中的网络)、 double convolution 、tiled convolution 、 dilated convolution,。

5.1.2 池化层

他们概括了相同内核映射中相邻神经元的响应,从而减少了输入表示的维数。显着地,它们为DCNN提供了它们的空间不变性。除了平均、最大池化之外,介绍其他池化方法:

5.1.2.1 Lp池化
5.1.2.2 随机和部分最大化
5.1.2.3 混合池化
5.1.2.4 混合、门、三重池化
5.1.2.5 频域池化
5.1.2.6 空间金字塔池化
5.1.2.7 多尺度无序池化
5.1.2.8 转换不变池化
5.1.2.9 分析和展望

池化技术极大减少了计算代价,除了最初通用的平均、最大池化之外,还提出了以上一系列新的池化技术,然而不同的池化技术各有其优缺点,并没有总结出一个通用的策略。未来的集合创新应该集中在协调这些相互冲突的要求,同时不要忽视对它们在生物学上可以想象的需要,以便我们能够改进我们的模型并更多地了解我们当前的视觉系统

5.2 非线性激活

影响训练时间和表现性能;
在这里插入图片描述
5.2.1 ReLU
传统激活函数:sigmoid: f(x)=1/(1+e^(-x))和双曲正切:f(x)=tanh(x); ReLU:f(x)=max(x,0);
5.2.2 LReLU
ReLU收敛速度快且没有梯度消失问题,然而当梯度是0的时候单元未激活,造成梯度更新算法无法更新未激活单元,则相当于梯度消失问题,所以当训练网络含有连续0值的梯度时其收敛速度变慢;
LReLU当单元未激活时允许较小的非0值,
5.2.3 PReLU
在这里插入图片描述
5.2.4 APL
5.2.5 RReLU随即修正线性单元
5.2.6 ELU
5.2.7 SReLU
5.2.8 Maxout and Probout
5.2.9 分析和展望

选择正确的非线性激活函数可以提高准确率且减少计算
Sigmoid:在反向传播期间饱和,这消除了局部梯度,并且它们在梯度下降期间对网络动态产生负面影响,因为它们的输出是非零中心的;
ReLU:加快收敛,当较大梯度在网络训练期间通过它们时,它们可能会不可逆转地消亡;
通样,对于一个特定任务我们们没有一个明确的选择,只能尝试:可以采用从ReLU开始并进行其他激活并且监测其对所需性能的短暂下降的试错方法。
对于未来的工作还是比较开放的。

5.3 监督组件

通常,通过最小化特定损失函数来实现DCNN中的学习,最常见的分类损失是softmax损失
5.3.1 softmax
非常广泛的应用于最后一个全连接层,简单、概率可解释性并结合了交叉验证损失;
在这里插入图片描述
5.3.2 对比和三重损失
为了加强类内紧凑性、类间可分性;
对比损失也叫基于边距的损失;
在这里插入图片描述
5.3.3 大边距损失
LWF数据集
:对于面部校验和识别的标准数据集
在这里插入图片描述
5.3.4 L2-SVM
SVM对于低级特征学习有限,引入新的损失函数联合SVM、MLP及CNN;

L2-SVM minimizes the squared hinge loss
在这里插入图片描述
5.3.5 分析和展望
Softmax简单,概率阐释,以及它产生的直观输出所以非常受欢迎;
尽管上面总结了创新,但softmax损失仍然是传统学术基准的明显选择,如MNIST和ImageNet,或其他任何单一输出类(标签)的任务每张图片都是必需的。对于每个图像需要多个类的实际任务,建议每个类使用多个逻辑回归作为起点。**根据任务的要求,可以探索本节中提到的其他损失的实验。**例如,细粒度分类可以通过使用耦合簇丢失而受益,而对于不受计算资源约束的面部验证或其他验证任务,三元组丢失可以产生出色的验证性能。最后,建议未来的工作应该挑战开发新的损失函数,解决DCNN的开放性问题,支持Zhao和Griffin(2016)提出的工作,同时使用其他多类SVM公式,甚至其他分类器如RBF,进一步研究LeCun提出的性能改进等。

5.4 正则化机制

输入和输出之间异常复杂的关系,许多都是由于采样噪声引起的。这导致过度拟合,这可以通过正则化来减轻。 尽管减少过度拟合的最简单且最常用的方法是数据增强,它需要更大的内存占用并且计算成本更高。
正则化技术:包括L1和L2正则化,早停止训练,随机池化,独特激活函数,模型平均,新型损失函数和软soft-weight共享,Dropout,一些可与Dropout结合使用的最新正规化开发。

5.4.1 Dropout
5.4.1.1 Fast dropout
5.4.1.2 Adaptive dropout (standout).
5.4.1.3 Multinomial dropout and evolutional dropout
5.4.1.4 Spatial dropout
5.4.1.5 Nesteddropout
5.4.1.6 Max pooling dropout
5.4.2 DropConnect
5.4.3 Recent Regularization Advances

在这里插入图片描述
5.4.4 Analysis and Outlook
规范模型的合适方法是对来自几个不同网络的结果进行平均;然而,对于大型DCNN,执行此操作所需的计算资源将是天文数字。 这导致了Dropout的呈现,它提供了一种有效地大致合并指数个DCNN的方法,这促成了许多经验性的成功,促使研究人员进一步推进该技术,并调查和减轻其不足之处。
几种dropout变体取得了有希望的实验结果,但仍需要进一步研究以牢固地建立它们。特别是,该技术可以从进一步创新中受益最多,这些创新专注于降低利用它的系统的计算成本。此外,鉴于真正的智能是高度适应性的自然,预计未来的工作将结合自适应性。Baldi和Sadowski,并进一步推动Dropout的应用,仍然需要进一步的理论分析来证明其成功的原因。特别是,它的泛化属性尚未以可接受的数学精度证明。研究尖峰或随机神经元与Dropout之间的二元性和联系。
初步结果令人鼓舞,并且鼓励采用这些方法进一步开展工作。

5.5 优化技术
5.5.1 Gradient-Based Learning
5.5.2 Enhanced Initialization Schemes
5.5.2.1 Xavier initialization
5.5.2.2 Theoretically derived adaptable initialization
5.5.2.3 Standard fixed initialization
5.5.2.4 Layer sequential unit variance initialization
5.5.2.5 Analysis and outlook

确保足够的网络初始化:可以防止梯度消失/爆炸、提升网络收敛、通过非凸损失函数来缓解训练DCNN的挑战;

选择初始化方案时要考虑的关键因素是要使用的激活函数、网络深度,这可能会因降级而妨碍分类准确性、可用的计算预算、数据集的大小以及所需的可容忍复杂性解。如果最后两个因素没有施加系统限制,则LSUV很有吸引力(参见第5.5.3.2节),而标准固定初始化仍然是较浅网络的一种流行选择(按照今天的标准)。对于极其深入的网络,可以尝试其他方案。即将开展的工作应该集中在通用初始化方案的设计上,这不仅可以加速训练时间并通过解决退化来保持准确性,而且还可以适应不同的模型,无论其深度和任务如何,无论其复杂程度如何。

5.5.3 批标准化
internal covariate shift:由于前一层中的参数变化导致的每层输入分布的变化引起的
批量归一化(BN)的技术:引入归一化步骤,应用于每个激活的非线性变换,固定了层输入的均值和方差。
在这里插入图片描述
未完待续。。

猜你喜欢

转载自blog.csdn.net/Enjoy_endless/article/details/87939887