zoukankan      html  css  js  c++  java
  • 1*1卷积核的作用

    作用:

    1. 实现跨通道的交互和信息整合

    2. 进行卷积核通道数的降维和升维

    (作用1)


     

    图:多通道+多卷积核做卷积示意图。

    如图,输入图像layer m-1有4个通道,同时有2个卷积核w1和w2。

    对于卷积核w1,先在输入图像4个通道分别作卷积,再将4个通道结果加起来得到w1的卷积输出;卷积核w2类似。

    所以对于某个卷积层,无论输入图像有多少个通道,输出图像通道数总是等于卷积核数量。

    对多通道图像做1x1卷积,其实就是将输入图像于每个通道乘以卷积系数后加在一起,即相当于把原图像中本来各个独立的通道“连”在了一起

    (作用2)


    1、1x1的卷积核(可能)引起人们的重视是在NIN的结构中,利用MLP代替传统的线性卷积核,从而提高网络的表达能力。

    文中同时利用跨通道的pooling的角度解释,认为论文中剔除的MLP其实等价于在传统卷积核后面接cccp层,从而实现多个feature map的线性组合,实现跨通道的信息整合。

    而cccp层是等价于1x1卷积的,因此细看NIN的caffe实现,就是在每个传统卷积后面接了两个cccp层(其实就是解了两个1x1卷积层)。


    2、进行降维和升维引起人们重视的(可能)是在GoogleNet里。对于每一个inception模块(如下图),原始模块是左图,右图中是加入了1x1卷积核进行降维的。


     
    image.png

    虽然左图中的卷积核都比较小,但是当输入和输出的通道数很大时,乘起来也会使得卷积核参数变很大,而右图加入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卷积层的前后都使用了,不仅进行了降维,还进行了升维,使得卷积层的输入和输出的通道数都见笑,参数数量进一步减小,如下图所示。


     



  • 相关阅读:
    SAP CRM 开发学习资料和教程整理【不定时更新】
    HANA CDS与ABAP CDS
    在CDS(Core Data Services)中使用DCL(Data Control Language)
    SAP中的ALE, IDOC
    ABAP 中JSON格式的转换与解析
    ABAP 在被访问的程序中获取访问程序的全局变量
    这不是我想要的ABAP开发者
    Macvlan技术
    Dockerfile
    css之position
  • 原文地址:https://www.cnblogs.com/shona/p/10941396.html
Copyright © 2011-2022 走看看