CNN细节
1、各层作用
-
输入层
输入层是整个神经网络的输入,一般代表的是图片的像素矩阵(一般为三维矩阵,即像素x像素x通道) -
卷积层
每一层卷积都会提取数据特征,再经过组合和抽象形成更高阶的特征。 -
池化层
保留最显著的特征,提升模型的畸变容忍能力(平移不变性)。池化层可以非常有效地缩小图片的尺寸。从而减少最后全连接层的参数,在加快计算速度的同时也防止了过拟合的产生,提高了模型的泛化能力。最大池化层(max pooling),计算图像区域内最大值,提取纹理效果较好;平均池化层(mean pooling),计算图像区域的平均值,保留背景更好。 -
全连接层
图像中被抽象成了信息含量更高的特征在经过神经网络完成后续分类等任务。 -
输出层
一般是使用softmax输出概率值或者分类结果。
2、feature map尺寸计算
2.1 卷积层
输入图片的尺寸大小W1 x H1
卷积核(又称滤波器)的大小F x F
输出图片的尺寸大小W2 x H2
stride:S
padding:P
关系式如下:
W2 = (W1-F+2P)/S + 1
H2 = (H1-F+2P)/S + 1
2.2 池化层
输入图片的尺寸大小W1 x H1
卷积核(又称滤波器)的大小F x F
输出图片的尺寸大小W2 x H2
stride:S
关系式如下:
W2 = (W1-F)/S + 1
H2 = (H1-F)/S + 1
3、权值共享
每一个卷积层中使用的过滤器参数是相同的,这就是卷积核的权值共享
- 从直观上理解,共享卷积核可以使得图像上的内容不受位置的影响,这提高了模型对平移的容忍性,这大大的提高了模型提取特征的能力
- 从网络结构上来说,共享每一个卷积层的卷积核,可以大大减少网络的参数,这不仅可以降低计算的复杂度,而且还能减少因为连接过多导致的严重过拟合,从而提高了模型的泛化能力。