← 返回题目列表

1×1 卷积有什么作用?它不是没有空间信息吗?

高频 中等 第 2 / 25 题 更新于 2026/08/02
卷积神经网络1x1卷积通道降维

简化版

1×1 卷积(卷积核大小 1×1)看似「只看一个像素、没有空间信息」,但它的作用在通道(channel)维度上,非常重要:① 改变通道数(升维/降维)——用 N 个 1×1 卷积核就能把输入的 C 个通道变成 N 个通道,常用来降维减少计算量(如在 3×3 卷积前用 1×1 把通道压小,即「瓶颈 bottleneck」结构);② 跨通道信息融合——1×1 卷积在每个空间位置上对所有输入通道做加权组合,实现通道间的信息交互③ 增加非线性——1×1 卷积后接激活函数,能在在 stride=1 且 padding 合适时不改变空间尺寸的情况下加深网络、增强表达。它是 GoogLeNet(Inception)、ResNet 瓶颈结构、MobileNet 等的关键组件。

详细版

1×1 卷积在做什么:

输入:H × W × C_in (C_in 个通道)
1×1 卷积核(共 C_out 个):每个核大小 1×1×C_in
输出:H × W × C_out
- 空间尺寸 H×W 不变
- 通道数从 C_in 变成 C_out
- 每个输出 = 该位置所有输入通道的加权和(+偏置+激活)

三大作用:

作用说明
改变通道数升维/降维,控制通道数(降维省计算)
跨通道融合对每个位置的所有通道做加权组合
增加非线性配合激活函数,加深网络不改空间尺寸

降维省计算的例子(bottleneck):

直接 256通道 → 3×3卷积 → 256通道:参数 ≈ 3×3×256×256 ≈ 59万
先 1×1 降到 64 → 3×3 → 1×1 升回 256:参数大幅减少(ResNet 瓶颈)

完整版教学

一、疑问:1×1 卷积不是「什么都没做」吗

初看 1×1 卷积很奇怪:卷积核只有 1×1,每次只覆盖一个像素位置,好像没有提取任何空间信息(不像 3×3 能看邻域)。那它有什么用?

关键在于——图像的卷积是三维的,除了空间(H×W),还有通道(channel)维度。1×1 卷积虽然在空间上只看一个点,但它在通道维度上是「全连接」的:它对这个位置上的所有输入通道做加权组合。所以 1×1 卷积的作用不在空间,而在通道维度——这才是理解它的钥匙。

二、作用一:改变通道数(升维/降维)

1×1 卷积最重要的作用是灵活地改变通道数

  • 输入是 H×W×C_in,用 C_out 个 1×1 卷积核(每个核大小是 1×1×C_in),输出就是 H×W×C_out
  • 空间尺寸 H×W 完全不变,只有通道数从 C_in 变成 C_out。

想降维(减少通道)就让 C_out < C_in,想升维就 C_out > C_in。这在控制网络计算量上极其有用:

经典用途——降维省计算(瓶颈 bottleneck 结构):直接对高通道数做大卷积核很贵。可以先用 1×1 卷积把通道数压小、做完 3×3 卷积、再用 1×1 升回来

朴素:256 通道 →(3×3 卷积)→ 256 通道
      参数 ≈ 3×3×256×256 ≈ 59 万

瓶颈:256 →(1×1 降到 64)→ 64 →(3×3)→ 64 →(1×1 升回 256)→ 256
      参数大幅减少,效果相近

ResNet 的瓶颈块、GoogLeNet 的 Inception 都用 1×1 卷积在昂贵的大卷积前后降维/升维,大幅节省计算和参数

三、作用二:跨通道信息融合

1×1 卷积在每个空间位置上,对该位置的所有输入通道做加权求和——这相当于在通道之间做了一次「信息交互/混合」。

  • 不同通道往往对应不同的特征(一个通道检测边缘、一个检测颜色……),1×1 卷积把这些通道的信息线性组合起来,生成新的、融合了多通道信息的特征。
  • 这被形象地称为「跨通道的信息整合」或「network in network」里的微型网络。

所以 1×1 卷积虽然不看空间邻域,却在做通道维度的特征重组,是很有价值的操作。

在固定空间位置上,1×1 卷积把 C_in 维向量乘以一个共享矩阵,生成 C_out 维向量。每个输出通道都可以组合全部输入通道,因此它能学习颜色、纹理或语义通道之间的交互。它不混合相邻空间位置,这部分空间建模通常由 3×3、depthwise 卷积或其他算子完成。

四、作用三:增加非线性、加深网络

1×1 卷积后面通常接一个激活函数(ReLU)。这意味着:

  • 可以在不改变特征图空间尺寸、不增加太多参数的情况下,插入一层「1×1 卷积 + 激活」,增加一层非线性变换、加深网络、增强表达能力
  • 这是 NIN(Network in Network) 提出 1×1 卷积的初衷之一——用它构建「微型网络」增加非线性。

单独一个 1×1 卷积仍是线性通道投影,只有与 ReLU、GELU 等非线性组合后才增加非线性表达。连续堆叠多个纯线性 1×1 卷积在没有其他约束时可合并为一个线性映射。实际架构还要考虑归一化顺序和瓶颈宽度,不能只按层数判断表达能力。

五、在经典架构中的应用

  • GoogLeNet / Inception:Inception 模块里,在 3×3、5×5 卷积前用 1×1 卷积降维,大幅减少计算量,让「多尺度并行卷积」变得可行。
  • ResNet 瓶颈块(Bottleneck)1×1 降维 → 3×3 → 1×1 升维,让很深的网络计算可控。
  • MobileNet:深度可分离卷积里,用 1×1 卷积(逐点卷积 pointwise)做通道融合。
  • SENet 等注意力模块:也常用 1×1 卷积做通道维度的变换。

可以说 1×1 卷积是现代高效 CNN 架构的标准积木

六、算清瓶颈结构到底省了多少参数

输入和输出均为 256 通道,直接使用 3×3 卷积需要 3×3×256×256=589824 个权重。若先用 1×1 降到 64 通道,再做 3×3,最后用 1×1 升回 256,权重分别为 16384、36864、16384,合计 69632。忽略偏置时约减少 8.47 倍,但中间通道过窄也会损失表达能力。

路径参数量
直接 3×3:256→256589824
1×1:256→6416384
3×3:64→6436864
1×1:64→25616384
瓶颈合计69632

1×1 卷积的核心价值是对每个空间位置执行共享的通道投影。它可以降维、升维或配合激活增加通道方向的非线性;若 stride 大于 1,也能同时下采样,因此“永远不改变 H、W”不成立。

瓶颈宽度是容量与成本的折中参数,不能只追求最小参数量。

七、常见误区与追问

  • 误区:1×1 卷积无论如何都不改变空间尺寸。 stride 大于 1 时会下采样,输出尺寸仍由通用卷积公式决定。
  • 误区:1×1 卷积没有感受野所以没有用。 它能在每个位置混合全部输入通道,是重要的通道投影。
  • 追问:为什么瓶颈中间常配非线性? 在线性投影之间加入激活可增强函数表达,但具体布局随架构而异。
  • 追问:1×1 与全连接有何关系? 它是在所有空间位置共享参数的逐位置全连接。
  • 追问:降维比例如何选择? 结合精度、吞吐和内存做消融,过度压缩会形成信息瓶颈。

八、加强记忆

1×1 卷积看似「只看一个像素、没空间信息」,但它作用在通道维度(对每个位置的所有输入通道做加权组合)。三大作用:① 改变通道数(升维/降维,用 C_out 个 1×1 核把通道从 C_in 变 C_out,空间尺寸不变;常用降维省计算,如先 1×1 压小通道再做 3×3,即 ResNet 瓶颈、Inception);② 跨通道信息融合(把不同通道的特征线性重组);③ 增加非线性(配激活函数,不改空间尺寸就加深网络)。它是 GoogLeNet/Inception、ResNet 瓶颈、MobileNet 等高效架构的标准积木。记住:1×1 卷积不改空间、只玩通道。