普通卷积

普通卷积的计算过程:
在这里插入图片描述
多输入通道计算过程:

在这里插入图片描述

  • 对每个输入通道分别计算,并将每个通道的输出结果求和。

多输出通道计算过程:

在这里插入图片描述

对每个输出通道分别进行卷积操作。Tips :

  • 卷积操作还需要加上偏置项。
  • 每个输出通道使用不同的偏置参数。

最后将不同输出通道的结果堆叠在一起。


1x1 卷积

1×1 卷积,与标准卷积完全一样,唯一的特殊点在于卷积核的尺寸是1×1 ,也就是不去考虑输入数据局部信息之间的关系,而把关注点放在不同通道间。

当输入矩阵的尺寸为3×3 ,通道数也为3时,使用4个1×1卷积核进行卷积计算,最终就会得到与输入矩阵尺寸相同,通道数为4的输出矩阵,如下图所示。

在这里插入图片描述
1x1 卷积的作用:

  1. 实现信息的跨通道交互与整合。考虑到卷积运算的输入输出都是3个维度(宽、高、多通道),所以1×1卷积实际上就是对每个像素点,在不同的通道上进行线性组合,从而整合不同通道的信息。
  2. 对卷积核通道数进行降维和升维,减少参数量。经过1×1 卷积后的输出保留了输入数据的原有平面结构,通过调控通道数,从而完成升维或降维的作用。
  3. 利用1×1 卷积后的非线性激活函数,在保持特征图尺寸不变的前提下,大幅增加非线性。

分组卷积

分组卷积(Group Convolution)是一种卷积操作方式,它最早在AlexNet中引入,并在深度学习中被广泛使用,尤其是在高效模型设计(如MobileNet和ResNeXt)中。分组卷积通过将输入特征通道分为若干组,并在每组内单独进行卷积操作,可以减少计算复杂度和参数量,同时有效利用模型的结构特性。

在这里插入图片描述

分组卷积的工作原理

  1. 通道分组:输入特征图的通道数为 C_in ,输出特征图的通道数为 C_out ,将每组的 C_in 和 C_out 分为 G 组,每组的通道数为 C_in/G 和 C_out/G。
  2. 组内卷积:每组的输入通道仅与对应组的卷积核进行卷积,组间相互独立。
  3. 输出拼接:所有组的卷积输出特征图按照通道维度拼接,形成最终输出。

特殊:

  • 如果分组=1,分组卷积退化为普通的全通道卷积;
  • 如果分组=输入通道数,分组卷积变为深度卷积。

深度可分离卷积

深度可分离卷积将传统卷积操作拆分成两个步骤:

  1. 深度卷积:每个输入通道都使用独立的卷积核进行卷积。

在这里插入图片描述

  1. 逐点卷积:使用 1x1 卷积核对深度卷积的输出进行跨通道的融合。

在这里插入图片描述


待补充

空洞卷积,转置卷积,可变形卷积后续有时间会进行补充。

Logo

有“AI”的1024 = 2048,欢迎大家加入2048 AI社区

更多推荐