自己写这篇是希望温故知新,很多时候一些基本的概念慢慢模糊掉了。
参考链接1
参考链接2
一、卷积层
这个简略总结一下,具体参考自己的另一篇文章
卷积层的作用:对输入图片进行特征提取。
输入的图片与kernel进行卷积得到输出。
注意:kernel的数目要跟input channel的数目保持一致。一个kernel只和一个channel进行卷积。
下图展示了3通道输入,如何通过两个3层卷积核变成2通道输出。
激活函数:卷积层的最后一部分。作用:增加输出的非线性。常用ReLu或者Tanh激活函数。下图展示了输入经过卷积层和激活函数得到了非线性输出。图中有一个bias,关于bias的问题在本文快结尾的地方会讲到。
二、池化层
池化层的作用是降低输入图片的尺寸。
在卷积神经网络中,每一个卷积层后面总会跟着一个池化层。
添加池化层的作用是加速运算并且使得一些检测到的特征更加robust。
池化操作也会用到kernel和步长。在下图中,22的filter用于池化44的输入,步长为2。
左边为最大池化(从每个patch里去最大值去create the reduced map),右边为平均池化。
每种颜色称为一个patch。
三、全连接层
全连接层出现在卷积神经网络的末尾。
在全连接层之前,前面的很多层产生的feature map被压缩成一个向量。这个向量被喂到全连接层中。
全连接层的输出是一个一维的特征向量。
下图是一个用于二值图分类的CNN的简易结构。其输入是32323的RGB三通道图。输出的尺寸为2(等于classification的classs的数目)。第一层为有553kernel的卷积层,第二层为最大池化层,kernel的尺寸为2,第三层为553kernel的卷积层,第四层为最大池化层,kernel的尺寸为2,其输出被压缩成一个向量,并且被喂到最后两层中,最后两层都是全连接层。