概述
本篇博客用于记载CNN发展中的一些典型模型
经典模型
1. LeNet-5
任务:手写数字识别
激活函数:tanh和sigmoid
2. AlexNet
激活函数:ReLu(相比于tanh,错误率达到25%的时间缩减为1/6)
重叠池化(Overlapping Pooling):步长小于kernel大小,可以缩减过拟合的可能性。
数据增强:
- 256x256的图像从四周和中间分别截取224x224的图像,放入模型中进行训练,并将得到的softmax结果进行取平均值。
- 对每个像素点的RGB三通道的数值构成的向量加入以下向量
p:特征向量
λ lambda λ:特征值
α alpha α:满足均值为0,标准差为0.1高斯分布的随机变量
Dropout:每次前向传播时,按0.5的概率使神经元的输出为0。使用之后可以使训练误差减小,但是会使迭代次数几乎double
训练细节:
- 权重的更新加入0.0005的衰退,可以减少训练误差
- 初始化权重值为均值0,标准差0.01的随机变量
- 初始化2,4,5层卷积层的bias为1,可以给Relu函数一个正值输入,加速训练。其余层bias为0
已舍弃部分:
- GPU发展还不够,所以每层都用了多个GPU进行联动
- 特殊层:局部相应归一层(LRN)—对
3. VGG-16
特点:模型结构简单,更关注卷积层,参数数目庞大
ResNet(残差神经网络)
特点:通过跳跃连接的方式,该网络由一个个残差块组成
优点:相比于一般的网络,残差网络对于层数较深的情况一样会保持错误率不断下降,而不同于普通网络,随着层数的加深会导致错误率先下降后上升。
1*1卷积的意义
对于单层的输入而言,1*1的卷积实现的只是每个像素点乘上一个系数,没有太多实际作用。但对于多层的输入而言,它可以实现不同层数据之间的线性组合。
作用:
- 在大小不变的情况下,减少通道数,可以大大减小运算的时间成本。
- 增加网络复杂性(将下图的32filters改为192fliters)。
使用瓶颈层加快运算
处理好的话,不会影响性能,并且能够节约时间成本。
Inception模块
特点:不需要去选定卷积核的大小,可以各个大小都做,并且将他们如上图一样连接起来,让神经网络来学习所需参数以及所要用到的卷积核大小。
Inception网络
实际上就是多个Inception模块的连接
MobileNets
深度可分离卷积
相比于一般的卷积,先深度卷积再单点卷积的方式可以提高约10倍的效率。
MobileNet的架构
整体架构:网络由多个以下的模块连接而成。
Bottleneck:MobileNetV2相比于V1的一个改进,这样的操作不但可以增强网络的性能(中间放大的部分相当于放大了特征),并且不增加内存的负担,因为该模块的输入输出的数据大小保持一致。
EfficientNet
作用:按照需求调节网络的deepth和width,即调整网络的大小。
…持续更新
最后
以上就是孤独帅哥为你收集整理的CNN学习笔记(二):经典模型的全部内容,希望文章能够帮你解决CNN学习笔记(二):经典模型所遇到的程序开发问题。
如果觉得靠谱客网站的内容还不错,欢迎将靠谱客网站推荐给程序员好友。
发表评论 取消回复