经典卷积神经网络【01-理论基础】

一、背景知识

卷积神经网络的一般结构

1.卷积层+激活层和池化层的组合多次出现—>提取特征
2.多个全连接或特殊的CNN结构作为输出层—>作分类器/检测器/分割器

四种主要的计算机视觉任务(由粗粒度到精细粒度)

1.图像分类(Image classification)
为图像赋予一个或多个语义标签
2.目标检测(Object localization)
找到图像中物体的类别及所在位置
3.图像语义分割(Sementic segmentation)
找到图像中物体的类别并精确勾勒出其所在的位置
4.图像实例分割(Instance segmentation)
多个同类物体存在时,将它们一一区分出来

二、经典卷积神经网络

1.AlexNet

Data Augmentation

拟合自然界中常见的噪声。
主要用于数据集较小的时候,可以丰富图像训练集、防止过拟合。

常用的数据增强方式有:

对颜色的数据增强:色彩的饱和度、亮度、对比度
加噪声(高斯噪声)
水平翻转、垂直翻转
随机旋转、随机裁剪(crop)

2.VGG

深度增加&小卷积核–>对网络最后的分类识别效果有很大作用
小卷积核:3×3:表示上下、左右、中心这些概念的最小概念的最小卷积核尺寸
深度:AlexNet8层–>VGG最深19层

Small Convolution filter:

最早用于VGG,Inception2中明确指出该设计准则
AlexNet用到一些非常大的卷积核,比如11×11,5×5.
Intution:感受视野大、看到的图片信息就越多,获得的特征会越好
Methods:使用2个3×3的卷积核的组合比用1个5×5的卷积核效果更佳&参数量降低。

参数量的评估:

以256通道的隐层数据为例:
2个3×3的卷积核 ==1个5×5的卷积核
2×3×3×256params 5×5×256params
3个3×3的卷积核 ==1个7×7的卷积核
3×3×3×256params 7×7×256params

3.GoogLeNet/Inception

Google提出的神经网络,一共有V1-V4共4个不同的模型

使用了Inception模块

可以并行执行多个具有不同尺度的卷积运算或池化操作
将多个卷积核卷积的结果拼接成一个非常深的特征图

使用了大量的trick提高网络性能

Bottleneck(瓶颈):1×1的卷积核,借鉴NIN
使用全局平均池化GAP代替全连接
在v2中,采用Batch Normalization(批归一化)
在v3中,采用非对称卷积降低运算量
在v4中,结合了ResNet中的思想,发现Residual Connections貌似只能加快网络收敛速度,使更大的网络规模提高了精度。

Multi-size filters in one layer(Inception Block):

传统的堆叠式网络,每层仅用一个尺寸的卷积核。
VGG每层只使用3*3的卷积核。
Intuition:信息位置的巨大差异,使得不同尺度的特征结合起来可以得到更好的特征表示
Methods:卷积核设为1,3,5,stride设为1可以使用pad = 0, 1, 2 很方便的对齐结合的方式:在depth维度上Concatenation(拼接)

Bottleneck

最早出现于Network in Network
在同一层使用多个不同尺寸的卷积核会导致参数过多
Intuition:Network in Network中1×1的卷积核的启发
在原来的Inception结构中加入1×1的卷积核

Bottleneck参数量评估

Input channel = 256,Output channel = 256
卷积核= 3×3×256
参数量:256×3×3×256 = 589,824
卷积核:1×1×32,3×3×256
参数量:256×1×1×32+32×3×3×256=81,920

使用全局平均池化GAP代替全连接

多设计几个全连接层可以提升神经网络的分类性能,全连接层一度成为标配
Intuition:全连接层参数量巨大,
特别是与最后一个卷积层相连接的全连接层
Methods:全局平均池化Global Average Pooling 代替全连接
Advantage:可以实现任意图像大小的输入
InceptionV3 参数量:23.6MB,推理内存消耗:35.5MB

4.ResNet

使用了恒等映射

传统神经网络训练的函数为F(x)
添加恒等映射后,神经网络训练的函数变为F(x)+x
这样训练出来的网络,相当于是在对x作修正,修正的幅度就是F(x),F(x)在数学上称为残差所以作者提出的网络称为残差网络

tips

平凡网络中,为什么深度增加到一定程度后,训练的效果反而下降了?
梯度下降算法本身的缺陷
深度增加后,相比浅一些的网络来说梯度减小。误差传播过程变慢,网络的优化速度就慢残差网络中,为什么能够避免这种现象?恒等映射下,虽然网络的深度加深,但是每层中都会有足够多的由梯度承载的信息量,梯度不会太小加快了深层网络的收敛速度。

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

HAL9000pp

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值