深度学习综述之分类(适合深度学习面试者看)

目前图像方向,主要用深度学习进行分类,定位(回归),检测,那么她三主要区别是什么呢?
①分类:是什么?
②定位:在哪里?是什么?(单目标)
③检测:在哪里?分别是什么?(多目标)
根据不同的任务,我们会选择不同的网络进行训练。首先,分类:

①前辈且经久不衰的分类网络:GoogleNet,VGGNet,ResNet

(1)GoogleNet
成就:2014年冠军,错误率6.66%。
网络结构:用 http://ethereon.github.io/netscope/#/editor 可视化网络结构,便于直观看清数据流向。使用方法:先将网络(.prototxt文件,基于caffe的)复制到左边的黑框中,然后enter+shift
*网络特点:***1,GoogleNet之前的网络基本都是卷积采样的交替,进行特征提取,而GoogleNet最大的特点,该作者用到了模块化思想,既出现了inception model。该思想高效的利用了网络内部的计算能力,在保证计算消耗稳定不变的情况下提升了网络的深度和宽度。下图是两种inception mode的结构。
深度学习综述之分类(适合深度学习面试者看)_第1张图片 深度学习综述之分类(适合深度学习面试者看)_第2张图片
整个GoogleNet网络有多个Inception模型,从上面的结构图中,可以看到,每个Inception模型其实也是一个小网络,每个小网络有3~4个分支,每个分支下1~5层不等。每个分支的卷积核大小各异,这样就是增加了网络对尺度的适应性。这样不仅增加了这个网络的深度还增加了这个网络的宽度,也就是增加了每层对特征的收集能力,最后合并各个分支,相当于将各个分支对特征提取的整合。在GoogleNet中,Inception模型是通过concat层将各个不同尺度特征图整合在一起的,Concat层的作用就是将多个特征图按照在channel或num维度上进行拼接,但是没有eltwise层的运算操作。
深度学习综述之分类(适合深度学习面试者看)_第3张图片
比如上图中的(a)(b),如果上层的输出为28*28*192,则
输出的feature map 的大小,对于(a)有:28*28*64+28*28*128+28*28*32+28*28*192=28*28*416
对于(b)有:28*28*64+28*28*128+28*28*32+28*28*32=28*28*256
需要学习的weights大小,对于(a)有:
1*1*192*64+3*3*192*128+5*5*192*32=387072
对于(b)有:1*1*192*64+(1*1*192*96+3*3*96*128)+(1*1*192*16+5*5*16*32)+1*1*192*32=163328
这就是1*1卷积的魅力,1*1卷积的加入,从直观来看,增加了网络的深度和宽度,增加网络复杂度,便于对特征提取。其次,1*1卷积只有一个参数,但却完成了一次非线性映射,以最小代价完成一次非线性映射,便于对特征收集,并且,通过控制1*1卷积核通道数量,达到降维的目的。
这种思想,常见于后续网络模型的结构中。比如17年的SENet。
但是,inception model 也存在一种问题:网络的超参数设定的针对性较强,对不同数据集的适应性有差异。这是后续需要改进的地方。
2,多个loss值输出。
一般的分类网络在最后一层只有一个loss输出,然后根据那一个loss输出值,反向传播更新参数。而GoogleNet整个结构中有3个loss输出,然后给每个loss分配一个权重,最终结合这3个loss进行权重更新。
这种结构设计的好处:GoogleNet除了最后一层具有一个loss输出之外,在全面不同层次之间也添加了两个辅助loss。这样不仅能解决梯度消失问题,还能通过控制每个loss的权重,人为的突出或者抑制一些特征。这种思想在分类网络中不常用,因为在分类网络中,解决梯度消失问题,人们常用ResNet的思想。但是在检测中,这种思想是常见的,比YOLO的结构,就有坐标预测的损失值,类别预测的损失值等。
3,在全连接层之前,使用Dropout,随机抑制一些神经元节点,减少计算量。
常用与分类模型的训练。
注释:在后续新网络的学习中,主要也是学习人家网络新颖的地方,然后在后续应用中,创造自己的网络。
(2)VGGNet
成就:2014年亚军,错误率7.3%左右。
感觉VGGNet就是加深版的AlexNet,之前都是卷积与池化的叠加,采用的是一种堆叠网络的模式。最后再加两层全连接,然后softmax输出。与之不同之处,在于使用更小的filter,全网络所有卷积层的卷积核均采用3*3大小的卷积核。
常用与分类模型的训练。并且,在检测里面常用的SSD,前面对图像特征提取就是采用的VGG。
(3)ResNet
成就:2015年冠军,错误率3.57%左右。实现极深网络的训练,在深度学习中是一个里程碑式的突破。
网络特点:shortcut,叫残差网络。
深度学习综述之分类(适合深度学习面试者看)_第4张图片
这种残差网络的目的,就是在网络因为加深层次的同时,防止梯度消失的。
这种思想的提出,后续出现的深层网络大多采用了。比如17年的SENet,检测里面常用的yolo。
(4)ResNet的升级版:ResNeXt 2017CVPR上的论文
贡献:增加准确率的同时基本不改变或降低模型的复杂度。
深度学习综述之分类(适合深度学习面试者看)_第5张图片
ResNet的小姨子们:
深度学习综述之分类(适合深度学习面试者看)_第6张图片
(5)SENet
成就: ImageNet 2017 竞赛 Image Classification 任务的冠军。
网络特点:
深度学习综述之分类(适合深度学习面试者看)_第7张图片
1,模块化,类似GoogleNet.
2,残差网络,类似ResNet。
3,在大多数卷积之后,激活之前,加了NB操作。

你可能感兴趣的:(深度学习)