论文链接:http://arxiv.org/abs/2306.14525
源码地址:https://github.com/huawei-noah/Efficient-AI-Backbones
摘要
在深度学习的不断发展中,大规模视觉预训练已成为开发强大视觉模型的基石。然而低FLOPs陷阱的问题经常阻碍轻量级模型充分受益于这种预训练方法。本文探讨一种创新解决方案ParameterNet。这种方法旨在通过增加参数数量而保持低FLOPs,使轻量级模型能够利用大规模视觉预训练的优势,而不会带来显著的计算成本。
作者贡献
- 在大规模视觉预训练中,我们观察到一个有趣的现象,即低FLOPs陷阱,即高FLOPs模型的性能随着训练数据的增加而提高,而低FLOPs模型的性能随着训练数据的增加而降低。
- 进一步引入ParameterNet方案,在保持较低的FLOPs的同时增加更多的参数。
- 本文提出的ParameterNet方案克服了低FLOPs的缺陷,在视觉和语言任务上的实验结果表明,通过大规模的预训练,ParameterNet获得了更高的性能。
- 如图作者提出的ParameterNet对比GhostNet克服了低FLOPs的问题
- 图中在低FLOPs时也表现出较低的性能,证明了低FLOPs在大规模数据中存在问题。
解决方法
- ParameterNet 引入了一种新的设计原则,强调在保持低FLOPs的同时增加参数数量。该方法利用动态卷积将额外参数融入网络,从而在不显著增加计算成本的情况下增强其容量
- ParameterNet 的动态卷积,它涉及使用多个卷积核,根据输入特征动态加权。这种技术可以:增加模型容量:通过利用多个专家,模型可以在不成比例增加FLOPs的情况下表示更复杂的函数。自适应计算:动态加权机制使模型能够根据不同输入自适应调整卷积核。(动态卷积包括系数生成模块、动态权值融合和卷积过程。)
- M个动态专家可表示为
系数αi是动态生成的。不同的输入样本,一种典型的方式是使用MLP模块根据输入进行生成
- 标准卷积层,参数数量为
FLOPs为
- 本文计算
- 具有Cin隐藏尺寸的系数生成模块需要
参数和
FLOPs
因此动态卷积参数和FLOPs分别为
通过计算与标准卷积的比率发现,与标准卷积相比,动态卷积大约有m*parameters个参数,额外的FLOPs可以忽略不计
实验
我们评估了ParameterNet和其他代表性模型的推理速度进行比较。我们在英特尔8378C CPU处理器上使用ONNX工具包运行模型如下
与其他模型对比效果如下
实验对比不同数量的专家对性能的影响,最终认为4个专家效果比较均衡
总结
文章提出了一种新的设计原则(即ParameterNet),通过在保持低FLOPs的情况下添加更多参数来进行大规模视觉预训练。我们还验证了该方法在语言领域的泛化性。