📜  深度可分离卷积神经网络

📅  最后修改于: 2021-10-22 03:44:28             🧑  作者: Mango

卷积是人工神经网络(ANN’s)中非常重要的数学运算。卷积神经网络 (CNN) 可用于在图像帧的帮助下学习特征以及对数据进行分类。 CNN有很多种。一类 CNN 是深度可分离卷积神经网络

由于以下两个原因,这些类型的 CNN 被广泛使用 –

  • 与标准 CNN 相比,它们需要调整的参数数量较少,从而减少过拟合
  • 它们在计算上更便宜,因为计算量更少,这使得它们适用于移动视觉应用

这些类型的 CNN 的一些重要应用是 MobileNet、Xception(均由 Google 提出)

本文解释了深度可分离卷积网络所使用的架构和操作,并推导出其相对于简单卷积神经网络的效率。

理解正态卷积运算

假设有一个大小为Df x Df x M的输入数据,其中 Df x Df 可以是图像大小,M 是通道数(RGB 图像为 3)。假设有 N 个大小为Dk x Dk x M 的过滤器/内核。如果进行正常的卷积操作,则输出大小将为Dp x Dp x N。

由于有 N 个过滤器,每个过滤器垂直和水平滑动 Dp 次,

所以对于普通的卷积操作

深度可分离卷积

现在看看深度可分离卷积。这个过程分为两个操作——

  1. 深度卷积
  2. 逐点卷积

  1. 深度明智的卷积

    深度操作中,卷积一次应用于单个通道,这与标准 CNN 对所有 M 个通道进行不同。所以这里过滤器/内核的大小为Dk x Dk x 1 。假设输入数据中有 M 个通道,那么需要 M 个这样的滤波器。输出的大小为Dp x Dp x M

    此操作的成本:

    由于滤波器在所有 M 个通道上滑动 Dp x Dp 次,

    所以对于深度卷积操作

  2. 明智的卷积

    逐点操作中,对 M 个通道应用1×1 卷积操作。因此,此操作的过滤器大小将为1 x 1 x M 。假设我们使用 N 个这样的过滤器,输出大小变为Dp x Dp x N

    此操作的成本:

    由于过滤器正在滑动 Dp x Dp 次,

    所以对于逐点卷积操作

    因此,对于整体操作:

    所以对于深度可分离卷积操作

    这几种卷积运算的复杂度比较

    Type of Convolution

    Complexity

    <

    Standard

    N x Dp2 x Dg2 x M

    Depth wise separable

    M x Dp2 x (Dk2 + N)

    解决后:

    例如,考虑 N = 100 和 Dk = 512。那么比率 R = 0.010004

    这意味着在本例中,深度可分离卷积网络执行的乘法运算比标准结构神经网络少 100 倍。

    这意味着我们可以部署更快的卷积神经网络模型而不会损失很多准确性。