深度分离卷积神经网络2025年6月25日 | 阅读 4 分钟 在人工神经网络(ANNs)中,卷积是一个至关重要的数学过程。卷积神经网络(CNNs)可以利用图像帧对数据进行分类并学习特征。CNNs有许多不同的类型。深度可分离卷积神经网络就是其中一种CNN。 这些CNNs通常用于以下两个原因:
卷积神经网络(CNN)中最常用的卷积层是2D卷积。一种新型的卷积层,称为深度可分离卷积,被用于一个显著更快、更小的CNN架构,称为Mobile Net。由于其紧凑的尺寸,这些模型被认为对于在嵌入式和移动设备上实施非常有用。因此得名 Mobile Net。 深度卷积差异 深度卷积和2D卷积的主要区别在于,深度卷积保持每个输入通道独立,而2D卷积则对所有或多个输入通道进行卷积。 方法
可深度分离的卷积通常,深度卷积与可深度分离的卷积结合使用。这包含两个部分:1. 过滤(所有先前的过程)和 2. 组合(将三个颜色通道组合起来以创建所需数量的通道;在下面的示例中,我们可以看到三个通道如何组合成单个输出通道)。 为什么深度可分离卷积如此高效?
2D 卷积
可深度分离的卷积
过滤:由于被分割成单个通道,需要一个 5x5x1 的滤波器而不是一个 5x5x3 的滤波器,并且由于有三个通道,总共需要三个 5x5x1 的滤波器。 (8x8) x (5x5x1) x (3) = 3,800 组合:需要总共 256 个通道,因此: (8x8) x (1x1x3) x (256) = 49,152 3,800 + 49,152 相乘得到总共 53,952。 因此,深度可分离卷积只需要 53,952 次乘法就可以获得与 2D 卷积(需要 1,228,800 次乘法)相同的输出。 最后, 1,228,800 / 53,952 = 23 倍的乘法次数减少。 因此,深度可分离卷积具有非常高的效率。这些是 Mobile Net 架构中包含的层,以减少计算量并降低功耗,使其可以在缺乏强大图形处理单元的移动和嵌入式设备上使用。 普通卷积如何工作考虑以下输入数据维度:Df x Df x M,其中 M 是通道数,Df x Df 是图像的大小(RGB 图像为 3)。假设有 N 个滤波器或核,维度为 Dk x Dk x M。一次普通卷积操作的输出大小为 Dp x Dp x N。 ![]() 对于单次卷积操作的乘法次数,滤波器大小等于 Dk x Dk x M。 N 个滤波器中的每一个在垂直和水平方向上都滑动 Dp 次。 执行卷积所需的总乘法次数(每次卷积的乘法次数)为 N x Dp x Dp x。 总乘法次数为 N x Dp² x Dk² x M。 深度可分离卷积 现在来看深度可分离卷积。此过程包含两个操作:
1. 深度卷积。 ![]() 与普通CNN不同,普通CNN同时应用于所有M个通道,而深度操作一次只应用于一个通道。因此,这里使用的滤波器/核将是 Dk x Dk x 1。考虑到输入数据有 M 个通道,需要 M 个这样的滤波器。输出大小将是 Dp x Dp x M。 过程成本 单次卷积操作需要 Dk x Dk 次乘法。 由于所有 M 个通道都滑动了 Dp x Dp 次滤波器,因此执行深度卷积的总乘法次数为 M x Dp x Dp x Dk x Dk, 总乘法次数 = M x Dk² x Dp² 2. 逐点卷积。 ![]() 在 M 个通道上使用 1 x 1 的卷积过程。因此,此操作的滤波器大小为 1 x 1 x M。如果使用 N 个这样的滤波器,则输出大小为 Dp x Dp x N。 过程成本 每次卷积操作需要 1 x M 次乘法。 考虑到滤波器在 Dp x Dp 的方向上滑动, M x Dp x Dp x(滤波器数量)是总乘法次数。 执行逐点卷积, M x Dp² x N 是总乘法次数。 因此,为了达到最佳操作, 总乘法次数等于深度卷积和逐点卷积的总和。 总乘法次数的计算公式为:M*Dk²*Dp² + M*Dp²*N = M*Dp²*(Dk² + N) 执行深度可分离卷积, 总乘法次数等于 M x (Dk² + N) x Dp²。 |
我们请求您订阅我们的新闻通讯以获取最新更新。