卷积核越大越好吗 卷积核

【随笔记录】1 * 1卷积核的作用前言
之前只是知道1x1的卷积核用在Inception模块中具有降维的作用,并没有认真的思考它是怎么样实现降维的,以及它还有哪些作用 。于是查阅了一些资料,并记录了它的一些作用,如下:
灵活的控制特征图的深度
1x1的卷积核由于大小只有1x1,所以并不需要考虑像素跟周边像素的关系,它主要用于调节通道数,对不同的通道上的像素点进行线性组合,然后进行非线性化操作,可以完成升维和降维的功能,如下图所示,选择2个1x1大小的卷积核,那么特征图的深度将会从3变成2,如果使用4个1x1的卷积核,特征图的深度将会由3变成4 。
image
减少参数
前面所说的降维,其实也是减少了参数,因为特征图少了,参数也自然跟着就减少,相当于在特征图的通道数上进行卷积,压缩特征图,二次提取特征,使得新特征图的特征表达更佳 。接着再通过两个例子来看看它是如何减少参数的 。
1、在GoogleNet的3a模块中,假设输入特征图的大小是 2828 192,1x1卷积通道为64,3x3卷积通道为128,5x5卷积通道为32,如下图所示:
image
左边的卷积核参数计算如下:
192 × (1×1×64) +192 × (3×3×128) + 192 × (5×5×32) = 387072
而右图的3x3卷积层前加入通道数为96的1x1的卷积,5x5的特征图后面加入通道数为16的1x1的卷积,参数的计算如下:
192 × (1×1×64) +(192×1×1×96+ 96 × 3×3×128)+(192×1×1×16+16×5×5×32)= 157184
Inception结构相关内容补充:
Inception 结构的主要思路是怎样用密集成分来近似最优的局部稀疏结构 。
上面左图是作者提出来的基本结构,说明如下:
(1)采用不同大小的卷积核意味着不同大小的感受野,最后拼接意味着不同尺度特征的融合;
(2)之所以卷积核大小采用1、3和5,主要是为了方便对齐 。设定卷积步长stride=1之后,只要分别设定pad=0、1、2,那么卷积之后便可以得到相同维度的特征,然后这些特征就可以直接拼接在一起了;
(3)文章说很多地方都表明pooling挺有效,所以Inception里面也嵌入了 。
(4)网络越到后面,特征越抽象,而且每个特征所涉及的感受野也更大了,因此随着层数的增加,3x3和5x5卷积的比例也要增加 。
【卷积核越大越好吗 卷积核】 Factorizing Convolutions with Large Filter Size,也就是分解大的卷积,用小的卷积核替换大的卷积核,因为大尺寸的卷积核可以带来更大的感受野,但也意味着更多的参数,比如5x5卷积核参数是3x3卷积核的25/9=2.78倍 。因此可以用2个连续的3x3卷积层(stride=1)组成的小网络来代替单个的5x5卷积层,(保持感受野范围的同时又减少了参数量),也就产生了Inception V2;而nxn的卷积核又可以通过1xn卷积后接nx1卷积来替代,也就是Inception V3结构,但是作者发现在网络的前期使用这种分解效果并不好,还有在中度大小的feature map上使用效果才会更好 。(对于mxm大小的feature map,建议m在12到20之间).
如下图:从左到右是Inception V1~IncVeption V3,需要指出的是将7′7卷积拆成1x7卷积和7x1卷积,比拆成3个3x3卷积更节约参数
image
2、在ResNet模块中,假设输入的特征图的维度是w h 256,并且最后要输出的也是256个特征图,如下图所示:
image
左边的计算如下:
w * h * 256 * 3 * 3 * 256 =589824 * w * h
右边的计算如下:
w * h * 256 * 1 * 1 * 64 + w * h * 64 * 3 * 3 * 64 +w * h * 64 * 1 * 1 * 256 = 69632 * w * h
结果相差大概8.5倍 。
3、实现了跨通道的信息组合,并增加了非线性特征
使用1 * 1卷积核,实现降维和升维的操作其实就是channel间信息的线性组合变化,3 * 3,64channels的卷积核前面添加一个1 * 1,28channels的卷积核,就变成了3 * 3,28channels的卷积核,原来的64个channels就可以理解为跨通道线性组合变成了28channels,这就是通道间的信息交互 。因为1 * 1卷积核,可以在保持feature map尺度不变的(即不损失分辨率)的前提下大幅增加非线性特性(利用后接的非线性激活函数),把网络做的很deep,增加非线性特性 。
参考文献
链接:
来源:

卷积核越大越好吗 卷积核

文章插图
卷积神经网络卷积核大小对准确率的影响卷积神经网络卷积核大小对准确率的影响
一般来说,卷积核越大,对于图像特征值获取的效果越好,但是对应地,需要训练的参数就越多,因此会应当到运算能力,进一步影响到图像识别的整体效率 。与之对应,卷积核越小,图像识别过程中的精细程度就会有所提升,但是想要获取到同样水平的图像特征,只能依赖更多的计算层数 。并且较小的卷积核意味着在计算中会存在更多的Rectified Linear Units层,在识别能力上也会因此更强 。因此在当前用于图像识别环境中的卷积神经网络算法,多采用3×3或者5×5尺寸的卷积核展开工作 。而Rectified Linear Units层则负责实现神经网络的激活函数控制,多为Rectified函数 。Rectified Linear Units层的引入,能够有效减少训练时间,提升整体算法性能 。在输入图像经过了这样两个层级的处理之后,其中的没一个像素点都包括了周围区域的相关信息,这带来了较多的信息冗余,而为了提升算法的性能和鲁棒性,就需要对图像展开二次采样,并且形成新的图像 。在二次采样的过程中,需要对区域进行重新划分,如果划分区域彼此之间存在重叠,则成为Overlapping Pooling,否则被称作为Non-overlapping Pooling,Pooling层的称谓因此而来 。这一层不需要训练,并且比较常见的做法是采用可以重叠的,取最大值的Pooling算法,用以对过度拟合展开适当控制 。最后,规范化层,即规范化神经层(Normalization Layer),其价值在于提升图像的对比性,通常通过计算图像的对比“平均值”,来对图像的每个像素展开调整,使得图像的主体部分能够和背景更加具有区分度 。这一个层面在图像识别中并非必不可少,因此只有当卷积核较大的时候,才会引入这一层级展开加工 。

秒懂生活扩展阅读