什么是卷积核?卷积是图像处理常用的方法,给定输入图像,在输出图像中每一个像素是输入图像中一个小区域中像素的加权平均,其中权值由一个函数定义,这个函数称为卷积核,
比如说卷积公式:R(u,v)=∑∑G(u-i,v-j)f(i,j),其中f为输入,G为卷积核 。
1*1卷积核的作用(作用1)
(作用2)
1、1x1的卷积核(可能)引起人们的重视是在NIN的结构中,利用MLP代替传统的线性卷积核,从而提高网络的表达能力 。文中同时利用跨通道的pooling的角度解释,认为论文中剔除的MLP其实等价于在传统卷积核后面接cccp层,从而实现多个feature map的线性组合,实现跨通道的信息整合 。而cccp层是等价于1x1卷积的,因此细看NIN的caffe实现,就是在每个传统卷积后面接了两个cccp层(其实就是解了两个1x1卷积层) 。
2、进行降维和升维引起人们重视的(可能)是在GoogleNet里 。对于每一个inception模块(如下图),原始模块是左图,右图中是加入了1x1卷积核进行降维的 。
虽然左图中的卷积核都比较小,但是当输入和输出的通道数很大时,乘起来也会使得卷积核参数变很大,而右图加入1x1卷积后可以降低输入的通道数,卷积核参数、运算复杂度也就降下来了 。以GoogleNet里的3a模块为例,输入的feature map是28x28x192,3a模块中的1x1卷积通道为64, 3x3卷积通道为128, 5x5卷积通道为32,如图左图结构,那么卷积核参数为:1x1x192x64+3x3x192x128 +5x5x192x32.
而右图对3x3和5x5卷积层前分别加入了通道数为96和16的1x1卷积层,参数就成了:1x1x192x64+(1x1x192x96+3x3x96x128)+(1x1x192x16+5x5x16x32) 。整个参数大约减少了三分之一 。
同时,在并行pooling层后面加入1x1卷积核后可以降低输出的feature map数量,左图pooling后feature map是不变的,再加卷积层就得到feature map,会使输出的feature map扩大到416,如果每个模块都这样,网络的输出会越来越大 。而右图在pooling后面加入了通道为32的1x1卷积,使得输出的feature map数降到了256.
GoogleNet利用1x1的卷积降维后,得到了更为紧凑的网络结构,虽然总共22层,但是参数数量却只有8层的AlexNet的十二分之一(当然很大一部分原因可能是去掉了全连接层) 。
近来十分热门的MSRA同样也利用了1x1卷积,并且是在3x3卷积层的前后都使用了,不仅进行了降维,还进行了升维,使得卷积层的输入和输出的通道数都见笑,参数数量进一步减小,如下图所示 。
具体参见: caffe cn
秒懂生活扩展阅读
- flck频率是什么
- 核桃花生黑芝麻怎样才能打成粉末
- 蓝藻有核糖体吗
- 核桃能和人参起吃吗
- 新安全观的核心内涵是什么
- 文玩核桃缝里黑色刷不干净怎么办
- 社会主义法治的核心原则是什么
- 原核生物中核糖体是怎么形成的
- 黄豆核桃芝麻可以放一起打豆浆吗
- 2022年4月份去北京环球影城需不需要做核酸 4月份去北京环球影城需要什么手续