使用三个不同大小的卷积核主要是为了减少参数的数量。
1.首先是卷积核的数量问题
2.其次是参数数量的计算:
3.增加跨通道信息的交互和增加非线性
1.首先是卷积核的数量问题
因为一张图片可能有很多特征,所以可能需要学习多个卷积核用来提取图像特征。
图中不同颜色代表不同的特征,需要学习对应数量的卷积核进行特征提取。
对于灰度图像,图像为2D
例如一个图像大小是5×5,
有一个3×3的卷积核对着图像进行卷积,步长为1,卷积结束后生成一个3×3的矩阵。
如果有2组卷积核对着图像卷积,就会生成2个3×3的矩阵。
同理有多少组卷积核对图像卷积就有多少个矩阵。
这个叫做通道。
对于RGB图像,图像为3维
若要提取2个特征,可以设置2个3维卷积核进行特征提取,提取结果为2通道的feature map,2个通道互相独立,代表着不同卷积核提取的不同特征。
2.其次是参数数量的计算:
-
概念图
进行卷积处理的卷积通道数默认和输入图像的通道数相等。
比如输入图像维度为256,进行特征提取的卷积核也默认是256维。
若设定输出64个特征,那么就一共有64个256维的卷积核用来提取特征,即提取特征的输出通道数为64,输出64个feature map。
-
运算过程
第一个1x1的卷积把256维channel降到64维,然后在最后通过1x1卷积恢复,参数数目:1x1x256x64 + 3x3x64x64 + 1x1x64x256 = 69632,全连接层(左图)就是两个3x3x256的卷积,参数数目: 3x3x256x256x2 = 1179648,差了16.94倍。
3. 增加跨通道信息的交互和增加非线性
如果卷积的输出输入都只是一个平面,那么1x1卷积核并没有什么意义,它是完全不考虑像素与周边其他像素关系。 但卷积的输出输入是长方体,所以1x1卷积实际上是对每个像素点,在不同的channels上进行线性组合(信息整合),且保留了图片的原有平面结构,调控depth,从而完成升维或降维的功能。