速度、准确率与泛化性能媲美SOTA CNN,Facebook开源高效图像Transformer
机器之心报道
参与:魔王、小舟、杜伟
将自然语言处理领域主流模型 Transformer 应用在视觉领域似乎正在成为趋势。最近,Facebook 研究人员提出一项新技术——数据高效图像 Transformer (DeiT),该方法所需的数据量和计算资源更少,且能产生高性能的图像分类模型。
Transformer 是自然语言处理领域的主流方法,在多项任务中实现了 SOTA 结果。近期越来越多的研究开始把 Transformer 引入计算机视觉领域,例如 OpenAI 的 iGPT、Facebook 提出的 DETR 等。
最近,Facebook 提出了一项新技术 Data-efficient image Transformers(DeiT),需要更少的数据和更少的计算资源就能生成高性能的图像分类模型。研究人员仅用一台 8-GPU 的服务器对 DeiT 模型进行 3 天训练,该方法就在 ImageNet 基准测试中达到了 84.2% 的 top-1 准确率,并且训练阶段未使用任何外部数据,该结果可以与顶尖的卷积神经网络(CNN)媲美。
该研究提出的方法(DeiT 和带蒸馏的 DeiT)与以前的视觉 Transformer 模型以及 SOTA CNN 的性能曲线对比,这些模型均在 ImageNet 上训练而成。
该研究表明仅使用常规的学术数据集就能训练 Transformer,使之高效处理图像分类任务。研究者希望借此推动计算机视觉领域发展,将 Transformer 扩展到新的用例上,并让无法使用大规模系统来训练大型 AI 模型的研究者和工程师能够利用该研究。DeiT 方法由 Facebook AI 与索邦大学的 Matthieu Cord 教授合作开发,目前代码已开源。
论文地址:https://arxiv.org/pdf/2012.12877.pdf
GitHub 地址:https://github.com/facebookresearch/deit
方法
图像分类是理解一张图像主要内容的任务,对于人类而言很简单,但对机器来说却很困难。图像分类对 DeiT 这类无卷积 Transformer 模型来说尤其具有挑战性,因为这些系统没有很多关于图像的统计先验。所以,它们通常必须「观察」大量的示例图像之后才能学习对不同对象进行分类。然而,Facebook AI 研究者提出的 DeiT 仅使用 120 万张图像就可实现高效训练,而不需要数亿张图像。
DeiT 首个重要的组件是其训练策略。研究者在最初用于卷积神经网络的现有研究基础上进行了调整与改进,并提出了一种基于蒸馏 token 的新型蒸馏流程,它的作用与 class token 相同,不过其目的在于复制教师网络估计的标签。实验结果表明,这种特定 transformer 策略大幅度优于 vanilla 蒸馏方法。
蒸馏流程如下图所示。研究者仅添加了一个新的蒸馏 token,它通过自注意力层与 class token 和 patch token 交互作用。蒸馏 token 的作用与 class token 类似,不过前者的目的是复制教师网络预测的(硬)标签,而不是正确标签。Transformer 的 class token 和蒸馏 token 输入均通过反向传播学得。
有趣的是,研究者观察到,学得的 class token 和蒸馏 token 收敛到不同的向量:token 之间的余弦相似度等于 0.06。由于类和蒸馏嵌入是在每一层上进行计算的,因此它们在网络中变得越来越相似,一直到最后一层时相似度达到非常高(cos=0.93),但仍低于 1。这种情况在预期之中,因为它们的目的是生成相似但不同的目标。
在测试时,Transformer 生成的类或蒸馏嵌入与线性分类器相联系,并能够推断出图像标签。
实验
研究者实施了多项分析实验,首先探讨了蒸馏策略,然后对比分析了卷积神经网络和视觉 transformer 模型的效率与准确率权衡。
下表 1 展示了该研究考虑的多种模型变体,如无特殊说明,则 DeiT 指代的是 DeiT-B 模型。
表 1:DeiT 架构变体。DeiT-B 是其中较大的模型,架构与 ViT-B 相同,但是训练策略和蒸馏 token 不同;DeiT-S 和 DeiT-Ti 是两个较小的模型。
蒸馏
1. 不同教师网络之间的对比
首先来看使用不同模型做教师网络的情形。
实验发现,使用 Convnet 做教师网络的性能要优于使用 transformer。下表 2 对比了使用不同教师架构的蒸馏结果:
2. 不同蒸馏方法的对比
接下来,我们来看蒸馏方法的对比,不同蒸馏策略的性能对比结果参见下表 3。
从中可以看出,对于 transformer 而言,硬蒸馏显著优于软蒸馏,即使在只使用一个 class token 的情况下也是如此:硬蒸馏达到了 83.0% 的准确率,软蒸馏为 81.8%。
该研究提出的蒸馏策略进一步提升了性能,表明 class token 和蒸馏 token 能够提供对分类任务有用的补充信息:基于这两个 token 的分类器性能显著优于单独的 class 分类器和蒸馏分类器,不过单独的分类器依然超过了蒸馏基线方法。
3. 教师网络和归纳偏置存在一致性吗?
教师架构对性能有很大影响,那么它会继承已有的归纳偏置吗?Facebook AI 研究者分析了 convnet 教师网络、仅基于标签学得的 DeiT 和 transformer
,结果参见下表 4:
从中可以看出,该研究提出的蒸馏模型与 convnet 的相关性强于从头开始学习的 transformer。使用蒸馏嵌入的分类器与 convnet 的差距比使用类别嵌入的分类器更小,使用类别嵌入的分类器更类似未经蒸馏的 DeiT。class+distil 分类器处于中间地带。
效率与准确率权衡
下表总结了不同方法在 ImageNet V2 和 ImageNet Real 数据集上的性能结果。相比于具备同等参数量的 EfficientNet,convnet 变体速度更慢,原因在于大型矩阵乘法要比小型卷积提供更多硬件优化机会。在这两个数据集上,EfficientNet-B4 的速度与
相同,准确率也处于相同水平。
迁移学习:下游任务的性能
尽管 DeiT 在 ImageNet 数据集上表现良好,但通过迁移学习评估 DeiT 在其他数据集上的性能也很重要,这样可以度量 DeiT 的泛化性能。
研究者通过对下表 7 中的数据集进行微调,在迁移学习任务上对此进行了评估。下表 8 则将 DeiT 迁移学习结果与 ViT 和 SOTA 卷积架构的结果进行了比较。该研究发现 DeiT 的结果和最佳卷积的结果相当,这和此前在 ImageNet 数据集上的结论是一致的。
参考链接:https://ai.facebook.com/blog/data-efficient-image-transformers-a-promising-new-technique-for-image-classification/
本周六,WAIC开发者·2020上海临港人工智能开发者大会将震撼来袭。
全球顶尖AI专家齐聚主论坛,解读智能化转型的技术之道。4场技术工作坊分享智慧城市、智能出行、华为开源生态与边缘智能引擎等话题,2场黑客松等你来战。
点击阅读原文,选择你感兴趣的环节,立即报名。
© THE END
转载请联系本公众号获得授权
投稿或寻求报道:content@jiqizhixin.com
相关文章
- 面向开放域密集检索多视图文档表示学习,微软提出MVR,性能SOTA!(ACL 2022)
- C++最佳实践 | 6. 性能
- 【SLAM】开源 | 一种基于surfel的建图方法,相比于纯几何法性能SOTA!
- 【目标追踪】开源 | 基于注意力的紧凑跟踪框架MixFormer,在7个跟踪基准上性能SOTA!
- 开源性能监控工具atop【字节跳动版本】的安装与简单使用
- AMD开源显卡光追分析器,可提升游戏开发性能,网友:A卡战未来
- 已跪,Java全能笔记爆火,分布式/开源框架/微服务/性能调优全有
- 2023年十款开源测试开发工具推荐(自动化、性能、造数据、流量复制)
- 性能提升10倍以上!开源物联网大数据平台TDengine如何实现超强性能?| TVP十日谈预告
- vue2基础性能优化
- MySQL开源监控:构建全方位性能保障(mysql开源监控工具)
- 优化提升Linux性能的代码优化法则(linux代码)
- Oracle清理表空间:优化数据库性能(oracle清理表空间)
- MySQL: 是否会影响性能?(mysql影响性能吗)
- 交换空间:构建Linux系统最佳性能(交换空间linux)
- Linux运维规划:实现系统最佳性能(linux运维规划)
- 快速提升Linux性能:优化KO文件加载(linux ko文件加载)
- 缓存技术Redis现实优势提升性能效率(缓存redis优点)
- MySQL 8022升级加速数据库性能的新机遇(8.0.22的mysql)
- 使用Redis集群获得单台优异性能(redis集群单数台)
- Redis过期处理极大提升多线程性能的技术利器(redis过期 多线程)
- 一加9Pro上手体验:性能满分,超爽屏幕体验