CNN经典网络

CNN经典模型——AlexNet

关于AlexNet模型论文,在学习的过程中,也看到SnailTyan把论文的翻译放在了个人博客中,学习参考地址:http://noahsnail.com/2017/07/04/2017-07-04-AlexNet论文翻译/

  • 简介

Alex在2012年提出的AlexNet网络结构模型赢得了2012年ImageNet竞赛的冠军,使得CNN成为在图像分类上的核心算法,并引爆了神经网络的应用热潮。在此之后,更多的更深的神经网路被提出,比如优秀的VGG,GoogleLeNet,ResNet等,在AlexNet模型中移除任何一个卷积层都会使得性能会降低,由此可见深度对模型精度非常重要。

  • 模型介绍

AlexNet网络结构

AlexNet模型包括八层,五层卷积层和3层全连接层,卷积层中都包含激励函数ReLU、局部响应归一化(LRU)处理,以及池化(下采样)。

网格结构简化图:

Alexnet共包含5个卷积层和3个全连接层,其中第1,2,5个卷积层后接最大池化和LRN操作。

创新点

1. 使用ReLU代替Sigmoid作为激活函数,成功解决了Sigmoid在网络较深时的梯度弥散问题;

2. 最后几个全连接层使用Dropout,避免过拟合;

3. 使用了重叠最大池化操作,即池化步长比池化核尺寸小,提升了特征的丰富性。此前CNN普遍采用平均池化,最大池化能够避免平均池化的模糊化效果;

 

4. 提出了LRN层。LRN全称Local Response Normalization,对局部神经元创建竞争机制,增大响应大的单元,抑制反馈小的神经元,增强了模型的泛化能力。(VGGNet没有使用LRN,作者表示LRN对模型没有提升,而且参数量大,当然不能以偏概全);

5. 使用CUDA利用GPU加速深度卷积网络的训练。

6. 数据增强。通过随机裁剪、旋转、翻转等操作,减轻过拟合,提升模型泛化性能。

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

CNN经典模型——VGG

  • 简介

VGGNet由牛津大学的视觉几何组(Visual Geometry Group)提出,获得了2014年ILSVRC竞赛的分类任务第二名和定位任务第一名,主要贡献在于证明了使用3x3小卷积核,增加网络深度可以有效提升模型性能,并且对于其他数据集也有很好的泛化性能。

论文链接:https://arxiv.org/pdf/1409.1556.pdf

  • 网络结构

论文中一共提供了6种网络配置,层数从浅到深分别为11层、13层、16层和19层。其中11层时,主要比较了Local Response Normalisation(LRN)的作用,结果是LRN并没有提升网络性能。除了网络结构的变化,VGGNet从原理上和传统的CNN模型并没有太大区别,都是采用同样的训练Pipeline。

  • 贡献
  1. 使用3x3小卷积核。首先我们先了解这样一个知识:两个3x3卷积堆叠在一起(中间没有池化层)的感受野相当于一个5x5的卷积,三个3x3卷积堆叠在一起的感受野相当于一个7x7的卷积。为了更形象的理解这一点,我们看下图,两个3x3堆叠在一起的效果,

以7x7卷积为例,为什么要采用三个3x3卷积,而不直接使用一个7x7卷积呢?主要有两个好处:

  1. 三个卷积可以进行三次非线性变换,而这种非线性变换能有效提升不同信息的判别性(差异);
  2. 减小网络参数量。假设卷积层的通道数为C,则三个3x3卷积参数量:

3(32C2)=27C2,一个7*7卷积参数量:72C2 =49C2.

  1. 增加网络深度。增加网络深度的好处就是能够增加网络的非线性映射次数,使得网络能够提取具有更好的判决信息的特征,从而提升网络性能。因为使用了3x3卷积,使得网络参数量并不会随着网络的深度增加而急剧上升。除此之外,VGGNet还使用了1x1卷积,目的也是增加非线性映射次数。

 

 

 

 

 

CNN经典模型——GoogleNet

一)简介

一般来说,提升网络性能最直接的方法就是增加网络的深度和宽度。但是这也带来两个问题:一是网络参数量的急剧增加会导致网络陷入过拟合,尤其是对小数据集而言;二是消耗巨大的计算资源。

 

文章认为解决上述两个问题的根本方法是将全连接甚至卷积转化为稀疏连接。对这个观点有两方面解释:一方面,现实中的生物神经网络连接本身就是稀疏的;另一方面,Arora等人证明,对于大规模的稀疏网络,可通过分析前一层激活值的相关统计数据和对高度相关的输出神经元聚类来逐层构建最优的网络结构。这种方法可以在不损失性能的前提下降低网络参数量。

实际上,传统的网络基本都使用了随机稀疏连接。但是,计算机对非均匀稀疏数据的计算非常低效,所以在AlexNet中又重新使用了全连接层,目的是就为了更好地进行并行运算。

那么问题来了,是不是有一种方法既能够保持网络结构的稀疏性,并且充分利用密集矩阵的高效计算?还真有。大量文献表明对稀疏矩阵进行聚类为密集矩阵可以提高性能。Inception module就是基于这种思想提出来的。

  • 网络结构

Inception module基本结构:

   

该结构采用了四个分支,每个分支分别由1x1卷积、3x3卷积、5x5卷积和3x3max pooling组成,既增加了网络的宽度,也增加了网络对不同尺度的适用性。四个分支输出后在通道维度上进行叠加,作为下一层的输入。四个分支输出的feature map的尺寸可由padding的大小进行控制,以保证它们的特征维度相同(不考虑通道数)。

但是,3x3和5x5卷积依然会带来很大的计算量。受Network in Network的启发,作者使用1x1卷积对特征图厚度进行降维,这就是Inception v1的网络结构,如图(b).

基于Inception的GoogleNet网络结构如下:

GoogLeNet一共包含22层,网络参数量只有Alexnet的1/12。但是随着网络层数的加深,梯度弥散的问题依然存在,所以作者在中间层加入两个辅助的softmax,以此增加反向传播的梯度大小,同时也起到了正则化的作用。在计算网络损失的时候,中间的辅助softmax loss会乘以一个权重(0.3)加入到最后层的loss值中。在预测时,则忽略中间softmax层的输出。

 

 

 

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值