神经网络--传统分类网络回顾

 

  • 摘要
  • 一、网络特征
  • 二、网络介绍
    • 1.LeNet
    • 2.AlexNet
    • 3. VggNet
    • 4. GoogleNet
    • 5. ResNet
    • 6. DenseNet
  • 网络参数对比
  • 总结

摘要

包含如下网络  LeNetAlexNetVggGoogLeNetResNetDenseNet


一、分类网络特征

分类网络可以有效的提取物体特征, 不仅可以完成分类的任务, 同时可作为其它网络的backbone进行特征的提取。

 

二、网络介绍

1. leNet

    LeNet是卷积神经网络的祖师爷LeCun在1998年提出,用于解决手写数字识别的视觉任务. 从此CNN的最基本的架构就定下来了:卷积层、池化层、全连接层. 麻雀虽小,但五脏俱全.


2. Alet

(1) Relu函数   A: max的计算,减少结算量, 深度网络的衰减, Relu保持梯度,减少梯度衰减的趋势

(2) Multiple Gpus     A: 分组卷积,减少训练的时间

(3) RLN         A: 如果一个wight变得很大, 其变化会引起很大的影响. 会重点改变这个weight从而忽略这个太小的weight.    

(4) Date Augment A: image的transformation和crop. 百万级ImageNet图像数据

(5) Dropout A: 随机的让某些网络节点的权重不工作,暂时认为不是网络结构的一部分,但是起权重可以保留为下次输入做工作 ,提高了效率和防止了overfitting .

 

3. VggNet

(1) 卷积核的堆叠 A: 两个3*3卷积核的堆叠相对于5*5卷积核的视野,三个3*3相当于7*7。 B: 另一方面拥有更多的非线性变换,增加了CNN对特征的学习能力,降低参数量。

(2) 引入1*1的卷积核 A:在不影响输入输出维度的情况下,引入非线性变换,增加网络的表达能力,降低计算量。

(3). 小池化核 A: 相比AlexNet的3x3的池化核,VGG全部采用2x2的池化核。

(4). 通道数多 A: VGG网络第一层的通道数为64,后面每层都进行了翻倍,最多到512个通道,通道数的增加,使得更多的信息可以被提取出来。

(5) 训练时,先训练级别简单(层数较浅)的VGGNet的A级网络,然后使用A网络的权重来初始化后面的复杂模型,加快训练的收敛速度。

4. GoogLeNet

    获得高质量模型最保险的做法就是增加模型的深度(层数)或者是其宽度(层核或者神经元数),但是这里一般设计思路的情况下会出现如下的缺陷:

(1) . 参数太多,若训练数据集有限,容易过拟合。

(2) . 网络越大计算复杂度越大,难以应用。

(3) . 网络越深,梯度越往后穿越容易消失,难以优化模型。

4.1 GoogLeNetV1

(1)  采用了模块化的结构 A:Inception结构, 方便增添和修改 B:多种操作并行进行,各自提取对用的特征

(2)  采用average pooling来代替全连接层 A:本质是全尺寸的卷积层, 减轻参数负担 B:最后还是加了一个全连接层,主要是为了推断用

(3)  移除了全连接 A:依然使用了Dropout , 减轻过拟合

(4) 网络的感受野大小是224x224,采用RGB彩色通道 A:  网络包含22个带参数的层, 如果考虑pooling层就是27层

(5) 为了避免梯度消失,网络额外增加了辅助的softmax在不同的深度处用于传导梯度

4.2 GoogLeNetV2

(1) Covariate Shift问题 A: 神经网络的输入值的分布不同, 与权重进行矩阵相乘后,会产生一些偏离较大地差异值。 B: 差异值影响后层,偏离越大表现越为明显, 对于反向传播来说,这些现象都会导致梯度发散。

(2) 允许较大的学习率,加快模型收敛速度 A: 固定网络层输入的分布使优化过程中的解空间更平滑,确保梯度更具预测性和稳定性。

(3). 避免深层网络的梯度消失或爆炸问题 A: 固定网络层输入的均值和方差,即使网络较深层的响应或梯度过小或过大时,也可通过BN的规范化作用将其缩放到一个比较合理的取值范围。

(4). 增加网络的表达能力

4.3 GoogLeNetV3

 InceptionV3 引入了 Factorization into small convolutions 的思想,将一个较大的二维卷积拆成两个较小的一维卷积,比如将7*7卷积拆成1*7卷积和7*1卷积. 这种非对称的卷积结构拆分,其结果比对称地拆为几个相同的小卷积核效果更明显。

5. ResNet

    在不断加神经网络的深度时,会出现一个Degradation的问题, 即准确率会先上升然后达到饱和,再持续增加深度则会导致准确率下降。假设有一个比较浅的网络达到了饱和的准确率,那么后面再加上几个的全等映射层,起码误差不会增加, 即更深的网络不应该带来训练集上误差上升。而这里提到的使用全等映射直接将前一层输出传到后面的思想, 就ResNet的灵感来源。

5.1 ResNetV1

    如下两种结构分别针对ResNet34(左图)和ResNet50/101/152(右图)

A: 一般称整个结构为一个building block,其中右图又称为bottleneck design

B:bottleneck目的就是为了降低参数的数目,第一个1x1的卷积把256维channel降到64维,然后在最后通过1x1卷积恢复,而不使用bottleneck的话就是两个3x3x256的卷积

5.2 ResNetV2

A. 表示f函数为Relu,这是ResNetv1的做法。

B. 表示f函数为BN+Relu。

C. 表示f函数为恒等映射 。

D. 表示f函数为恒等映射,Relu放在下一个残差块的F-path中。

E. ResNetv2使用的就是图e的结构,通过实验发现这个结构表现最好。

6. DenseNet

    一般网络无非是通过deeper,或者是wider来增强网络性能 。ResNet通过identity connection创造short cut来连接layer与layer之间, 解缓正向传播中的消失和梯度在反向传播中的弥散。在作者的DenseNet中,并不通过summation来连接layers,而是通过concatenating将这些features进行连接起来,就是在层与层之间,直接将所有层连接起来。

    identity function 和 H输出通过相加的方式结合,受GooLeNet的启发,DenseNet通过串联的方式结合。这里Hl(.)是一个Composite function,是三个操作的组合:BN−>ReLU−>Conv(3×3) 由于串联操作要求特征图x0,x1,...,xl−1大小一致,而Pooling操作会改变特征图的大小,又不可或缺,于是就有了上图中的分块想法,论文中称每个块为DenseBlock。

 

三、参数结果对比


总结

对传统神经网络的分类参数作对比

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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值