深度可分离卷积(总结)

深度可分离卷积 = 深度卷积(Depthwise Convolution) + 逐点卷积(Pointwise Convolution)。

深度卷积

在这里插入图片描述
分组卷积(Group Convolution):
输入通道数c_in,输出通道数c_out, 将输入feature map分为G组,每组分别卷积,最后进行拼接。

分组卷积作用:

  1. 参数量减少为原来的1/G
    分组前:c_in * c_out * k^2
    分组后:(c_in / G) * (c_out / G) * k^2 * G
  2. 分组卷积可看做结构化稀疏(structured sparse),相当于正则。

分组卷积中,令分组数 G = c_in = c_out,分组卷积就成了深度卷积,参数量进一步减少。

深度可分离卷积

逐点卷积就是1x1的普通卷积。
因为深度卷积没有融合通道间信息,所以需要配合逐点卷积使用。

<think>好的,用户想了解深度可分离卷积公式详解。首先,我需要回顾一下相关的知识,确保自己理解正确。根据引用[1],深度可分离卷积由深度卷积和逐点卷积组成。记得标准卷积是同时处理空间和通道信息,而深度可分离卷积则把这两部分分开处理。 首先,得明确标准卷积公式。假设输入张量形状为$H \times W \times C_{in}$,标准卷积使用$K \times K \times C_{in} \times C_{out}$的卷积核,输出的每个通道是输入所有通道的加权和。公式应该是这样的:$$ \text{Output}(i,j,c_{\text{out}}) = \sum_{k_1=0}^{K-1} \sum_{k_2=0}^{K-1} \sum_{c_{\text{in}}=0}^{C_{in}-1} \text{Input}(i+k_1, j+k_2, c_{\text{in}}) \times \text{Kernel}(k_1, k_2, c_{\text{in}}, c_{\text{out}}) $$ 接下来是深度卷积部分,也就是每个输入通道单独应用一个卷积核。这里,每个通道有自己的滤波器,不混合其他通道的信息。所以深度卷积的核应该是$K \times K \times C_{in}$,输出的每个通道仅由对应的输入通道处理。公式应该是:$$ \text{DepthwiseOutput}(i,j,c) = \sum_{k_1=0}^{K-1} \sum_{k_2=0}^{K-1} \text{Input}(i+k_1, j+k_2, c) \times \text{DepthwiseKernel}(k_1, k_2, c) $$ 然后是逐点卷积,也就是1x1卷积,用来组合深度卷积后的各个通道。这一步负责通道间的信息融合,卷积核大小为$1 \times 1 \times C_{in} \times C_{out}$。逐点卷积公式应该是:$$ \text{PointwiseOutput}(i,j,c_{\text{out}}) = \sum_{c=0}^{C_{in}-1} \text{DepthwiseOutput}(i,j,c) \times \text{PointwiseKernel}(1, 1, c, c_{\text{out}}) $$ 现在需要将这两个步骤结合起来,形成深度可分离卷积的整体公式。也就是说,先进行深度卷积,再进行逐点卷积。数学上可以表示为这两个操作的组合。这一步需要确保参数数量的计算正确,比如标准卷积的参数是$K^2 \times C_{in} \times C_{out}$,而深度可分离则是$K^2 \times C_{in} + C_{in} \times C_{out}$,从而减少了计算量。 另外,用户提供的引用[3]中提到,V1的卷积层先进行3x3深度卷积,然后是BN和ReLU6,接着逐点卷积,最后又是BN和ReLU。这说明实际应用中,深度可分离卷积通常会配合其他层使用,这些可能在公式中没有直接体现,但结构上需要注意。 需要确认是否有其他细节,比如步长、填充等参数是否影响公式的表达。不过用户主要关注公式本身,可能不需要涉及这些超参数。但要确保公式中的索引变量正确,比如i和j的位置,是否考虑了padding后的位置。 可能还需要比较标准卷积深度可分离卷积的计算量差异,从而突出其优势。比如计算量的公式:标准卷积是$H \times W \times K^2 \times C_{in} \times C_{out}$,而深度可分离是$H \times W \times K^2 \times C_{in} + H \times W \times C_{in} \times C_{out}$,两者的比值为$\frac{1}{C_{out}} + \frac{1}{K^2}$,说明计算量大大减少。 最后,需要检查是否有引用支持这些公式的分解,比如引用[1]和[3]提到了分解的步骤,但具体的数学表达可能需要结合标准卷积的知识进行推导。确保没有错误,比如张量的维度是否匹配,逐点卷积是否正确应用在通道维度上。 总结下来,回答的结构应该是先介绍深度可分离卷积的两个部分,分别给出公式,再结合整体,比较参数数量,最后引用相关文献。同时生成的问题要围绕公式的组成、优势、比较和应用等方面展开。</think>### 深度可分离卷积公式详解 深度可分离卷积(Depthwise Separable Convolution)由**深度卷积**(Depthwise Convolution)和**逐点卷积**(Pointwise Convolution)两部分组成,其核心思想是将标准卷积的空间特征提取和通道特征融合解耦,从而大幅减少计算量和参数量[^1][^3]。 --- #### 1. **标准卷积公式** 假设输入张量尺寸为$H \times W \times C_{in}$,卷积核尺寸为$K \times K \times C_{in} \times C_{out}$,输出尺寸为$H' \times W' \times C_{out}$。标准卷积公式为: $$ \text{Output}(i,j,c_{\text{out}}) = \sum_{k_1=0}^{K-1} \sum_{k_2=0}^{K-1} \sum_{c_{\text{in}}=0}^{C_{in}-1} \text{Input}(i+k_1, j+k_2, c_{\text{in}}) \times \text{Kernel}(k_1, k_2, c_{\text{in}}, c_{\text{out}}) $$ --- #### 2. **深度卷积(Depthwise Convolution)** - **作用**:仅对输入张量的每个通道独立进行空间卷积,不混合通道信息。 - **卷积核尺寸**:$K \times K \times C_{in}$(每个通道对应一个独立的卷积核)。 - **公式**: $$ \text{DepthwiseOutput}(i,j,c) = \sum_{k_1=0}^{K-1} \sum_{k_2=0}^{K-1} \text{Input}(i+k_1, j+k_2, c) \times \text{DepthwiseKernel}(k_1, k_2, c) $$ 输出尺寸仍为$H' \times W' \times C_{in}$。 --- #### 3. **逐点卷积(Pointwise Convolution)** - **作用**:通过$1 \times 1$卷积融合通道信息,调整输出通道数。 - **卷积核尺寸**:$1 \times 1 \times C_{in} \times C_{out}$。 - **公式**: $$ \text{PointwiseOutput}(i,j,c_{\text{out}}) = \sum_{c=0}^{C_{in}-1} \text{DepthwiseOutput}(i,j,c) \times \text{PointwiseKernel}(1, 1, c, c_{\text{out}}) $$ 最终输出尺寸为$H' \times W' \times C_{out}$。 --- #### 4. **整体公式与优势** 深度可分离卷积的完整公式为两者的组合: $$ \text{FinalOutput} = \text{PointwiseConv}(\text{DepthwiseConv}(\text{Input})) $$ **参数量对比**: - 标准卷积:$K^2 \times C_{in} \times C_{out}$ - 深度可分离卷积:$K^2 \times C_{in} + C_{in} \times C_{out}$ 计算量减少比例为: $$ \frac{K^2 \times C_{in} + C_{in} \times C_{out}}{K^2 \times C_{in} \times C_{out}}} = \frac{1}{C_{out}} + \frac{1}{K^2} $$ 例如,当$K=3$且$C_{out}=64$时,计算量约为标准卷积的$\frac{1}{9}$[^1]。 --- #### 5. **实际应用** 在MobileNet等轻量级模型中,深度卷积后通常会添加批量归一化(BatchNorm)和ReLU6激活函数,逐点卷积后同样会接BN和ReLU。 ---
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值