【深度学习】1*1卷积你不能不知道的知识!
好的,下面我会从多个角度为你详细介绍 1×1 卷积 在深度学习中的作用,你可以直接将这些内容作为专业博客的素材。
1. 基本概念与数学形式
什么是 1×1 卷积?
- 卷积核大小为 1×1 的卷积操作,即卷积核只在空间维度上覆盖单个像素,但在通道维度上依然会对所有输入通道进行线性加权。
- 设输入特征图大小为 H×W×C_in,卷积核大小为 1×1×C_in,输出通道数为 C_out,则输出特征图为 H×W×C_out。
数学表达式:
y i , j , k = ∑ c = 1 C i n w k , c ⋅ x i , j , c + b k y_{i,j,k} = \sum_{c=1}^{C_{in}} w_{k,c} \cdot x_{i,j,c} + b_k yi,j,k=c=1∑Cinwk,c⋅xi,j,c+bk
可以看到,它并不改变空间分辨率 (H×W),只在通道维度上进行线性变换。
2. 作用与直观理解
2.1 通道变换(Channel Mixing)
-
1×1 卷积本质上是一个逐像素的全连接层,它能够对每个像素位置的通道特征进行线性组合。
-
可以把它理解为 对通道维度的降维或升维 操作:
- 降维:从 256 通道 → 64 通道,减少计算量。
- 升维:从 64 通道 → 256 通道,提升特征表达能力。
2.2 特征压缩与信息瓶颈
- 在 GoogLeNet (Inception) 中,大量使用 1×1 卷积进行特征压缩(Bottleneck Layer),减少后续大卷积 (如 3×3, 5×5) 的输入通道数,从而大幅降低计算量。
2.3 增加网络的非线性表达能力
- 如果在 1×1 卷积后接上 ReLU 激活函数,相当于给网络增加了额外的非线性层。
- 这样可以使网络更深、更有表达力。
2.4 跨通道信息融合
- 传统的大卷积(如 3×3)主要聚合空间邻域信息,而 1×1 卷积主要聚合通道信息。
- 通过组合空间卷积与 1×1 卷积,网络能够同时建模 空间相关性 和 通道相关性。
3. 典型应用场景
3.1 GoogLeNet (Inception)
- 在 Inception 模块中,1×1 卷积被用于 降维,减少 3×3 和 5×5 卷积的计算开销。
- 极大提升了效率,使得 Inception 在保持高准确率的同时计算成本可控。
3.2 ResNet (Residual Network)
-
在 bottleneck 结构 中,使用
1×1 → 3×3 → 1×1的组合。- 第一个 1×1:降维,减少计算。
- 中间的 3×3:提取空间特征。
- 最后的 1×1:升维,恢复通道数。
-
这种设计能保证计算量低,同时保持较强的表达能力。
3.3 MobileNet / ShuffleNet
- 在轻量化网络中,1×1 卷积(又叫 pointwise convolution)是深度可分离卷积的核心部分。
- 通过深度卷积(depthwise convolution)处理空间信息,再用 1×1 卷积融合通道,实现高效计算。
3.4 注意力机制 (SE-Net)
- 在 SE 模块中,1×1 卷积用于 通道注意力权重的映射。
- 类似于全连接层的作用,使模型能自适应地调整不同通道的重要性。
4. 计算复杂度分析
假设输入特征图大小为 H×W×C_in,输出通道数为 C_out:
-
普通卷积 (K×K) 的参数量:
K 2 ⋅ C i n ⋅ C o u t K^2 \cdot C_{in} \cdot C_{out} K2⋅Cin⋅Cout
-
1×1 卷积的参数量:
C i n ⋅ C o u t C_{in} \cdot C_{out} Cin⋅Cout
对比:如果 K=3,那么 1×1 卷积的参数量仅为 1/9。
这就是为什么它能显著减少计算量的原因。
5. 总结与写作建议
-
1×1 卷积的核心作用:
- 通道维度的变换(降维、升维)。
- 跨通道特征融合。
- 降低计算复杂度。
- 提升网络非线性表达能力。
-
在经典网络中的地位:
- GoogLeNet:压缩通道,降低计算量。
- ResNet:Bottleneck 模块的关键。
- MobileNet:深度可分离卷积的重要组成。
- SENet:通道注意力机制中的映射工具。
好的,我们来详细、深入地探讨一下深度学习(特别是CNN中)1x1卷积(1x1 Convolution) 的作用。它虽然看起来简单,但却是现代深度卷积神经网络中不可或缺的“神器”。
我们可以从以下几个核心作用来理解它:
1. 跨通道的信息交互与降维/升维(核心作用)
这是1x1卷积最著名和最重要的功能。它提供了一种智能的方式来组合和变换特征图的通道数。
-
工作原理:想象一个大小为
H x W x C_in的特征图(Feature Map)。使用C_out个 1x1 的卷积核(每个核的大小是1 x 1 x C_in)对其进行卷积操作。- 每个1x1卷积核会遍历输入特征图的每一个空间位置(H x W)。
- 在每个位置上,它实际上是在进行一次加权求和:它会对所有
C_in个通道上该位置的像素值进行线性组合,然后加上一个偏置项,最后通过一个非线性激活函数(如ReLU)。 C_out个卷积核就会产生C_out个新的特征图,最终输出尺寸为H x W x C_out。
-
降维(Dimensionality Reduction):
- 当
C_out < C_in时,例如从256个通道减少到64个通道。这可以显著减少后续卷积层(如3x3, 5x5)的计算量和参数量。 - 经典例子:GoogLeNet的Inception模块。在Inception模块中,会在昂贵的3x3和5x5卷积之前,先用1x1卷积进行降维,就像一个“瓶颈层”(Bottleneck Layer),大大降低了计算成本。
- 当
-
升维(Dimensionality Increase):
- 当
C_out > C_in时,可以增加通道数,从而扩展网络的宽度, potentially 捕捉更复杂的特征组合。
- 当
-
跨通道交互:
- 即使不改变通道数(
C_out = C_in),1x1卷积也提供了一种让不同通道的信息进行交互和融合的方式。它可以学习如何重新校准通道间的权重,强调重要的特征,抑制不重要的特征。这与SENet中的SE模块的思想有相通之处。
- 即使不改变通道数(
2. 保持空间维度并引入非线性
- 空间维度保持:1x1卷积的核大小是1,意味着它在高度和宽度上不会进行任何聚合或下采样。输入是
H x W,输出仍然是H x W。它只操作于通道维度上。 - 增加非线性:在1x1卷积之后通常会紧跟一个非线性激活函数(如ReLU)。这使得网络能够在保持空间结构的同时,增加模型的非线性表达能力,让网络能够学习更复杂的函数。如果没有这个非线性,多层1x1卷积堆叠就等价于一层1x1卷积,模型的深度就浪费了。
3. 替代全连接层(Fully Connected Layer)
在最后的分类层中,传统CNN使用全连接层将特征图“压平”成一个向量进行分类。但这会引入巨大的参数量(例如,7x7x512 -> 4096,参数量为7x7x512x4096 ≈ 102M)。
- 使用 1x1卷积 + 全局平均池化(Global Average Pooling) 可以巧妙地替代FC层。
- 具体做法:在最后的卷积层后,使用
num_classes个 1x1 卷积核。例如,输入是7x7x1024,使用1000个1x1卷积核,得到7x7x1000的输出。然后对这个输出进行全局平均池化,直接得到一个1000维的向量,每个元素代表对应类别的置信度。 - 优点:
- 极大减少参数量:参数量仅为
1024 * 1000 ≈ 1M,比上面的例子少了100倍。 - 输入尺寸更灵活:由于卷积操作对输入尺寸没有要求,这种网络可以处理任意大小的输入图像,而全连接层要求输入尺寸固定。
- 极大减少参数量:参数量仅为
4. 实现通道间的“特征池化”或“注意力机制”的雏形
你可以将1x1卷积看作是在每个空间点上(共H x W个点),对所有通道( C i n C_{in} Cin个)进行的一次微型的全连接操作。它学习的是如何将 C i n C_{in} Cin个特征“池化”或“整合”成 C o u t C_{out} Cout个新特征。
这个概念进一步发展就成了强大的注意力机制。例如:
- Squeeze-and-Excitation Networks (SENet):其中的“Squeeze”操作(使用全局平均池化获取每个通道的全局信息)和“Excitation”操作(使用两个全连接层,其中第一个就是起到了1x1卷积降维的作用)来显式地建模通道间的相关性。
- 在Transformer和Vision Transformer中,1x1卷积的思想类似于线性投影(Linear Projection),用来变换特征的维度。
总结与类比
为了帮助你更好地记忆和理解,可以做一个简单的类比:
1x1卷积就像一个在每一个像素点上运行的“迷你神经网络”,它的任务是对这个像素点所有的通道值进行一个加权组合和变换。
| 作用 | 描述 | 类比 |
|---|---|---|
| 降维/升维 | 灵活地减少或增加特征图的通道数,控制模型复杂度和计算量。 | “项目经理”:合理分配资源(通道数),让后续的大计算量层(3x3卷积)更高效地工作。 |
| 跨通道交互 | 学习如何融合不同通道的信息,增强有用特征,抑制无用特征。 | “调音师”:调整不同乐手(通道)的音量大小,让整个乐队(特征图)的演奏更和谐。 |
| 增加非线性 | 在保持空间结构的同时,增加模型的表达能力。 | “激活剂”:在简单的线性组合后加入“火花”(非线性),让网络更强大。 |
| 替代全连接 | 用极少的参数量实现分类功能,并让网络适应不同尺寸的输入。 | “高效分类员”:用更聪明(参数更少)的方式完成分类任务。 |
总而言之,1x1卷积绝不仅仅是一个简单的数学运算,它是构建高效、强大、深度网络的关键组件,从经典的GoogLeNet到最前沿的模型都离不开它的身影。
参考文献
深度学习基础入门篇[9.2]:卷积之1*1 卷积(残差网络)、2D/3D卷积、转置卷积数学推导、应用实例
更多推荐



所有评论(0)