卷积神经网络
卷积神经网络(CNN)由输入层,卷积层,激活函数,池化层,全连接层组成。
Input - Conv - Relu - Pool - Fc
- 卷积层:用于特征的提取
输入图像是32 * 32 * 3(R,G,B),用一个5 * 5 * 3 的filter【注意,两个3必须相同】,得到一个28 * 28 * 1 的特征图。
如何由32经由5得到28? 以5经由3得到3为例解释如下:
通常我们会使用多层的卷积得到更深层次的特征。
2. zero pad
为图像加上一个边界,边界元素为0,使得输入图像和卷积之后的特征图维度相同。
例如输入5* 5 * 3, filter 3* 3* 3 ,加上zero pad (5-3)之后变为7 * 7 * 3 ,卷积之后的特征图大小为(5+2-3+1) 5 * 5 * 3
3. 池化层
对输入的特征图进行压缩,使得特征图减小,简化网络计算的复杂度,同时进行特征压缩,提取主要特征。
池化操作如下:对不同位置的特征进行聚合统计。
池化有两种:Avy pooling, Max pooling
Max pooling 如下:max pooling 是在每一个区域取最大值,stride=2. 一般filter取2 * 2,stride取2压缩为原来的1/4, pooling 使得特征图缩小,会影响网络图的精度,可以通过增加图的深度来弥补。
Avy pooling 是取每一个区域的平均值。
4.全连接层
连接所有的特征,将输出值送给分类器(例如softmax分类器)
总体结构如下: