Contents

模型压缩

模型压缩

经典轻量化模型

纵览轻量化卷积神经网络:SqueezeNet、MobileNet、ShuffleNet、Xception

/posts/algorithm_knowledge_base/5_%E6%A8%A1%E5%9E%8B%E5%8E%8B%E7%BC%A9/image%2050.png

squeezenet 改进AlexNet,设计Fire Module,

mobilenet

深度可分离卷积 完全分组卷积+点卷积

逐深度卷积DW + 逐点卷积PW

通道可以看作为特征,普通的多输入输出卷积是密集连接的

image%2051.png

广泛应用于移动端和嵌入式设备中的深度学习模型。它的主要思想是将标准卷积操作分解为两个更简单的步骤:深度卷积和逐点卷积。

深度可分离卷积的组成

  1. 深度卷积(Depthwise Convolution)
    • 对输入的每个通道分别进行卷积操作。假设输入有 C 个通道,深度卷积将对每个通道应用一个 k×k 的卷积核。
    • 输出的每个通道对应输入通道的卷积结果,因此输出通道的数量仍然为 C。
  2. 逐点卷积(Pointwise Convolution)
    • 使用 1×1 的卷积核进行卷积,主要作用是对深度卷积的输出进行通道之间的线性组合。一组权重得到一个输出通道,总数是Cin×Cout
    • 逐点卷积的输出通道数可以根据需要进行调整。

shufflenet

改进Depthwise Separable Convolution,通道洗牌技术,每个组会包含其他组的信息

Xception

googlenet V3改进

轻量化模型设计

/posts/algorithm_knowledge_base/5_%E6%A8%A1%E5%9E%8B%E5%8E%8B%E7%BC%A9/image%2052.png

  • 剪枝:去除不重要的神经元或连接,减小模型规模。
  • 量化:将浮点数参数转换为低位数表示(如 int8),减少存储和计算需求。
  • 知识蒸馏:通过训练小模型(学生模型)来模仿大模型(教师模型)的行为,提高小模型的性能。需要有一个大模型作为先验知识,用来帮助训练小模型
  • 紧凑网络
  • 低秩分解