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;
条件1要求数据的协方差矩阵是个对角阵;条件2要求数据的协方差矩阵是个单位矩阵。通常情况下,数据进行白化处理与不对数据进行白化处理相比,算法的收敛性较好
去均值和归一化效果图:
PCA和白化的效果图:
2.2、卷积计算层
卷积计算层因进行卷积计算而得名,介绍其特性和计算方式
1、局部连接
选择一个局部区域(卷积核),用这个局部区域扫描整个图片,被选中的所有节点会被连接到到下一层的一个节点中
2.空间共享
当filter扫到其他位置计算输出节点时,,包括是共用的,空间共享引入了先验信息
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 全连接层
两层之间所有神经元都有权重连接,通常全连接层在卷积神经网络尾部。也就是跟传统的神经网络神经元的连接方式是一样的: