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

本文详细介绍了1x1卷积核在卷积神经网络中的重要作用,包括增加网络深度、升维/降维、跨通道信息交互和减少参数量。1x1卷积核能够在不改变特征图尺寸的同时增加非线性特性,通过改变通道数实现特征图的维度调整,并有效地减少模型复杂度。此外,1x1卷积核在GoogLeNet和ResNet等深度网络结构中被广泛利用,以降低计算成本并提高模型性能。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

前言

这里就不赘述卷积神经网络相关内容了,直接通过博主看的一些资料,自己进行了一些整合,大佬绕道。
对于1x1卷积核的作用主要可以归纳为以下几点

  1. 增加网络深度(增加非线性映射次数)
  2. 升维/降维
  3. 跨通道的信息交互
  4. 减少卷积核参数(简化模型)

在这里插入图片描述

1、普通卷积

在这里插入图片描述

这里首先展示了一个我们最常见的卷积方式(通道数为1),一个5x5的图怕,通过一个3x3的卷积核提取特征得到一个3x3的结果。如果这里的卷积核是1x1的,那么效果如下
在这里插入图片描述

2、1x1卷积核作用

2.1 增加网络深度(增加非线性映射次数)

首先直接从网络深度来理解,1x1 的卷积核虽小,但也是卷积核,加 1 层卷积,网络深度自然会增加。
1x1卷积核,可以在保持feature map尺度不变的(即不损失分辨率)的前提下大幅增加非线性特性(利用后接的非线性激活函数),把网络做的很深。并且1x1卷积核的卷积过程相当于全连接的计算过程,通过加入非线性激活函数,可以增加网络的非线性,使得网络可以表达更复杂的特征。
具体来说,引用一下「frank909」博客的内容:
其实问题往下挖掘,应该是增加网络深度有什么好处?为什么非要用 1x1 来增加深度呢?其它的不可以吗?

其实,这涉及到感受野的问题,我们知道卷积核越大,它生成的 featuremap 上单个节点的感受野就越大,随着网络深度的增加,越靠后的 featuremap 上的节点感受野也越大。因此特征也越来越抽象。

但有的时候,我们想在不增加感受野的情况下,让网络加深,为的就是引入更多的非线性。

而 1x1 卷积核,恰巧可以办到。

我们知道,卷积后生成图片的尺寸受卷积核的大小和跨度影响,但如果卷积核是 1x1 ,跨度也是 1,那么生成后的图像大小就并没有变化。

但通常一个卷积过程包括一个激活函数,比如 Sigmoid 和 Relu。

所以,在输入不发生尺寸的变化下,却引入了更多的非线性,这将增强神经网络的表达能力

2.2、升维/降维

其实这里的升维、降维具体指的是通道数的变化,当我们确定了卷积核尺寸后,我们的height、width都不变,那么这里的维度具体指的就是channels。我们通过改变卷积核的数量来改变卷积后特征图的通道channels来实现升维、降维的效果。这样可以将原本的数据量进行增加或者减少
下面分别举两个例子就能明显看到效果
在这里插入图片描述

2.2.1 升维

在这里插入图片描述

2.2.2 降维

在这里插入图片描述

在这里插入图片描述

其实很明显的能看出来,无论是升维还是降维,我们都是通过改变卷积核的数量实现的,卷积后的特征图的通道数channels同卷积核的数量保持一致,这里其实不仅仅是1x1卷积核能实现这个功能,其他尺寸的卷积核也可以,那么我们为什么要选用1x1卷积核呢

2.2.3 使用1x1卷积核升维/降维的原因

当我们仅仅只是想要改变通道数的情况下,1x1卷积核是最小的选择,因为大于1x1的卷积核无疑会增加计算的参数量,内存也会随之增大,所以只想单纯的去提升或者降低特征图的通道,选用1x1卷积核最为合适, 1x1卷积核会使用更少的权重参数数量

2.3 跨通道的信息交互

1x1卷积核只有一个参数,当它作用在多通道的feature map上时,相当于不同通道上的一个线性组合,实际上就是加起来再乘以一个系数,但是这样输出的feature map就是多个通道的整合信息了,能够使网络提取的特征更加丰富。

使用1x1卷积核,实现降维和升维的操作其实就是 channel 间信息的线性组合变化。

比如:在尺寸 3x3,64通道个数的卷积核后面添加一个尺寸1x1,28通道个数的卷积核,就变成了尺寸3x3,28尺寸的卷积核。 原来的64个通道就可以理解为跨通道线性组合变成了28通道,这就是通道间的信息交互。

注意:只是在通道维度上做线性组合,W和H上是共享权值的滑动窗口。

2.4 减少卷积核参数(简化模型)

下面仅以计算权重数为例子进行计算(不添加bias)

2.4.1 一层卷积添加1x1卷积核,分别计算权重数

(1)不使用1x1卷积核
在这里插入图片描述
(2)使用1x1卷积核
在这里插入图片描述
可以看到不使用1x1的卷积核是使用卷积核的10倍左右

2.4.2 GoogLeNet的3a模块

(1)不使用1x1卷积核
在这里插入图片描述
在这里插入图片描述

权重数:192 × (1×1×64) +192 × (3×3×128) + 192 × (5×5×32) = 387072
这个网络的说明如下
(1)采用不同大小的卷积核意味着不同大小的感受野,最后拼接意味着不同尺度特征的融合;
(2)之所以卷积核大小采用1、3和5,主要是为了方便对齐。设定卷积步长stride=1之后,只要分别设定pad=0、1、2,那么卷积之后便可以得到相同维度的特征,然后这些特征就可以直接拼接在一起了;
(3)文章说很多地方都表明pooling挺有效,所以Inception里面也嵌入了。
(4)网络越到后面,特征越抽象,而且每个特征所涉及的感受野也更大了,因此随着层数的增加,3x3和5x5卷积的比例也要增加。
(2)使用1x1卷积核

在这里插入图片描述
在这里插入图片描述

权重数:192 × (1×1×64) +(192×1×1×96+ 96 × 3×3×128)+(192×1×1×16+16×5×5×32)= 157184

不使用1x1的卷积核是使用1x1卷积核的权重数2倍

2.4.3 ResNet

ResNet同样也利用了1×1卷积,并且是在3×3卷积层的前后都使用了,不仅进行了降维,还进行了升维,参数数量进一步减少
在这里插入图片描述
其中右图又称为”bottleneck design”,目的一目了然,就是为了降低参数的数目,第一个1x1的卷积把256维channel降到64维,然后在最后通过1x1卷积恢复,
当我们的特征图通道数为256时,变得很大,出现的问题是计算复杂度会很高,这里做法是通过1×1卷积投影映射回64维,再做一个3×3通道数不变的卷积,然后再通过1×1卷积投影回去256维,因为输入是256维,输出要匹配上,这样设计之后复杂度就跟左图差不多了。
左图参数量:64 x ( 3 x 3 x 64)+64 x ( 3 x 3 x 64 ) = 73728
当通道数增加到 256时:256 x ( 3 x 3 x 256 ) + 256 x ( 3 x 3 x 256 ) = 1179648
右图参数量:256 x ( 1 x 1 x 64) + 64 x ( 3 x 3 x 64 ) + 256 x ( 1 x 1 x 64) = 69632

当通道数增加为256时,可以发现添加两层1x1的卷积的参数量和64为原有残差块参数量差不多。

对于常规ResNet,可以用于34层或者更少的网络中,对于Bottleneck Design的ResNet通常用于更深的网络中,目的是减少计算和参数量(实用目的)

参考资料

一文读懂卷积神经网络中的1x1卷积核
1x1卷积核的作用
【深度学习】CNN 中 1x1 卷积核的作用
深度学习 1x1卷积核的作用
1x1卷积的作用

### 1x1 卷积核的功能与作用 在神经网络中,1x1卷积核是一种特殊的卷积操作形式,其主要功能在于调整通道数以及实现特征的线性组合。对于给定的一个输入张量 \( x \),如果它的形状为 [1, 3, 640, 640],通过应用一个具有 16 个滤波器的 1x1 卷积层之后,输出张量的形状会变为 [1, 16, 640, 640][^3]。 #### 调整通道数量 1x1 卷积的核心用途之一就是改变输入数据中的通道维度(即深度)。这可以通过设置不同的过滤器数目来完成。例如,在上述例子中,原始图像有三个颜色通道(RGB),而经过一层带有十六个不同权重矩阵的 1x1 卷积处理后,生成了一个新的特征图集合,其中包含了十六种独立计算得到的新特性表示。 ```python import torch.nn as nn conv_1x1 = nn.Conv2d(in_channels=3, out_channels=16, kernel_size=1) output_tensor = conv_1x1(input_tensor) # Assuming input_tensor has shape [1, 3, 640, 640] print(output_tensor.shape) # Output will be [1, 16, 640, 640] ``` 这种变换不仅能够增加模型表达能力,还可以减少参数总量从而降低过拟合风险;另外当需要压缩高维空间时也非常有用——比如在网络设计过程中常用到降维技术以提高效率并保持性能不变甚至有所提升的情况之下。 #### 特征融合 除了单纯地修改尺寸外,另一个重要方面涉及到了如何利用这些小型化后的感受野来进行局部区域内信息的有效聚合。具体来说,每一个位置上的响应实际上是基于该处所有前序层所提供出来的多尺度上下文线索加权求和而成的结果。因此即使没有显式的跨像素交互过程存在于此阶段之中,仍然可以捕捉到来自更广泛范围内的依赖关系模式[^2]。 综上所述,尽管表面上看起来简单直白,但实际上1×1大小的卷积单元却蕴含着极其丰富的内涵价值所在之处,并且已经成为现代CNN架构不可或缺的一部分组成部分了。
评论 13
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值