模型压缩
Contents
模型压缩
经典轻量化模型
纵览轻量化卷积神经网络:SqueezeNet、MobileNet、ShuffleNet、Xception
squeezenet 改进AlexNet,设计Fire Module,
mobilenet
深度可分离卷积 完全分组卷积+点卷积
逐深度卷积DW + 逐点卷积PW
通道可以看作为特征,普通的多输入输出卷积是密集连接的
广泛应用于移动端和嵌入式设备中的深度学习模型。它的主要思想是将标准卷积操作分解为两个更简单的步骤:深度卷积和逐点卷积。
深度可分离卷积的组成
- 深度卷积(Depthwise Convolution):
- 对输入的每个通道分别进行卷积操作。假设输入有 C 个通道,深度卷积将对每个通道应用一个 k×k 的卷积核。
- 输出的每个通道对应输入通道的卷积结果,因此输出通道的数量仍然为 C。
- 逐点卷积(Pointwise Convolution):
- 使用 1×1 的卷积核进行卷积,主要作用是对深度卷积的输出进行通道之间的线性组合。一组权重得到一个输出通道,总数是Cin×Cout
- 逐点卷积的输出通道数可以根据需要进行调整。
shufflenet
改进Depthwise Separable Convolution,通道洗牌技术,每个组会包含其他组的信息
Xception
googlenet V3改进
轻量化模型设计
- 剪枝:去除不重要的神经元或连接,减小模型规模。
- 量化:将浮点数参数转换为低位数表示(如 int8),减少存储和计算需求。
- 知识蒸馏:通过训练小模型(学生模型)来模仿大模型(教师模型)的行为,提高小模型的性能。需要有一个大模型作为先验知识,用来帮助训练小模型
- 紧凑网络
- 低秩分解