CNN学习笔记(一)

一、CNN发展简史

 CNN可以有效降低传统神经网络(全连接)的复杂性,常见的网络结构有LeNet、AlexNet、ZFNet、VGGNet、GoogleNet、ResNet等。

1.CNN典型的几种结构:
  • LeNet(1998年 ): 开启深度学习元年
  • AlexNet(2012年 ): 错误率 15.3%
  • ZFNet(2013年 ): 错误率 14.8%
  • VGGNet(2014年 ): 亚军,错误率 7.3%
  • GoogleNet(2014年 ): 冠军,错误率 6.67 %
  • ResNet(2015年 ): 错误率 3.6 %
2.CNN网络的主要应用场景:
  • 图像分类
  • 目标检测
  • 图像分割
  • 语义分割?

二、CNN网络的主要层次

1.输入层(Input Layer)
网络数据输入之前要进行数据预处理。

  • 数据预处理原因:
     输入数据的单位如果不一样,会导致神经网络收敛速度慢。
     激活函数是有值域限制的,所以需要将输入数据映射到激活函数的值域范围内。

  • 数据预处理方式:
     1)去均值
     2)归一化
     3)PCA降维、白化
     白化:在PCA的基础上,对转换后的数据 每个特征轴上进行归一化处理。

* 实际应用中,一般并不会使用PCA和白化的操作。

2.卷积层(CONV Layer)

\color{red}{权值共享}:给定一张输入图片,用一个filter去扫描这张图,filter里面的数就叫做权重,而这张图的每个位置是被同样的filter扫的,所以卷积计算的权重是一样的,这就是权值共享。

 卷积计算过程如下图所示:

卷积计算过程演示.jpeg

3.激活层(Activiation Layer)

激活层:将卷积层的输出结果再做一次非线性的转换。
 常用的激活函数有:Sigmoid、Tanh、Relu、Leaky Relu、Maxout等。

  • Sigmoid函数
    优点:简单,容易理解
    缺点:容易产生\color{green}{死神经元}(即梯度消失or爆炸爆炸)

    数学公式:
    f\left ( x \right )= \frac{1}{1+e^{-x}} ,值域(0,1)
    导函数:
    {f\left ( x \right )}'= f\left ( x \right )\left ( 1-f\left ( x \right ) \right )
    图像:

    Sigmoid激活函数.png

  • Tanh(双曲正切)函数
    优点:易理解,0中心化
    缺点:容易产生\color{green}{死神经元}

    数学公式:
    f\left ( x \right )= \frac{e^{x}-e^{-x}}{e^{x}+e^{-x}},值域(-1,1)
    导函数:
    {f\left ( x \right )}'= 1-f\left ( x \right )^{2}
    图像:

    Tanh激活函数.png

  • Relu函数
    缺点:没有边界
    优点:相比于Sigmoid和Tanh,具有更快的收敛速度

    数学公式:
    f\left ( x \right )= max\left ( 0,x \right ),值域(0,+\infty)
    导函数:
    {f\left ( x \right )}'= \left\{\begin{matrix} 1, & x> 0\\ 0, & x\leq 0 \end{matrix}\right.
    图像:

    Relu激活函数.png

\color{red}{总结:}

  • 首先使用Relu,如果效果不好,考虑使用Leaky或者Maxout。
  • sigmoid激活函数在CNN中一般不用,而tanh激活函数只在某些特定场景下效果好。
4.池化层(Pooling Layer)

 池化层可以压缩数据减少参数量,减小过拟合。有两种池化层:最大池化和平均池化。(一般选择最大池化)


最大池化.png
5.全连接层(FC Layer)

 全连接层目的:对卷积观测到的局部信息进行整合,得到全局信息。

6.Batch Normalization层

 在网络每一层输入前,插入一个BN归一化层,将输入数据处理为服从高斯分布的数据,然后再进入网络的下一层。

BN层一般放在卷积层后,池化层前:

  • 卷积层 --> Relu激活层 --> BN层 --> 池化层
  • 卷积层 -->BN层 --> Relu激活层 --> 池化层

BN层作用:

  • 防止梯度消失
  • 加快网络训练速度
  • 抑制网络过拟合。
最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

推荐阅读更多精彩内容