卷积神经网络的结构及对卷积的理解

1、参考

https://www.cnblogs.com/skyfsm/p/6790245.html

https://zhuanlan.zhihu.com/p/27642620

2、卷积神经网络的层级结构:
      • 数据输入层/ Input layer
  • 卷积计算层/ CONV layer
  • ReLU激励层 / ReLU layer
  • 池化层 / Pooling layer
  • 全连接层 / FC layer

2.1 数据输入层

该层要做的处理主要是对原始图像数据进行预处理,其中包括:
  • 去均值:把输入数据各个维度都中心化为0,如下图所示,其目的就是把样本的中心拉回到坐标系原点上。
  • 归一化:幅度归一化到同样的范围,如下所示,即减少各维度数据取值范围的差异而带来的干扰,比如,我们有两个维度的特征A和B,A范围是0到10,而B范围是0到10000,如果直接使用这两个特征是有问题的,好的做法就是归一化,即A和B的数据都变为0到1的范围。
  • PCA/白化:用PCA降维;白化的目的就是降低输入的冗余性,假设训练数据是图像,由于图像中相邻像素之间具有很强的相关性,所以用于训练时输入是冗余的。

白化对数据做白化处理必须满足两个条件:

  1. 使数据的不同维度去相关;

  2. 使数据每个维度的方差为1;

条件1要求数据的协方差矩阵是个对角阵;条件2要求数据的协方差矩阵是个单位矩阵。通常情况下,数据进行白化处理与不对数据进行白化处理相比,算法的收敛性较好

去均值和归一化效果图:

PCA和白化的效果图:

2.2、卷积计算层

卷积计算层因进行卷积计算而得名,介绍其特性和计算方式

1、局部连接

选择一个局部区域(卷积核),用这个局部区域扫描整个图片,被选中的所有节点会被连接到到下一层的一个节点中

2.空间共享

 当filter扫到其他位置计算输出节点y_i 时,w_1,w_2,w_3,w_4包括b_0是共用的,空间共享引入了先验信息

 3、输出表达

图片不用向量去表示是为了保留图片平面结构的信息。 同样的,卷积后的输出若用上图的排列方式则丢失了平面结构信息。 所以我们依然用矩阵的方式排列它们,就得到了下图所展示的连接。

4.depth维的处理

在2D卷积中,filter在张量的width维, height维上是局部连接,在depth维上是贯串全部channels的

注意:三个channels的权重并不共享。 即当深度变为3后,权重也跟着扩增到了三组,下式所示,不同channels用的是自己的权重。 式子中增加的角标r,g,b分别表示red channel, green channel, blue channel的权重。

2.3 激励层

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

激励层的实践经验
  ①不要用sigmoid!不要用sigmoid!不要用sigmoid!
  ② 首先试RELU,因为快,但要小心点
  ③ 如果2失效,请用Leaky ReLU或者Maxout
  ④ 某些情况下tanh倒是有不错的结果,但是很少

2.4 池化层

池化层夹在连续的卷积层中间, 用于压缩数据和参数的量,减小过拟合。
简而言之,如果输入是图像的话,那么池化层的最主要作用就是压缩图像。

2.5 全连接层

两层之间所有神经元都有权重连接,通常全连接层在卷积神经网络尾部。也就是跟传统的神经网络神经元的连接方式是一样的:

原文地址:https://www.cnblogs.com/abella/p/10256076.html