好的,下面我会从多个角度为你详细介绍 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=1Cinwk,cxi,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} K2CinCout

  • 1×1 卷积的参数量:

    C i n ⋅ C o u t C_{in} \cdot C_{out} CinCout

对比:如果 K=3,那么 1×1 卷积的参数量仅为 1/9

这就是为什么它能显著减少计算量的原因。


5. 总结与写作建议

  • 1×1 卷积的核心作用

    1. 通道维度的变换(降维、升维)。
    2. 跨通道特征融合。
    3. 降低计算复杂度。
    4. 提升网络非线性表达能力。
  • 在经典网络中的地位

    • 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到最前沿的模型都离不开它的身影。

参考文献

深度学习笔记(六):1x1卷积核的作用归纳和实例分析

【模型】一篇入门之-CNN的1x1卷积的意义

【深度学习】1×1卷积的作用与原理详解

深度学习基础入门篇[9.2]:卷积之1*1 卷积(残差网络)、2D/3D卷积、转置卷积数学推导、应用实例

卷积神经网络中用1*1 卷积有什么作用或者好处呢?

深度学习基础学习-1x1卷积核的作用(CNN中)

一文读懂卷积神经网络中的1x1卷积核

卷积神经网络中的1*1卷积究竟有什么用?

深度学习基础入门篇[9.2]:卷积之1*1 卷积(残差网络)

1*1卷积核作用(两种理解方法)

深度学习:一文读懂 12种卷积方法

Network In Network

Logo

码道开发者社区,聚焦华为云码道 CodeArts 代码智能体,沉淀 Agent、Skill、鸿蒙开发实战内容,供开发者查阅资料、交流技术、分享工程实践

更多推荐