【深度学习】Lenet Alexnet  VGG  googleNet 残差网络 denseNet

Lenet Alexnet  VGG  googleNet 残差网络 denseNet

 

LeNet 1986

输入尺寸是32*32,2卷积层,2池化层,2全连接层组成。 卷积都是5*5的模板,stride=1,池化都是MAX。最早用于数字识别

 

AlexNet2012年提出)

1. 比较浅层的网络,5Conv + 3 FC(8层,3个全连接层4096,4096,1000),浅层但提取特征丰富,参数多.第一层:输入 227*227*3,卷积核大小11*11*3,步长为4

2. 更强调了全连接层的作用,它用了两个全连接层,为了减少权重的数目,引出了dropout

计算卷积输出的尺寸:(input_size-kenerl_size+2*padding)/stride + 1

3. 卷积部分画成上下两块,计算出来的特征图分开

4.  LRN:局部响应归一化,对当前层的输出结果做平滑处理。

 

GoogleNet 

网络深参数少

1. 深度:依然在加深网络(22层,输入224 * 224 * 3)

2. 为了避免梯度消失问题,googlenet巧妙的在不同深度处增加了两个loss来保证梯度回传消失的现象(softmax1,softmax2)。

3. 宽度:增加了Inception结构,即将原来的一个节点变成了一个网络,用于增加网络深度和宽度

· 不同尺度的卷积核(multi-scale),增强网络的适应力,增加表达能力。

  1. (借鉴NIN)在原先的卷积过程中附加了1*1的卷积核加上ReLU激活,这不仅仅提升了网络的深度,提高了表达能力,还通过1*1的卷积来进行降维,减少了更新参数量,降低feature map厚度。

 

增加了多种核1x1,3x3,5x5,还有直接max pooling的,但是如果简单的将这些应用到feature map上的话,concat起来的feature map厚度将会很大,所以在googlenet中为了避免这一现象提出的inception具有如下结构,在3x3前,5x5前,max pooling后分别加上了1x1的卷积核起到了降低feature map厚度的作用。5*5的卷积核会带来巨大的计算量,所以采用1 * 1的卷积核进行降维。

4.(借鉴NIN)传统CNN最后的全连接层也被替换为一个ave_pooling

http://img.mp.itc.cn/upload/20170416/5adfebd4898b464fa9cea476401abbd5_th.png

 

VGG

  1. 比AlexNet更深参数空间更大。卷积+全连接19层,同样大小的卷积核尺寸(3*3)和最大池化尺寸(2*2)
  2. 使用多个较小的卷积核的卷积层代替一个卷积核较大的卷积,一方面可以减少参数,另一方面是相当于进行了更多的非线性的映射,增加网络的拟合和表达能力

采用多个3*3的卷积,模仿出更大的感受野的效果

  1. 尽量使用多层fliter尺寸小的卷积层代替一层filter较大的卷积层

因为使用多层filter较小的卷积层所能观察到的区域大小和一层filter较大的卷积层是相同的,但是前者可以看到更加抽象的特征,提取的特征表达性能更佳,提升判别函数识别能力减少参数

3个3*3 (27)和 一个7*7(49)的卷积核的视野是一样大的,前者引入的参数规模相比后者更小

  1. 输入层(input layer)尺寸一般应该能被2整除很多次
  2. 在 AlexNet 基础上将单层网络替换为堆叠的3´3的卷积层和2´2的最大池化层,减少卷积层参数,同时加深网络结构提高性能;
  3. Pre-trained:利用浅层网络(A)训练参数,用权重初始化深层网络参数(D,E),加速收敛
  4. Multi-Scale进行数据增强、训练、测试,增加数据量,提高准确率;将图像 scale 到一个尺寸 Q,并将图片输入卷积网络计算。然后在最后一个卷积层使用滑窗的方式进行分类预测,将不同窗口的分类结果平均,再将不同尺寸 Q的结果平均得到最后结果,这样可提高图片数据的利用率并提升预测准确率。
  5. 去掉了 LRN(局部响应归一化),减少了内存的小消耗和计算时间。
  6. 参数空间大,后续改进:NIN 中将全连接层替换为全局平均池化

 

ResNet

1.依然在加深网络。目前层数已突破一千。

2.主要的创新在残差网络,其本质是解决层次较深的时候梯度消失的问题。

        优化的目标从H(x)变成了H(x)-x

3.如果网络已经最优,继续加深网络,residual =0,只有identity,理论上网络一直处于最优状态,网络性能不会随着深度增加而降低。

4.整个结构成为”building block“,三层称为”bottleneck design”,目的是降低参数数目和计算。将两层3*3变成—>新结构中的中间3x3的卷积层首先在一个降维1x1卷积层下减少了计算,然后在另一个1x1的卷积层下做了还原,既保持了精度又减少了计算量。

5. F(x)和x按channel维度相加,如果channel个数不一样,y=F(x)+Wx,W是卷积操作,调整x的channel维度

 

ResNet(152)

优化的目标由原来的拟合输出H(x)变成输出和输入的差H(x)-x

解决层次比较深的时候无法训练的问题

 

DenseNet

ResNet及Inception作对比。DenseNet核心思想在于建立了不同层之间的连接关系,充分利用了feature,进一步减轻了梯度消失问题,加深网络不是问题,而且训练效果非常好。另外,利用bottleneck layer,Translation layer以及较小的growth rate使得网络变窄,参数减少,有效抑制了过拟合,同时计算量也减少了。

  1. dense block:它的skip connection不仅仅只连接上下层,直接实现了跨层连接,每一层获得的梯度都是来自前面几层的梯度加成。就是每一层的输入来自前面所有层的输出

加宽每一个DenseBlock的网络宽度,能够增加网络识别特征的能力,而且由于DenseBlock的横向结构类似 Inception block的结构,使得需要计算的参数量大大降低。

  1. 减轻了梯度消失
  2. dense block中每个卷积层的输出feature map的数量都很小,加强了feature的传递,更有效地利用了feature。使得特征和梯度的传递更加有效,网络也就更加容易训练
  3. 一定程度上较少了参数数量,网络窄
  4. 每个dense block的3*3卷积前面都包含了一个1*1的卷积操作,就是所谓的bottleneck layer,目的是减少输入的feature map数量,既能降维减少计算量,又能融合各个通道的特征

 

Inception

Inception V1——构建了1x1、3x3、5x5的 conv 和3x3的 pooling 的分支网络,同时使用 MLPConv 和全局平均池化, 最大的亮点就是从NIN(Network in Network)中引入了1*1 conv,扩宽卷积层网络宽度,增加了网络对尺度的适应性;

 

Inception V2——提出了 Batch Normalization,代替 Dropout 和 LRN,其正则化的效果让大型卷积网络的训练速度加快很多倍,同时收敛后的分类准确率也可以得到大幅提高,同时学习 VGG 使用两个3´3的卷积核代替5´5的卷积核,在降低参数量同时提高网络学习能力;

 

Inception V3——引入了 Factorization,将一个较大的二维卷积拆成两个较小的一维卷积,比如将3´3卷积拆成1´3卷积和3´1卷积,一方面节约了大量参数,加速运算并减轻了过拟合,同时增加了一层非线性扩展模型表达能力,除了在 Inception Module 中使用分支,还在分支中使用了分支(Network In Network In Network);

 

Inception V4——研究了 Inception Module 结合 Residual Connection,结合 ResNet 可以极大地加速训练,同时极大提升性能,在构建 Inception-ResNet 网络同时,还设计了一个更深更优化的 Inception v4 模型,能达到相媲美的性能

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值