目录
2 为什么最近的卷集核尺寸选择区域1x1 3x3 很少见5x5?
闲话
深度学习学习的是分布式特征,所以一般特征图越小,通道数就越多,有利于网络的表达。全链接就是对分布式特征的重组。或者是从1024衰减。
卷集
1 卷集核选择个数
一般 CNN 中两层之间会含有多个卷积核,目的是学习出 Input 的不同特征,对应得到多个特征图。又由于卷积核中的参数是通过 GD 优化得到而非我们设定的,于是初始化就显得格外重要了
如何设计呢?一般是2的指数被增长,最大一般到1024。
2 为什么最近的卷集核尺寸选择区域1x1 3x3 很少见5x5?
https://arxiv.org/pdf/1409.1556.pdf
原因有二:
首先,您可以使用几个较小的核而不是几个较大的核来获得相同的感受野并捕获更多的空间上下文,但是使用较小的内核时,您使用的参数和计算量较少。
其次,因为使用更小的核,您将使用更多的滤波器,您将能够使用更多的激活函数,从而使您的CNN学习到更具区分性的映射函数。
3 卷集核尺寸都是奇数呢?
卷积核一般都把size设为奇数,主要有两个原因:
-
保证 锚点 刚好在中间,方便以 central pixel 为标准进行滑动卷积,避免了位置信息发生 偏移 。
-
保证填充(Padding),在图像之间添加额外的零层,图像的两边相 对称,以使输出图像的大小与输入相同。
4 padding方式“SAME”和“VALID
“VALID”:只会丢掉最右边的列(或最底部的行)
“SAME”:尝试向左或右均匀填充,但如果添加的列数是奇数,它将向右添加偶数,向左侧添加奇数个列(向下添加偶数个列,向上添加奇数个列)为了不影响原来的图像像素信息,一般以0来填充。这就不难理解不同的padding方式输出的形状会有所不同了。
在CNN用处理文本时,一般卷积层设置卷积核的大小为n×k,其中k为输入向量的维度(即[n,k,input_channel_num,output_channel_num]),这时候我们就需要选择“VALID”填充方式,这时候窗口仅仅是沿着一个维度扫描而不是两个维度,可以理解为统计语言模型当中的N-gram。
池化
1 池化核尺寸都是偶数呢?
2 mean max 的作用
常用的池化方法有最大池化(max-pooling)和均值池化(mean-pooling)。根据相关理论,特征提取的误差主要来自两个方面:
(1)邻域大小受限造成的估计值方差增大;
(2)卷积层参数误差造成估计均值的偏移。
一般来说,mean-pooling能减小第一种误差,更多的保留图像的背景信息,max-pooling能减小第二种误差,更多的保留纹理信息。
max-pooling卷积核的大小一般是2×2。 非常大的输入量可能需要4x4。 但是,选择较大的形状会显着降低信号的尺寸,并可能导致信息过度丢失。 通常,不重叠的池化窗口表现最好。
百度的说明
卷集
也可以从另外一个角度理解卷积核的意义。学过信号处理的同学应该记得,时域卷积对应频域相乘。所以原图像与卷积核的卷积,其实是对频域信息进行选择。比如,图像中的边缘和轮廓属于是高频信息,图像中某区域强度的综合考量属于低频信息。在传统图像处理里,这是指导设计卷积核的一个重要方面。
1x1的卷积核有什么作用?
1*1的卷积核在NIN、Googlenet中被广泛使用,
作用:
1. 实现跨通道的交互和信息整合
2. 进行卷积核通道数的降维和升维
3.对于单通道feature map 用单核卷积即为乘以一个参数,而一般情况都是多核卷积多通道,实现多个feature map的线性组合
4、可以实现与全连接层等价的效果。如在faster-rcnn中用1*1*m的卷积核卷积n(如512)个特征图的每一个位置(像素点),其实对于每一个位置的1*1卷积本质上都是对该位置上n个通道组成的n维vector的全连接操作。