专栏名称: 计算机视觉深度学习和自动驾驶
讨论计算机视觉、深度学习和自动驾驶的技术发展和挑战
目录
相关文章推荐
不正常人类研究中心  ·  自制的粘土"小零食"这小点心也太萌啦 ·  昨天  
不正常人类研究中心  ·  这也太哑了!你怎么讲话会发射激光 ·  昨天  
英式没品笑话百科  ·  《愤怒转移》——理查德・萨金特,1954年 ... ·  昨天  
不正常人类研究中心  ·  做饭最忌讳灵机一动 ·  2 天前  
51好读  ›  专栏  ›  计算机视觉深度学习和自动驾驶

高效视觉Transformer的综述:算法,技术和性能基准

计算机视觉深度学习和自动驾驶  · 公众号  ·  · 2024-05-24 01:09

正文

23年9月 来自悉尼大学的 综述论文“A survey on efficient vision transformers: algorithms, techniques, and performance benchmarking“。

视觉Transformer(ViT)架构正变得越来越流行,并被广泛用于处理计算机视觉应用。 它们的主要特征是通过自注意机制提取全局信息的能力,优于早期的卷积神经网络。 然而,ViT的部署和性能随着其规模、可训练参数量和操作而稳步增长。 此外,自注意的计算和内存成本,随图像分辨率的二次方增加。 一般来说,由于许多硬件和环境限制,如处理和计算能力,在现实世界的应用中使用这些架构是具有挑战性的。 因此,本综述调查了确保次优估计性能的最高效方法。 更详细地说,分析四个有效类: 紧凑架构、修剪、知识蒸馏和量化策略。 此外,还引入了一种称为“高效错误率(Efficient Error Rate)”的新度量,规范和比较在推理时影响硬件设备的模型特征,如参数量、比特数、FLOPs和模型大小。 总之,本文首先从数学上定义了使视觉Transformer高效的策略,描述和讨论了最先进的方法,并分析了它们在不同应用场景下的性能。 最后,还讨论了开放的挑战和有前景的研究方向。

本文划分ViT架构为四个类别,采用如下的方法论:

  • 紧凑架构(CA)-分析专门为降低自注意的计算成本而开发的解决方案,保证ViT对输入特征的全局理解,同时降低(通常是注意线性化)此类架构的计算成本。

  • 修剪(P)-重点关注旨在减少神经元数量和ViT模型连接的策略,保持高精度,同时避免模型过度参数化和减少计算运算(乘法)的数量。

  • 知识蒸馏(KD)-分析学习的策略,旨在通过共享和压缩深层模型(教师)的知识来提高浅层模型(学生)的性能。

  • 量化(Q)-旨在减少ViT权重和激活函数的数据类型(从浮点到整数)和精度(从32位到较低比特率),获得轻量级和高效内存模型的技术。

Transformer结构的第一个关键元素是创建补丁嵌入(patch embedding);为了获得它,通常对输入特征图进行如下处理:首先,将输入图像x划分为N个块。类似于NLP任务中的单词序列,补丁是包含输入图像一部分(即输入数据的子集)的像素矩阵。然后对每个补丁进行平坦化,获得n个实体的序列,并与可训练嵌入张量相乘,其学习将每个平坦补丁线性投影到维度d;这造成n个形状为1×d的嵌入块,通常表示为N。随后,将可训练的位置嵌入添加到投影序列中,以便添加图像空间内每个块的空间表示,整体输出嵌入定义为z。

给定补丁嵌入序列zn,自注意机制学习如何将一个token(ti)与其他 token(tj with j!= i and i,j∈d)收集到序列中。该解决方案导致从输入特征中提取全局信息,这改进了卷积运算的固定感受野。通常,Transformer结构是基于多头注意(MSA)机制,该机制由几个并行运行的单个自注意层组成;如图就是自注意块和多头自注意块的概述。

自注意模块可以在数学上定义如下。 给定一个输入向量,此操作首先计算三个矩阵: 分别为大小相等的Q、K和V(dq=dk=dv)。 随后,该操作将获得的分数转换为概率,计算softmax函数。 因此,原始自注意[57],也称为softmax点积自注意运算,用注意矩阵A定义。 矩阵A聚合来自完整输入序列的全局信息来更新序列的每个分量。

然而,从计算复杂性方面来看,该操作的时间和存储成本随着图像内的补丁数量n二次增加(即O(n^2))。这一成本是由于两个点积运算(如上图中的MatMul所示),

括号内计算量取O(n^2dk),而softmax概率和V之间的第二个运算取O(n^2dv)。 最后,将自注意模块连接到MSA中,以便同时从不同区域提取信息。

最后,为了获得输出概率,MSA模块的输入和输出被归一化(Norm),并传递到前馈网络(FNN)中,该前馈网络由两个前馈层加一个交织的非线性激活函数(通常是GeLU)所组成。然后,将Transformer模块的输入特征定义为X,可以公式化模型输出Xout


剪枝的算法如下:

剪枝技术通常侧重于三组研究: (1)结构和非结构方法,即专注于整个权重集或特定权重集的策略。 (2) 分数计算,这是计算剪枝向量和识别可修剪网络权重数量的可能方法。 (3) 训练阶段,侧重于在训练阶段采用的训练剪枝(或微调)策略。

如图是原始知识蒸馏(KD)的学习策略框架图:


如图是通用量化过程的图表示,把浮点32位数据基于量化函数Ψk(x,∆)压缩为k位表示。


如图是高效ViT技术及其优化效果的图表示。 VIT构建的基本元素显示在顶部,其中橙色虚线块突出显示了每种优化技术主要关注的组件。 一个关于优化是如何影响感兴趣块的图描述,也提供在底部。


下表是所有分析的高效视觉Transformer模型总结。 根据分类来组织模式,即紧凑架构设计(CA)、修剪方法(P)、知识蒸馏(KD)和量化(Q)。







请到「今天看啥」查看全文