深度学习| 卷积神经网络与典型结构

神经网络与卷积神经网络

从神经网络到卷积神经网络

  • DNN能用到计算机视觉上吗?为什么需要CNN?
  • 卷积神经网络和人工神经网络的差异在哪?

 

 

1.层级结构

保持了层级网络结构;

不同层次有不同形式(运算)与功能;

 

 主要是以下层次:

  • 数据输入层/ Input Iayer
  • 卷积计算层/ CONV Iayer
  • 激励层/ Activation Iayer
  • 池化层/ Pooling layer
  • 全连接层/ FC Iayer
  • Batch Normal i zation层(可能有)

数据输入层/ Input Iayer

有3种常见的数据处理方式

  • 去均值(把输入数据各个维度都中心化到0)
  • 归一化(幅度归一化到同样的范围)
  • PCA/ 白化(用PCA降维;白化是对数据每个特征轴上的幅度归一化)

去均值与归一化

 

 去相关与白化

 

卷积计算出/ CONV Iayer

  • 局部关联,每个神经元看做一个filter;
  • 窗口(receptive field)滑到,filter对局部数据计算;
  • 涉及概念:
    • 深度/ depth
    • 步长/ stride 
    • 填充值/ zero-padding 

 

 

 

  • 参与共享机制;
    • 假设每个神经元连续数据窗的权重是固定的;
  • 固定每个神经元连接权重,可以看做模板;
    • 每个神经元只关注一个特性;
  • 需要估算的权重个数减少:一层1亿 => 3.5w 
  • 一组固定的权重和不同窗口内数据做内积:卷积

 

 激励层(ReLU)

把卷积层输出结果做非线性映射

  • Sigmoid
  • Tanh(双曲正切)
  • ReLU
  • Leeky ReLU
  • ELU
  • Maxout
  • ...

 

 

 

激励层 

  1. CNN慎用sigmoid!慎用sigmoid!慎用sigmoid!
  2. 首先试RELU,因为快,但要小心点;
  3. 如果2失效,请用Leaky ReLU或者Maxout;
  4. 某些情况下tanh倒是有不错的结果,但是很少;

池化层/ Pooling Iayer 

  • 夹在连续的卷积层中间;
  • 压缩数据和参数的量,减小过拟合;

 

 Max pooling 

average pooling 

 

 全连接层/ FC Iayer

  • 两层之间所有神经元都有权重连接;
  • 通常全连接层在卷积神经网络尾部;

典型的CNN结构为

  • INPUT
  • [[ CONV -> RELU ] * N -> POOL ?] * M
  • [ FC -> RELU ] * K
  • FC 

 

2.卷积可视化理解

 

 

 

 

 

 

 

 

3.训练算法

  1. 同一般机器学习算法,先定义Loss function,衡量和实际结果之间的差距;
  2. 找到最小化损坏函数的W和b,CNN中用的算法是SGD ;
  3. SGD需要计算W和b的偏导;
  4. BP算法就是计算偏导用的;
  5. BP算法的核心是求导链式法则;

BP算法利用链式求导法则,逐级相乘直到求解出dw和db ;

利用SGD/ 随机梯度下降法,迭代和更新w和b 

 

4.优缺点

优点

  • 共享卷积核,优化计算量;
  • 无需手动选取特征,训练好权重,即得特征;
  • 深层次的网络抽取图像信息丰富,表达效果好;

缺点

  • 需要调参,需要大样本量,GPU等硬件依赖;
  • 物理含义不明确;

 

正则化与Dropout

1.正则化与Dropout处理

神经网络学习能力强可能会过拟合;

Dropout(随机失活)正则化:别一次开启所有学习单元

Regularization: Dropout 

“randomly set some neurons to zero in the forward pass”

 

 Dropout 

 实际实现:把预测阶段的时间转移到训练上

 

2.Dropout理解

防止过拟合的第1种理解方式

  • 别让你的神经网络记住那么多东西(虽然CNN记忆力好);
  • 学习的过程中,保持泛化能力;

 

 防止过拟合的第2种理解方式:

  • 每次都关掉一部分感知器,得到一个新模型,最后做融合,不至于听一家所言;

对Dropout想要有更细致的了解,参见

《Dropout: A Simple Way to Prevent Neural Networks from Overfitting》 2014, Hinton, etc

《Dropout Training as Adaptive Regularization》 2013, Stefan Wager, etc  

 

典型结构与训练

1.典型CNN

  • LeNet, 这是最早用于数字识别的CNN;
  • AlexNet, 2012ILSVRC比赛远超第2名的CNN,比LeNet更深,用多层小卷积层叠加替换单大卷积层;
  • ZF Net,2013ILSVRC比赛冠军;
  • GoogLeNet, 2014ILSVRC比赛冠军;
  • VGGNet,2014ILSVRC比赛中的模型,图像识别略差于GoogLeNet,但是在很多图像转化学习问题(比如object detection)上效果很好;
  • ResNet,2015ILSVRC比赛冠军,结构修正(残差学习)以适应深层次CNN训练;
  • DenseNet,CVPR2017best paper, 把ResNet的add变成concat

LeNet 

 

 

 

 AlexNet 

2012Imagent比赛第一,Top5准确度超过第二10%;

The number of neurons in each layer is given by 253440,186624,64896,64896,43264,4096,4096,1000 

 

 

 

 ZFNet

 

 VGG

 

 

 

 

 

 GoogLeNet

 

 

 

 ResNet,即Deep Residual Learning network

微软亚洲研究院提出,ILSVRC 2015冠军比BGG还要深8倍; 

 

 DenseNet,CVPR2017 best paper;

 

 

 

 

2.训练与调优

 

 

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章