2. 卷积神经网络细解
数据输入层
对于通常情况下的数据预处理,有3种常见的数据处理方式:
- 去均值:把输入数据各个维度都中心化到0
- 归一化:幅度归一化至同样的范围
- PCA/白化:PCA用于降维;白化是对数据每个特征走上的幅度归一化
下面是去均值与归一化的可视化:
在图像分类中的数据预处理一般只需要将图片统一处理为同样的分辨率然后去均值。因为图像数据各个通道的取值为都在[0,255],所以不需要做归一化。
下面介绍两个网络的做法:
- AlexNet:假设训练集一共有200w张图片,将这些图片各个通道的值加在一起取均值。然后每张图片输入时减去这个均值再进入网络。
- VGG:
卷积计算层
可以认为图像有一种局部关联的特性,这就可以引入一个滑动的窗口,对局部进行计算。可以认为下一层的神经元只关注了一个局部的特性。
涉及概念:
- 深度/depth
- 步长/stride
- 填充值/zero-padding
卷积计算过程
![去均值和归一化](https://img2018.cnblogs.com/blog/1531067/201902/1531067-20190215140409109-1113650176.jpg)
激励层
将卷积层的输入结果做出非线性的效果
以前常用sigmoid函数,但是它存在一个问题,当靠近两端时,梯度几乎为0,出现梯度消失的情况,使得模型难以学习。
相比之下RELU数学表达简单,神经网络收敛快。
池化层
夹杂在连续的卷积层中,压缩数据和参数的量,减少过拟合。分为max pooling 和 average pooling
全连接层
一般在CNN的尾部