卷积层和池化层的区别是什么?
来源:4-22 动手实现CNN卷积神经网络(四)
JoGeen
2018-04-19
老师,我就这张图有几个理解上的疑问。下面我说一下我的理解和疑问,请老师指正和解答一下。
理解部分
1、在第一个输入28*28*1之后,通过5*5卷积层(32个filter)变成了28*28*32 其中28*28的尺寸没有变是因为5*5的卷积我们补了两圈0以及步长是1的原因,所以卷积之后和原来一样。*32是因为通过了32个filter的处理,所以原来的厚度为1的矩阵变成了32.
2、在第二步,28*28*32经过了2*2池化层(1个filter),因为步长为2,另外不需要补0,所以经过池化层之后变成了14*14*32.
疑问部分
1、我感觉卷积层和池化层他们的本质好像都一样。至少在图中所示,只是因为步长、补0、size和filter个数 这个四个参数不一样,导致处理后的结果不一样。
2、第一个池化层(5*5,步长1,补0,32个filter)处理28*28*1得到28*28*32
第二个池化层(5*5,步长1,补0,64个filter)处理28*28*32得到28*28*64 ,我不明白为什么第二个得到的是64.我以为第一个1*32=32的结果,第二个应该是32*64=2048.那么这个64是怎么得出来的呢?
3、老师我知道这个一定是我理解上有偏差,导致的我上面这个两个疑问。但是我还有两个疑问应该跟上面的理解没有关系。第三个问题,我想问构建卷积层和池化层的层数的依据是什么呢?第四个问题,是否卷积层和池化层都是一一间隔起的?
上面的就是我理解和疑问,麻烦老师您讲解一下。谢谢老师!
1回答
-
Oscar
2018-04-23
理解部分:
二维的尺寸没有变是因为 padding='same'(same 是英语「相同的」的意思,表示输出的大小不变)。和卷积核二维大小(5 x 5)和步长为 1 没什么关系。
疑问部分:
卷积层和池化层本质不一样(不然为什么要折腾出两个层,不过也有些许类似)。卷积层是对图像的一个邻域进行卷积得到图像的邻域特征,池化层(或者说 亚采样层 更好理解)就是使用 pooling(亚采样)技术将小邻域内的特征点整合得到新的特征。
第二个是 64 相当于它的厚度,因为有 64 个 filter(卷积核或者过滤器)啊,这你在理解部分已经 OK 了。
构建卷积层和池化层的层数的依据主要还是对于具体问题的最优模型吧。不过卷积层和池化层不一定要是一层叠一层的,完全可以有其他不同模型。比如一个卷积层后接一个另一个卷积层,再接一个卷积层,然后才接一个池化层。
加油,问题都很不错。祝你进步~
00