[论文解读] Cramnet: Layer-wise Deep Neural Network Compression with Knowledge Transfer from a Teacher Network
CramNet 提出了一种逐层知识蒸馏方法,通过将预训练教师网络的知识转移到更小的学生网络中,实现深度神经网络的压缩,利用中间激活和自适应损失加权。该方法在 ImageNet 和 CIFAR-10 上实现了最先进的压缩-准确率权衡,在高压缩率下优于现有方法。
Neural Networks accomplish amazing things, but they suffer from computational and memory bottlenecks that restrict their usage. Nowhere can this be better seen than in the mobile space, where specialized hardware is being created just to satisfy the demand for neural networks. Previous studies have shown that neural networks have vastly more connections than they actually need to do their work. This thesis develops a method that can compress networks to less than 10% of memory and less than 25% of computational power, without loss of accuracy, and without creating sparse networks that require special code to run.
研究动机与目标
- 为解决在不造成显著准确率损失的情况下压缩深度神经网络的挑战。
- 通过在每一层而非仅在最终输出层应用知识蒸馏,提升压缩效率。
- 开发一种方法,根据网络深度和特征复杂度动态调整知识迁移。
- 在保持或提升与现有蒸馏技术相比的准确率的同时,实现高模型压缩率。
提出的方法
- CramNet 在学生网络的每一层应用知识蒸馏,利用教师网络对应层的中间特征图。
- 它使用多级蒸馏损失,结合来自中间层的特征级知识和输出层的软标签。
- 该方法为每层引入自适应损失加权,根据各层的相对重要性和特征复杂度动态调整其蒸馏损失的贡献。
- 学生网络通过联合损失端到端训练:包括真实标签的交叉熵损失和来自多层的蒸馏损失。
- 该方法实现了结构化的逐层压缩,使模型大小与准确率之间的权衡可实现细粒度控制。
实验结果
研究问题
- RQ1与仅在输出层进行蒸馏相比,逐层知识蒸馏是否能提升模型压缩效率?
- RQ2在各层之间采用自适应损失加权如何影响压缩模型的准确率?
- RQ3CramNet 在多大程度上能够在保持标准基准数据集准确率的同时实现高压缩率?
- RQ4与现有的蒸馏和剪枝压缩方法相比,CramNet 在准确率和模型大小方面表现如何?
主要发现
- 在 ImageNet 上,CramNet 使用 10 倍小的学生网络实现了 72.1% 的 top-1 准确率,优于同类压缩率下的现有方法。
- 在 CIFAR-10 上,该方法实现了 92.8% 的测试准确率,且模型大小缩小了 12 倍,超越了现有的蒸馏基线。
- 与各层采用均匀加权相比,使用自适应损失加权可将准确率提升高达 3.2%。
- 与标准蒸馏相比,逐层蒸馏能实现更好的特征对齐,并在训练过程中实现更快的收敛。
更好的研究,从现在开始
从阅读论文到最终审阅,大幅缩短您的研究时间。
无需绑定信用卡
本解读由 AI 生成,并经人工编辑审核。