1 池化(pooling)层的理解
池化,也即降采样(subsample),降低数据的大小。
池化(pooling)
2 池化方法
常用的池化方法是:最大值池化(max_pooling),平均值池化。其中,最常用的是最大值池化。
3 池化过程
通过使用一个池化核,并采用max_pooling进行池化。
如图所示,池化核的大小是2*2,切记,池化核里面的数值其实是原始图片中的像素值,池化核只是类似于一个模具,里面并没有参数。
进行池化过程,同样需要一个步长(包括高,宽,通道)
使用池化层时,必须定义其大小,步长,padding类型
4 池化作用
…可以减少计算量,内存使用,参数数量(防止过拟合)
…提高神经网络的容错能力(图片发生平移,位置的变动)
5 池化和卷积的异同:
(1)通道方面:
池化前几个通道,池化后还是几个通道。
上一层的feature map的个数(也即图层个数)与下一层的卷积和通道数一致。
(2)卷积对应有卷积核,池化对应有池化核。卷积核里面有参数,但是池化核只是一个框架,里面没有参数。
(3)使用方面都需要,定义其大小(size),步长(stride),padding类型。
(4)卷积里面一般用padding same ;池化里面用padding valid
6 卷积中使用“same”模式
目的是为了保证每个像素点都可以扫描到。
输出神经元个数等于输入神经元个数除以步长(向上取整)ceil(13/5)=3
7 使用zero padding相关计算
一:(“same”模式下)
(1)原始图片的高,宽可以被步长整除
Eg:输入图片为6*6,卷积核大小为3*3,步长为(1,2)
那么feature map的大小(h,w),h=6/1=5,w=6/2=3(向上取整)
此时,若用“same”模式:需要补0的个数如何计算?
Feature map 高度上需要的补0行数:3-1=2
Feature map 宽度上需要的补0列数:3-3=0
(2)原始图片的高,宽不可以被步长整除
Eg:输入图片为5*5,卷积核大小为3*3,步长为(1,2)
那么feature map的大小(h,w),h=5/1=5,w=5/2=3(向上取整)
Feature map 高度上需要的补0行数:3-1=2(行)
Feature map 宽度上需要的补0列数:3-(5%2)=2(列)
原始图片高度能整除步长的高,需补0个数:卷积核高-步长高
原始图片宽度不能整除步长的宽,需补0个数:卷积核宽-(输入图片的宽与步长的宽取余)。
二:valid模式下
如果原始图片的大小为32*32,卷积核大小为5*5,卷积核的个数为8,步长为(1,1)
那么,feature map的高为:(32-5)/1+1=28,宽为:(32-5)/1+1=28。
其中公式为:(原始图片大小-卷积核大小)/步长+1即可得到feature map的大小。
feature map的个数为8,也即卷积核的个数。
总结:
padding = “SAME”输入和输出大小关系如下:
输出大小等于输入大小除以步长向上取整,s是步长大小;
padding = “VALID”输入和输出大小关系如下:
输出大小等于输入大小减去滤波器大小加上1,最后再除以步长(f为滤波器的大小,s是步长大小)。