||
1*1卷积过滤器 和正常的过滤器一样,唯一不同的是它的大小是1*1,没有考虑在前一层局部信息之间的关系。最早出现在 Network In Network的论文中 ,使用1*1卷积是想加深加宽网络结构 ;在Inception网络( Going Deeper with Convolutions )中用来降维,如下图:
图1 Inception的举例
此为Inception的结构,尽管也有不同的版本,但是其动机都是一样的:消除尺寸对于识别结果的影响,一次性使用多个不同filter size来抓取多个范围不同的概念,并让网络自己选择需要的特征。
你也一定注意到了蓝色的1x1卷积,撇开它,先看左边的这个结构。 输入(可以是被卷积完的长方体输出作为该层的输入)进来后,通常我们可以选择直接使用像素信息(1x1卷积)传递到下一层,可以选择3x3卷积,可以选择5x5卷积,还可以选择max pooling的方式downsample刚被卷积后的feature maps。 但在实际的网络设计中,究竟该如何选择需要大量的实验和经验的。 Inception就不用我们来选择,而是将4个选项给神经网络,让网络自己去选择最合适的解决方案。 接下来我们再看右边的这个结构,多了很多蓝色的1x1卷积。 这些1x1卷积的作用是为了让网络根据需要能够更灵活的控制数据的depth的。
1x1卷积核示范说明
如果卷积的输出输入都只是一个平面,那么1x1卷积核并没有什么意义,它是完全不考虑像素与周边其他像素关系。 但卷积的输出输入是长方体,所以1x1卷积实际上是对每个像素点,在不同的channels上进行线性组合(信息整合),且保留了图片的原有平面结构,调控depth,从而完成升维或降维的功能。
如图2所示,如果选择2个filters的1x1卷积层,那么数据就从原本的depth 3 降到了2。若用4个filters,则起到了升维的作用。 这就是为什么上面Inception的4个选择中都混合一个1x1卷积,如右侧所展示的那样。 其中,绿色的1x1卷积本身就1x1卷积,所以不需要再用另一个1x1卷积。 而max pooling用来去掉卷积得到的Feature Map中的冗余信息,所以出现在1x1卷积之前,紧随刚被卷积后的feature maps。(目前不清楚调换顺序会有什么影响)
图2 1*1卷积升降维
总结来说,1*1卷积主要有以下作用:
1、升维,降维或保持不变(通道数channels)。比如,一张500 * 500且厚度depth为100 的图片在20个filter上做1*1的卷积,那么结果的大小为500*500*20。
2、加入非线性。多个1*1的卷积核级联加上配套的非线性激活函数(non-linear activation),将feature map的多通道线性组合变为非线性组合(信息整合),提高特征抽象能力,提升网络的表达能力。
【参考】
https://www.zhihu.com/question/56024942
https://haokan.baidu.com/v?vid=17425239680936457786&pd=bjh&fr=bjhauthor&type=video
点滴分享,福泽你我!Add oil!
Archiver|手机版|科学网 ( 京ICP备07017567号-12 )
GMT+8, 2025-1-5 16:16
Powered by ScienceNet.cn
Copyright © 2007- 中国科学报社