问小白 wenxiaobai
资讯
历史
科技
环境与自然
成长
游戏
财经
文学与艺术
美食
健康
家居
文化
情感
汽车
三农
军事
旅行
运动
教育
生活
星座命理

卷积神经网络(CNN)中1×1卷积核详解

创作时间:
作者:
@小白创作中心

卷积神经网络(CNN)中1×1卷积核详解

引用
CSDN
1.
https://m.blog.csdn.net/gkoyu/article/details/146255390

1×1卷积核在卷积神经网络(CNN)中扮演着关键角色,主要用于调整通道数、融合通道信息以及优化计算效率。下面将对它详细解析:

1. 调整通道数(升维或降维)

1×1卷积核可用于增加或减少特征图的通道数。通过设置不同数量的1×1卷积核,可以实现对通道数的精确控制,从而达到升维或降维的目的(实际是改变通道数)。

示例:

  • 左侧部分(红、绿、蓝):代表输入特征图,包含多个通道(如图3个通道)。
  • 中间部分:代表 1×1 卷积核,它对输入特征图的每个像素点进行通道间加权计算,而不改变空间维度(即长宽)。
  • 右侧部分(米黄色):代表输出特征图。

如上图所示,使用1个 1×1卷积核,则卷积后由3个通道数降维成1个通道数。

如上图所示,使用2个 1×1卷积核,则卷积后由3个通道数降维成2个通道数。

如上图所示,使用4个 1×1卷积核,则卷积后由3个通道数升维成4个通道数。

2. 融合通道间信息

传统卷积主要关注空间特征,而1×1卷积核则侧重于通道间的信息融合。每次卷积均是由多个通道和卷积核进行线性组合,从而实现通道间的信息交互,提升特征表达能力。

3. 降低计算量

在深度可分离卷积(Depthwise Separable Convolution)中,1×1卷积核用于降低计算量。首先,对每个通道独立执行深度卷积(depthwise convolution),然后使用1×1卷积将通道信息进行线性组合。这种方法显著减少了参数数量和计算复杂度。

3.1. 传统卷积的计算量

假设我们有一个输入特征图,尺寸为:

,如果使用标准的
卷积核(如 3×3)
,并且输出通道数为
,那么计算量如下:

3.2.1×1 卷积的计算量

相比之下,在其他参数相同的情况下,1×1 卷积的卷积核大小是1×1,所以计算量变成:

比 3×3 卷积减少了 9 倍!

4. 增强非线性表达能力

虽然1×1卷积核本质上是线性变换,但是可以在保持
feature map
尺度不变的(即不损失分辨率)的前提下大幅增加非线性特性,利用后接的非线性激活函数(如ReLU),可以增强模型的非线性表达能力。

5. 应用案例

5.1 GoogLeNet中的Inception模块:

在GoogLeNet的Inception模块中,使用1×1卷积核来减少通道数,从而降低计算量。在保持性能的同时,提高了计算效率。

示意图:

5.2 ResNet中的Bottleneck Block结构:

ResNet采用了Bottleneck Block结构,其中包含两个1×1卷积层,用于先减少再恢复通道数,降低了参数量。(如图由
变成

示意图:

© 2023 北京元石科技有限公司 ◎ 京公网安备 11010802042949号