1×1 卷积核的作用

一、来源:[1312.4400] Network In Network (如果1×1卷积核接在普通的卷积层后面,配合激活函数,即可实现network in network的结构)

二、应用:GoogleNet中的Inception、ResNet中的残差模块

三、作用:

1、降维(减少参数)

例子1 : GoogleNet中的3a模块

输入的feature map是28×28×192

1×1卷积通道为64

3×3卷积通道为128

5×5卷积通道为32

左图卷积核参数:192 × (1×1×64) +192 × (3×3×128) + 192 × (5×5×32) = 387072

右图对3×3和5×5卷积层前分别加入了通道数为96和16的1×1卷积层,这样卷积核参数就变成了: 

192 × (1×1×64) +(192×1×1×96+ 96 × 3×3×128)+(192×1×1×16+16×5×5×32)= 157184

同时在并行pooling层后面加入1×1卷积层后也可以降低输出的feature map数量(feature map尺寸指W、H是共享权值的sliding window,feature map 的数量就是channels)

左图feature map数量:64 + 128 + 32 + 192(pooling后feature map不变) = 416 (如果每个模块都这样,网络的输出会越来越大)

右图feature map数量:64 + 128 + 32 + 32(pooling后面加了通道为32的1×1卷积) = 256 

GoogLeNet利用1×1的卷积降维后,得到了更为紧凑的网络结构,虽然总共有22层,但是参数数量却只是8层的AlexNet的十二分之一(当然也有很大一部分原因是去掉了全连接层) 

 

例子2:ResNet中的残差模块

假设上一层的feature map是w*h*256,并且最后要输出的是256个feature map

左侧操作数: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倍。(实现降维,减少参数)

 

2、升维(用最少的参数拓宽网络channal)

例子:上一个例子中,不仅在输入处有一个1*1卷积核,在输出处也有一个卷积核,3*3,64的卷积核的channel是64,只需添加一个1*1,256的卷积核,只用64*256个参数就能把网络channel从64拓宽四倍到256。

 

3、跨通道信息交互(channal 的变换)

例子:使用1*1卷积核,实现降维和升维的操作其实就是channel间信息的线性组合变化,3*3,64channels的卷积核后面添加一个1*1,28channels的卷积核,就变成了3*3,28channels的卷积核,原来的64个channels就可以理解为跨通道线性组合变成了28channels,这就是通道间的信息交互。

注意:只是在channel维度上做线性组合,W和H上是共享权值的sliding window

 

4、增加非线性特性

1*1卷积核,可以在保持feature map尺度不变的(即不损失分辨率)的前提下大幅增加非线性特性(利用后接的非线性激活函数),把网络做的很deep。

 

备注:一个filter对应卷积后得到一个feature map,不同的filter(不同的weight和bias),卷积以后得到不同的feature map,提取不同的特征,得到对应的specialized neuro。

 

四、从fully-connected layers的角度来理解1*1卷积核

将其看成全连接层

左边6个神经元,分别是a1—a6,通过全连接之后变成5个,分别是b1—b5

左边6个神经元相当于输入特征里面的channels:6

右边5个神经元相当于1*1卷积之后的新的特征channels:5

左边 W*H*6 经过 1*1*5的卷积核就能实现全连接

In Convolutional Nets, there is no such thing as “fully-connected layers”. There are only convolution layers with 1x1 convolution kernels and a full connection table– Yann LeCun

 

参考:

 1. One by One [ 1 x 1 ] Convolution - counter-intuitively useful /1X1卷积核到底有什么作用呢?关于1*1卷积核的理解如何理解卷积神经网络中的1*1卷积

 2. https://zhuanlan.zhihu.com/p/35814486

 

<think>我们正在讨论1x1卷积核作用。根据用户提供的引用,1x1卷积核在卷积神经网络中有多种作用,包括特征降维、多通道整合以及改变通道数等。用户特别询问1x1卷积核作用及应用场景。因此,我们将结合引用内容进行回答。引用[1]提到1x1卷积可以用于特征降维和升维,它在网络架构优化、计算效率提升和特征表达增强方面起作用。引用[3]详细说明了1x1卷积核作用:降低通道数(从而减少计算量和复杂度)、多通道整合(在concat操作后整合信息)、以及改变通道数(增加或减少通道数)。引用[4]则提到在Inception网络中,1x1卷积用于辅助特征整合,减少特征图的通道数,使得不同路径的特征可以在相同维度上合并。因此,我们将围绕这些点展开,并给出清晰的解释和应用场景。注意:回答中需要使用LaTeX格式的数学表达式,并且按照要求添加引用标识。我们将按照以下结构组织回答:1.1x1卷积核的基本定义2.主要作用(结合引用详细说明)a.特征降维(降低通道数,减少计算量)b.特征升维(增加通道数)c.跨通道信息整合(特征融合)d.在Inception网络中的应用(作为例子)3.应用场景总结4.相关问题注意:由于引用中已经提供了具体内容,我们将自然地融入这些内容并标注引用。</think> ### 1×1卷积核在深度学习中的作用及应用场景 #### 一、1×1卷积核的本质 1×1卷积核是一个尺寸为 $1 \times 1 \times c$ 的权重张量,其中 $c$ 表示输入通道数。它在空间维度上无感知能力,但能对通道维度进行线性变换: $$ \text{输出}_{c'}(x,y) = \sum_{c=1}^C W(1,1,c,c') \cdot \text{输入}_c(x,y) + b_{c'} $$ 本质上实现通道间的**加权组合**与**维度变换**[^1][^3]。 #### 二、核心作用详解 1. **通道降维(减少计算量)** - 通过减少输出通道数(如 $C_{\text{in}}=256 \rightarrow C_{\text{out}}=64$)显著降低后续层计算量 - 例如:输入为$28\times28\times256$时,接$3\times3\times256$卷积需 $$ 28\times28\times3\times3\times256\times C_{\text{out}} ≈ 16\text{M} \times C_{\text{out}} \text{次乘法} $$ 增加1×1卷积降维至64通道后,计算量减少**75%**[^3] 2. **通道升维(特征深化)** - 在不增加空间计算量的前提下扩展通道维度 - 常用于: - 残差连接中匹配维度 - 提升特征表达能力(如MobileNet中扩展通道) 3. **跨通道特征整合** - 实现通道间的信息融合与非线性增强 - 典型应用: ```python # Inception模块中的特征整合 x = torch.cat([conv1x1(x), conv3x3(x), conv5x5(x)], dim=1) # 多尺度特征拼接 x = nn.Conv2d(256, 128, kernel_size=1)(x) # 1×1卷积整合信息[^4] ``` 4. **非线性增强** - 配合激活函数(如ReLU)可增强模型表达能力: $$ \text{输出} = \text{ReLU}(\text{Conv}_{1\times1}(\text{输入})) $$ - 比全连接层更高效(保留空间信息) #### 三、核心应用场景 | **场景** | **作用机制** | **典型案例** | |------------------------|-----------------------------------------------------------------------------|---------------------| | **网络瓶颈层** | 减少计算量同时保持特征有效性 | ResNet中的bottleneck | | **多分支特征融合** | 统一不同卷积路径输出维度 | Inception系列[^4] | | **轻量化网络设计** | 配合深度可分离卷积降低参数量 | MobileNet v1/v2 | | **通道注意力机制** | 生成通道权重(如SENet中squeeze操作) | SENet, CBAM | | **特征重标定** | 调整特征重要性(接Sigmoid作为门控机制) | SKNet, GCNet | #### 四、性能优势对比 | **操作** | **参数量(示例)** | **计算量(FLOPs)** | **特征保留能力** | |---------------------|-----------------|------------------|----------------| | 3×3卷积(C=256→256) | 256×256×9=590K | 28×28×9×256²≈46M | 空间+通道 | | 全连接层 | 28²×256²≈12.8M | 同左 | 仅全局语义 | | **1×1卷积(C=256→64)** | 256×64=16K | 28²×256×64≈12.8M | **纯通道信息** | > 💡 **设计经验**:在ResNet-50中,使用1×1卷积的bottleneck结构将参数量减少到原始块的**1/4**,同时保持95%+的模型精度[^1][^3]。 --- ### 相关问题 1. 1×1卷积如何与深度可分离卷积协同工作? 2. 为什么说1×1卷积等价于全连接层但更高效? 3. 1×1卷积在注意力机制中的具体实现方式是? 4. 如何通过可视化理解1×1卷积的通道整合效果? 5. 1×1卷积在3D卷积神经网络中有哪些扩展应用?
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值