模式识别——深度卷积神经网络


第七章——深度卷积神经网络

1. 卷积神经网络CNN

  • 卷积层

    • 单个卷积核:局部信息提取,对于所有位置进行扫描,一个卷积核得到一个特征图;

    • 多个卷积核称作多个通道,用于支持不同的特征提取

    • 一维卷积:相应位置加权求和

    • 卷积核尺寸

    • 步幅

    • 边宽与边衬pad

    • 权值共享:一轮扫描中,卷积核参数不变

    • 前向传播后,通过输出端误差进行反向传播优化,多个并行卷积核构成多个通道,提取不同特征

    • 图像尺寸nxn,卷积核尺寸kxk,步幅为s,边衬为p且对称,则特征图大小
      $$
      \lfloor\frac{n+2p-k}{s} \rfloor+1
      $$

    • 挤压:对卷积结果进行非线性运算

    • 非线性激活函数:S、Relu

  • 汇集

    • 最大汇集max pooling:选择局部区域最大值
    • 平均汇集average pooling:选择区域数值平均值

2. 深度卷积神经网络发展历史

2.1 历史介绍

属于是经典中的经典啦~

模型 特点 年代
LeNet-1 (卷积)⇢(降采样)⇢(卷积)⇢(降采样)⇢(全连接),针对手写字符问题设计,后来被SVM超过 1990
AlexNet 使用局部感受野,权值共享,最大汇集等措施减少参数;数据扩增(利用预训练增加训练样本数目) 2012
VGG 使用较小的卷积核尺寸和降采样区域;网络提升到最多16-19层 2014
GoogleNet 用多个“起始单元”(inception)的小网络模块构成大网络;在基元中采用了多个1x1的卷积核,实现降维和减少计算量;在中间设置两处输出,作为训练辅助 2014
ResNet 相邻层合并为一个组合单元,每个单元设一个跨过几层网络的短路连接;𝒙 是本单元的输入,单元格内局部网络映射𝑭(𝒙, 𝒘),是除信号自身外的一个“残差”(residual),则实际输出𝒚:𝒚 = 𝑭(𝒙, 𝒘) + 𝒙 2015
DenseNet 上一层得到的特征图不但输出到下一层,而是形成了跨层的密集连接;密集区块(Dense Block):用较少的卷积核,并且大量是1x1 卷积核;进一步拓展为MSDNet:二维的神经网络阵列,并设有中间输出 2017
……

2.2 常用模型训练技巧

非线性激活函数

  • sigmoid:两侧导数趋近于0,深度网络的梯度难以回传⇢模型推广性较差
  • Relu:缓解梯度消失,使神经网络具有稀疏表达能力;改进形式的Relu使得s<0区域内也有梯度

dropout

  • 每一轮的训练中,随机选择部分hidden node输出置零且参数暂时不更新(实质上也是一种正则化的方法)
  • 作用:避免某些神经元共同激活,削弱神经元之间的关联适应性,增强推广能力
  • 实现细节:适当增加网络宽度,训练时间提升到原来的2-3倍左右

归一化batch normolization

解决问题:训练速度慢、梯度爆炸问题

核心思想:在批量梯度下降中设法使得每一批数据中的分布相同

对于神经网络的每一层输入做归一化运算:
$$
\vec{x_i}=\frac{x_i-u_x}{\sigma}
$$
还需要对特征尺度做调整和平移,提升特征表达能力:
$$
\vec{y_i}=\gamma\vec{x_i}+\beta
$$
数据增强

  • 扩增样本数量
  • 提高模型推广能力

终止条件

  • 过学习提前停止:划分一部分样本为验证集,训练acc提升但是验证集acc降低时候停止训练

3. 参考资料

  1. 知乎CNN原理讲解

  2. Batch normolization知乎论文链接与讲解


文章作者: Gao
版权声明: 本博客所有文章除特別声明外,均采用 CC BY 4.0 许可协议。转载请注明来源 Gao !
评论
  目录