深度学习 图像分类 知识点

数据集

http://deeplearning.net/datasets/
https://www.visualdata.io/
https://github.com/awesomedata/awesome-public-datasets

卷积层

负责特征提取

原理

  • RGB三个通道,或者叫做深度。
  • 3D滤波器/卷积核的深度与输入特征一致,计算过程是两个三维矩阵的点积加上一个偏置,每一个卷积核对应一个输出层。所以输出有很多层(深度),每一层捕捉一种局部特征
  • 卷积核需要自学习
深度学习 图像分类 知识点_第1张图片
卷积层图示,卷积核的数量是5,即输出矩阵的厚度是5

深度学习 图像分类 知识点_第2张图片
卷积原理演示
深度学习 图像分类 知识点_第3张图片
卷积层操作图解,输入三通道,步长2,补零1,两个卷积核

深度学习 图像分类 知识点_第4张图片
两个卷积核
  • 感受野:在卷积神经网络CNN中,决定某一层输出结果中一个元素所对应的输入层的区域大小,被称作感受野receptive field


    深度学习 图像分类 知识点_第5张图片
    image.png

非线性激活函数

ReLU:分段线性,无饱和问题(是为了解决Sigmoid函数带来的梯度消失问题)
激活函数在神经网络中的功能即通过对加权的输入进行非线性组合产生非线性决策边界


深度学习 图像分类 知识点_第6张图片
ReLU

池化层

特征融合,尺寸降维

深度学习 图像分类 知识点_第7张图片
最大化池化样例

池化层反向传播

全连接层

负责推断
相当于K个全局卷积,K是分类的数量。
有全连接层的结构输入图像的尺寸必须是固定的,因为最后一个卷积层的输出到第一个全连接层的卷积核的大小是固定的。
理解全连接层好文
例如经过卷积,relu后得到3x3x5的输出。
那它是怎么样把3x3x5的输出,转换成1x4096的形式?

深度学习 图像分类 知识点_第8张图片
全连接

从上图我们可以看出,我们用一个3x3x5的filter 去卷积激活函数的输出,得到的结果就是一个fully connected layer 的一个神经元的输出,这个输出就是一个值。因为我们有4096个神经元。我们实际就是用一个3x3x5x4096的卷积层去卷积激活函数的输出。
深度学习 图像分类 知识点_第9张图片
全连接的作用

从上图我们可以看出,猫在不同的位置,输出的feature值相同,但是位置不同。
对于电脑来说,特征值相同,但是特征值位置不同,那分类结果也可能不一样。
这时全连接层filter的作用就相当于喵在哪我不管,我只要喵,于是我让filter去把这个喵找到,实际就是把feature map 整合成一个值,这个值大,有喵,这个值小,那就可能没喵和这个喵在哪关系不大了,鲁棒性有大大增强。
因为空间结构特性被忽略了,所以全连接层不适合用于在方位上找Pattern的任务,比如segmentation。

归一化层

Softmax 折算成概率
取log后,用于构建loss

工程技巧

CNN中卷积操作十大改进方向(Depth-wise/ Dilated/ Deformable/ Shuffle/ SENet etc)

图像像素中心化(均值处理)

每个通道上每个像素的灰度值减去各自通道的均值

归一化

./255

大小调整

resize

数据增强

每张图片变成10张

dropout

随机失活,用于防止过拟合。训练中随机让一些神经元的输出为0,失活率一般设置为0.5。用于全连接层。

Weight Decay

权重衰减 L2正则 抑制每个权重的作用

基于已有模型方案
  • fine-tune
  • 设计损失函数
  • 激活函数
  • 图像预处理
  • 权值初始化
  • BN
训练细节
  • Batch size
  • 数据平衡性(扩充补偿)
  • 关注感受野
热力图

https://blog.csdn.net/Einstellung/article/details/82858974?utm_source=blogxgwz9
http://seaborn.pydata.org/generated/seaborn.heatmap.html
http://bokeh.pydata.org/en/0.10.0/docs/gallery/cat_heatmap_chart.html

AlexNet

CNN网络架构演进:从LeNet到DenseNet
AlexNet论文翻译对照
5 卷积层+3全连接层 + ReLU + MaxPool + Dropout

LRN - Local Response Normalization
跨通道方向上的归一化
n为领域值,N为通道数


深度学习 图像分类 知识点_第10张图片
LRN

Network-in-network (NiN) (bottleneck layer)
1x1的卷积层
特征降维

loss function 用的交叉熵 ,因为softmax的输出是概率分布

VGG

大卷积分解成多个小卷积,为了减少参数,降低计算,增加网络深度
7x7 -> 3个3x3
网络改造的首选
19层的效果最好

GoogLeNet

增加宽度、深度,减少参数,降低计算
Google Inception Net论文细读

Inception v1
  • Split-Merge
    1x1 3x3 5x5 3x3池化
    最后对四个成分运算结果进行通道上组合。
    但是如果简单的将这些应用到feature map上的话,concat起来的feature map厚度将会很大,所以在googlenet中为了避免这一现象提出的inception具有如下结构,在3x3前,5x5前,max pooling后分别加上了1x1的卷积核起到了降低feature map厚度的作用。
    增加对多尺度的适应,增加网络宽度

  • 取消全连接
    由全局平均池化代替
    输入7x7x1024
    输出 1x1x1024 (其实就是每个通道取平均值,将N个feature map降维成1N大小的feature map,再用class个11卷积核将1N的feature map卷成1class的向量)

  • 辅助分类器
    解决前几层的梯度消失问题,帮助收敛
    测试阶段不使用


    深度学习 图像分类 知识点_第11张图片
    Inception v1

其他:关于+1(S) +1(V)
V stands for a 'valid' convolution (output size = input size - filter size + 1), and S stands for a 'same' convolution (output size = input size). -> border_mode

Inception v2
  • Batch Normalization (BN批归一化)
    在每一层输出的时候,针对每一个通道上的特征图,把这一批次所有的特征图求平均值和方差,然后把所有像素上的值减去均值,除以方差。这一步是算出来的。
    配对使用一个Scale和shift。这一步的参数是学出来的。
    一般是用在Activation之前。
    解决Internal Covariate Shift问题


    深度学习 图像分类 知识点_第12张图片
    Internal Covariate Shift

白化:使每一层的输出都规范化到N(0,1)
BN博文
视频学习

深度学习 图像分类 知识点_第13张图片
BN示意图

深度学习 图像分类 知识点_第14张图片
训练阶段vs测试阶段

  • 5x5 变成两个3x3


    深度学习 图像分类 知识点_第15张图片
Inception v3
  • 非对称卷积 NxN分解成1xN 和 Nx1


    深度学习 图像分类 知识点_第16张图片
    V3核心组件
  • 降尺寸前增加特征通道


    深度学习 图像分类 知识点_第17张图片
    320先变成640,再降维
  • 取消浅层的辅助分类器
    实验证明 完全无用

工程成本很大,因为每一层用的结构不一样

Inception v4
  • 引入残差


    深度学习 图像分类 知识点_第18张图片
    v4

ResNet

直连 skip/shortcut connection
F(x)是残差映射,H(x)的梯度保证>1
推荐博文

深度学习 图像分类 知识点_第19张图片
ResNet

深度学习 图像分类 知识点_第20张图片

  • 步长为2的卷积代替池化

Wide-ResNet

https://arxiv.org/pdf/1605.07146v4.pdf

ResNet in Stochastic Depth

https://arxiv.org/pdf/1603.09382.pdf

深度学习 图像分类 知识点_第21张图片
每个ResNet block 有一定概率随机失活
深度学习 图像分类 知识点_第22张图片
很神奇的是测试正确率会更高

ResNeXt

  • 提出第三个DNN维度cardinality


    深度学习 图像分类 知识点_第23张图片
    ResNeXt

SqueezeNet

https://arxiv.org/pdf/1602.07360.pdf
https://blog.csdn.net/csdnldp/article/details/78648543
Fire Module

深度学习 图像分类 知识点_第24张图片

ShuffleNet

https://arxiv.org/pdf/1707.01083.pdf
Group conv
论文解读

深度学习 图像分类 知识点_第25张图片
深度学习 图像分类 知识点_第26张图片
Groupwise convolution + shuffle的这种组合对传统1x1 conv bottleneck模块的代替使用

DenseNet

推荐博文
https://arxiv.org/pdf/1608.06993.pdf

MobileNet

论文
Depthwise Convolution ,Pointwise Convolution

深度学习 图像分类 知识点_第27张图片
精髓

PolyNet

推荐博文

SENet

推荐博文

AmoebaNet

推荐博文

ShuffleNet

https://arxiv.org/pdf/1707.01083.pdf

GPIPE

CNN设计原则

感受野要大


深度学习 图像分类 知识点_第28张图片
分组策略

你可能感兴趣的:(深度学习 图像分类 知识点)