【CS231n】九、CNN架构学习笔记

1、需要学习的一些结构
【CS231n】九、CNN架构学习笔记


2、奠基性的结构——LeNet-5
LeCun在90年代,用于手写数字分类。其数据集MNIST,是深度学习常用的入门训练数据。 MNIST数据集的官网是 Yann LeCun's website

【CS231n】九、CNN架构学习笔记


3、AlexNet
(1)背景介绍
2012年ImageNet冠军,Hinton的学生,这个事件影响巨大。

(2)基本框架
【CS231n】九、CNN架构学习笔记
基本框架和LeNet-5没有本质性差别,有更深的层,同时分为上下两块的原因是由于当时的显卡显存限制。

(3)参数分析
输入层(image):227*227*3
第一层(CONV 1):96个 11*11filters。 步长(stride)为4。 输出(227-11)/4+1=55,55*55*96。 参数 11*11*3*96=35k
第二层(POOL 1):3*3的filer,步长为2。 输出(55-3)/2+1=27,27*27*96。不需要参数。

【CS231n】九、CNN架构学习笔记

(4)一些特征:
【CS231n】九、CNN架构学习笔记


4、VGGNet
(1)背景:
2014年ImageNet第二。Oxford出品。
(2)基本框架:
【CS231n】九、CNN架构学习笔记

(3)参数分析:
【CS231n】九、CNN架构学习笔记

VGG19比16有更深的层数,更多的参数,能取得略微提高的性能,正常较多用VGG16。


5、GoogLeNet
(1)背景:
2014年冠军。
(2)基本框架:
【CS231n】九、CNN架构学习笔记
最为突出的特点是由Inception 结构。

(3)Inception Module:
想要设计一种 优秀的 局部网络拓扑结构。
【CS231n】九、CNN架构学习笔记
参数分析:
【CS231n】九、CNN架构学习笔记
需要进行非常大量的卷积操作:
【CS231n】九、CNN架构学习笔记

这里视频没有讲清楚的一点,需要说明一下:Inception里面三种不同的conv核,深度为256,stride=1,同时有不同的pad,才能都输出28x28的feature map。

(4)使用1x1卷积,来改进压缩Inception Module
相当于对原feature map的深度方向数据,进行线性组合,即达到压缩信息的效果。
【CS231n】九、CNN架构学习笔记
使用了dimension reduction的Inception:
【CS231n】九、CNN架构学习笔记
改进后的参数量:
【CS231n】九、CNN架构学习笔记

(5)深入细节
GoogLeNet,共22层,精简计算复杂度(使用Inception和移去FC层)。对比AlexNet减少了12x的参数。

网络的最前(下)端,是stem network主干网络,两层的Conv-Pool。
中间层,是多级的Inception堆叠。
最后是分类器AveragePool-1x1Conv-FC-Softmax,移去了最后的FC全连接层。
中间有辅助分类输出AvePool-1x1Conv-FC-FC-softmax,用于对浅层网络加入额外的梯度(为了预防梯度消失?)


6、ResNet(残差网络 residual network)
(1)背景
2015年ILSVRC冠军——ImageNet Large Scale Visual Recognition Challenge
152层layers!!! Revolution of Depth!

思考:如果只是单纯的堆叠卷积网络,能不能取得更高的准确度? 
答案是不能。 课程给出的例子是,56层的CNN要比20层的 training/test error更高。可见不是由overfitting导致的。

推测:CNN可以视为一个优化问题,深度的网络只是更难去优化。同时更深的网络应该可以达到和浅层网络同样的性能。所以通过直接复制浅层的学习内容,对深层的的层添加identity mapping(?)
(原文:use network layers to fit a residual mapping instead of directly trying to fit a desired underlying mapping)

(2)residual block
【CS231n】九、CNN架构学习笔记
不直接学习想要的输出函数H(x),而是学习目标H(x)和x的差值F(x)。

(3)整体框架
【CS231n】九、CNN架构学习笔记
层数可以为:34、50、101、152

对于更深的network(ResNet-50+),可以使用“bottleneck”层来提高效率(和GoogLeNet很像)
【CS231n】九、CNN架构学习笔记


(4)训练方式
【CS231n】九、CNN架构学习笔记


7、总结比较
【CS231n】九、CNN架构学习笔记

右图圆形的大小代表所需的memory。

【CS231n】九、CNN架构学习笔记


8、最新进展
(1)improved
【CS231n】九、CNN架构学习笔记

(2)wide ResNet
【CS231n】九、CNN架构学习笔记

(3)ResNeXt
【CS231n】九、CNN架构学习笔记

(4)Stochastic Depth
【CS231n】九、CNN架构学习笔记

(5)DenseNet
【CS231n】九、CNN架构学习笔记


猜你喜欢

转载自blog.csdn.net/Mys_GoldenRetriever/article/details/82113074
今日推荐