@深度学习基础入门篇(1)一 卷积神经网络CNN(Convolutional Neural Networks)
结构:输入层、卷积层、池化层、全连接层、输出层
卷积神经网络结构如下图所示:
一、CNN–Convolution
如上图所示,左图为6 X 6 feature map(特征图),右图为若干个3 X 3 Filter(卷积核)
卷积过程如下:
当步长为1时,Filter1与原特征图进行卷积,卷积过程为矩阵相应位置相乘之和。如图为:
1 * 1+0*(-1)+0*(-1)+0*(-1)+1 * 1+0*(-1)+0*(-1)+0*(-1)+1 * 1=3.
之后从左往右,从上向下依次卷积。得到4 X 4大小的新特征图。
新特征图的大小计算为: Sn = (S1-S2)/stride + 1 (其中Sn为新特征图大小,S1为原特征图大小,S2为卷积核大小,stride为步长,如:4 =(6-3)/1 + 1)
如图所示原特征图在两此卷积后生成的新特征图为 4 X 4 X 2,此时depth = 2,特征图的层数和卷积核数有关。
CNN-pooling
常用的池化方法有Max pooling和 average pooling。
以上卷积后产生了4 X 4 X 2的新特征图
如上图所示对特征图进行2 X 2的池化,stride设定为2,经过Maxpooling和Average pooling分别得:
在处理池化过程中与卷积略有不同,池化的步长一般设置为与上一次不重叠(也有不同,见下文举例),如以上stride = 2.池化后的大小计算与卷积后的大小计算相似。
CNN-Flatten 和全连接
如上图,将池化后的特征图拉长,最后做全连接。
举例—MTCNN中P-Net说明卷积和池化操作:
[1]: [B站李宏毅CNN视频](https://www.bilibili.com/video/av23593949? from=search&seid=17675224164423254630)