CVPR 2020 | Filter Grafting for Deep Neural Networks
https://github.com/fxmeng/filter-grafting
1.滤波器嫁接动机
本文提出了一种全新的学习范式:滤波器嫁接,用于提高神经网络的特征表达能力。构建滤波器嫁接技术的动机是通常在训练完的网络中存在一些无效的滤波器,很多网络模型剪枝的文献中就会把这些无效的滤波器剪切掉。而本文考虑重新激活这些无效滤波器,在不增加模型推理时间的前提下,有效提升网络性能。因为这些看似无效的滤波器不一定是真的无效的,比如在集成学习中,当单个弱分类器效果差时,它们的组合反而会得到更强的性能。这说明无效的滤波器是可以被激活的。所谓的激活就是通过将外部信息移植到到这些无效滤波器中,该过程被定义为滤波器嫁接。滤波器嫁接的关键是选择合适的信息源,那么应该从哪里嫁接信息? 本论文深入研究了这个问题,作者认为我们应该从外部(其他网络)而不是从内部(自网络)嫁接信息。通常,可以并行地训练多个网络。选择完嫁接源后,在特定的训练阶段,将一个网络中高效的滤波器移植到另一个网络无效的滤波器中。通过嫁接,每个网络可以从其他网络学习外部信息。论文的贡献有:
- 提出了一种新的学习范式,称为滤波器嫁接。嫁接可以在不改变网络结构的情况下,重新激活无效的过滤器,提高神经网络的潜力。
- 提出了一种基于熵的准则和自适应加权策略,进一步提高了滤波器嫁接方法的性能。
- 在分类和识别任务上进行了大量的实验,并证明嫁接可以显著提高DNNs的性能。例如,嫁接的MobileNetV2在CIFAR-100上达到78.32%的正确率,比未嫁接的MobileNetV2高约7%。
2.嫁接与裁剪,蒸馏的区别
滤波器裁剪旨在去除无效的滤波器,以加速网络的推理。而滤波器嫁接打算激活这些无效的滤波器。值得注意的是,尽管滤波器嫁接的动机与剪枝相反,但嫁接仍然需要选择一个合适的标准来决定哪些滤波器是不重要的。下图展示了裁剪和嫁接的主要区别。
嫁接可能涉及并行地训练多个网络。因此,这个过程类似于蒸馏学习。嫁接和蒸馏的区别在于,蒸