Transformer综述1——《A Survey on Visual Transformer》

2023-11-08

《A Survey on Visual Transformer》

摘要

将视觉Transformer应用到不同的任务中,分析优缺点,回顾自注意力机制

背景介绍

多层感知和全连接层是经典的神经网络,有多线性层和非线性激活函数。
卷积神经网络引入卷积层和池化层,用于图片的尺度不变
递归神经网络利用递归细胞来处理顺序数据或时间序列数据

Transformer利用注意力机制,提取内在特征是一种新的神经网络。
综述
Vaswani et al. :注意力机制、机器翻译和英语选取分析任务
Devlin et al. :引入新的语言表示模型:BERT
Brown et al.:训练了GPT-3模型

Chen et al.:训练序列Transformer,以自动回归预测像素,并在图像分类任务效果和CNN不相上下
Dosovitskiy et al:提出ViT将纯变换器直接应用于图像序列中

主要研究内容:基本图像分类、高级视觉(目标检测、分割和车道检测)、低级视觉(超分辨率、图像去噪和风格转换)和视频处理
目标检测:DETR
分割:Max DeepLab

Transformer的构想

在这里插入图片描述
他由一个编码块和解码块组成,其中多个相同结构的编码器/解码器
每个编码器有一个自注意力层和一个前馈神经网络组成,每个解码器由一个自注意力层、一个编码器-解码器-注意力层和前馈神经网络组成。

自注意力

在这里插入图片描述
步骤一:计算不同向量间分数(该分数用于确定在当前位置编码单词时我们对其他单词的关注程度)
步骤二:将梯度稳定性的分数标准化(使其具有更稳定的梯度,以便更好地训练)
步骤三:使用softmax函数将分数转换为概率
步骤四:得到加权矩阵
最后每个值向量乘以加和概率,概率越大的向量将被以下层更多的关注。

解码块中解码器-编码器注意层与编码器块中的自注意力层相同,不同的是在于K矩阵和V矩阵是从编码器模块中派生的,Q矩阵是从前一层派生的。

自注意力和多头注意力
添加一种Multi-Head来改进注意力机制
提出问题:对于一个给定词,在读句子时,希望关注其他几个词
解决问题:单个头部注意力层限制了专注于特定位置(或多个特定位置)的能力,同时不会影响对其他同样重要位置的注意。
不同的头部使用不同的查询矩阵、键矩阵和值矩阵,由于随机初始化,他们可以在训练后将输入向量投影到不同的表示子空间。
Transformer中其他部分
编码器和解码器中的残差:***为加强信息流***在编码器和解码器中的每个子层中添加残差连接
在这里插入图片描述
前馈神经网络:在每个编码器和解码器中的自注意力之后应用前馈神经网络。前馈神经网络由两个线性变换层和其中的ReLU激活函数组成。
解码器的最后一层:旨在将向量堆栈转换回一个字。通过线性层和softmax层实现。
Transformer能够捕捉全局信息
Transformer的自注意力机制和全连接层可以并行计算,易于加速

视觉Tansformer

目标检测:
基于Transformer的目标检测方法分为:基于颈部、基于头部和基于框架
特征金字塔网络(FPN)等多尺度特征融合模块(在现代检测框架中被称为颈部)

Zhang et al. :传统方法无法交互跨尺度特征,提出了特征金字塔Transformer(FPT)来充分利用跨空间和尺度的特征交互。
FTP:
自耦Transformer(self-transformer)
接地Transformer(grounding transformer)
翻译Transformer(rendering transformer)
分别对特征金字塔的自耦层,自上而下层和自底向上层的路径信息进行编码。
FTP基本上利用transformer中的自注意力模块来增强特征金字塔的特征融合。

Chi et al.:提出了桥接视觉表征(BVR),通过多头注意模块将不同的异质表征组合成单个表征。
主表征为查询输入,辅助表征为关键输入,通过与Transformer相似的注意块,可以获得主表示的增强特征,从而桥接辅助表示的信息,并有利于最终的检测性能。

Carion重新设计了目标检测框架,并提出了DETR,是一种简单且完全的端到端框架。DETR将目标检测视为一个直观的集合预测问题,并获得摆脱手工制作组件如锚点框和非极大值抑制。
在这里插入图片描述
DETR从CNN主干开始从输入图像中提取特征。为了用位置信息补充图像特征,在将固定位置编码送入编码-解码Transformer之前,将其添加到平坦特征中。transformer解码器中嵌入保留位置端点的编码(对象查询),并生成N输出嵌入,N是预定义的参数,并且图像中目标数量特别大。使用简单的前馈网络(FFN)计算最终预测,该网络包括边界框坐标和类标签,来指示目标的特定类和有无目标。
DETR解码器同时并行处理N个对象。DETR采用二部匹配算法来分配预测和地面真实对象。

在这里插入图片描述
DETR挑战1:针对小目标训练时间长且性能较差。

Zhu et al.提出的可变形DETR是解决上述挑战的一种方法,提出了一种可变形注意模块用于关注参考点周围的一组小的关键位置,而不是通过transformer中的原始多头注意来查看特征图上的所有空间位置。(计算复杂度降低,有利于快速收敛)可变形注意模块更容易应用于融合多尺度特征。

DETR挑战2:计算复杂度高。

Zheng et al.提出自适应聚类Transformer(ACT),以降低预训练DETR的计算成本,无需任何训练过程。ACT使用局部敏感散列方法自适应对查询特征进行聚类,并将注意力输出广播到所选原型表示的查询。通过将预先训练好的DETR模型中的自我注意模块替换为所提出的ACT,而无需进行任何再训练,可以在不降低精度的情况下大大降低计算成本。此外,通过使用多任务知识提取(MTKD)方法,可以进一步降低性能下降,该方法利用原始转换器提取ACT模块,只需几次微调。

DETR挑战3:DETR模型的缓慢收敛的问题。

Sun et al.揭示Transformer解码器中的交叉注意模块是背后主要原因。提出了一种仅使用编码器的DETR,设计新的二部匹配方案,使训练更加稳定,收敛速度更快。提出了两种基于Transformer的集合预测模型——TSP-FOCS和TSP-RCNN,用于改进具有FPN的纯编码器DETR。

Dai et al.提出一种用于目标检测的无监督训练DETR(up-DETR)提出了一种新的无监督借口任务,称为随机查询补丁检测,以预训练DETR模型。通过这种方案,UP-DETR在相对较小的数据集上提高了检测精度。

CV中的自注意力

自注意力算法
(看过视频后补充)

现有应用
Ramachandran等人提出了一个基于注意的层来构建一个完全注意模型,该模型在COCO基准上优于Retinanet。
GCNet发现,对于图像中的不同查询位置,由非局部操作建模的全局上下文几乎相同,并建议将简化公式和SENet统一为全局上下文建模的通用框架。
V o等人设计了一种双向操作,以收集信息并将其从查询位置分发到所有可能的位置。
Hu等人提出了一个基于自我注意的关系模块,通过对象外观特征之间的交互,同时处理一组对象。Cheng等人提出了RelationNet,其中包含一个基于注意的解码器模块,用于将其他表示桥接到基于单一表示格式的典型对象检测器中。

高效Transformer

回顾了压缩&加速Transformer
网络修剪、低秩分解、知识蒸馏、网络量化、压缩架构设计
在这里插入图片描述
剪枝&分解
在Transformer预训练中,多注意力机制是并行操作的,对于特定任务,不需要所有头部。
Michel et al.等人大部分注意力机制可以在测试的时候移除,而不会显著影响性能。不同层需要的Head不同,甚至一个head就能满足某些层需要。定义了重要性分数,用来估计每个注意头对最终输出的影响,并且可以移除不重要的注意头。

Dalvi et al.从两个角度分析冗余(一般冗余和特性定任务冗余),根据彩票假说,分析BERT中的彩票,证明减少FFN层和注意头也能实现高压缩率。

除了Transformer的宽度,深度,还可以减少层数来增加推理速度。不同的Transformer不同的注意head可以并行计算,不同的层必须顺序计算,因为下一层的输入取决于前一层的输出。

Fan et al.提出了一种分层策略来规范模型的训练,然后在测试阶段将整个层一起移除。
Hou et al.自适应地减小预定义变压器模型的宽度和深度,同时获得多个不同尺寸的模型。重要的注意头和神经元通过重新布线机制在不同的子网络中共享。

矩阵分解的目的是基于低秩假设,用多个小矩阵逼近大矩阵。Wang et al.对标准矩阵乘法进行分解,从而实现更高效的推理。

知识蒸馏
知识蒸馏通过转移teacher 网络来培养student网络。stu网络更薄,更浅,更容易部署在资料有限的资源上。神经网络神经网络的输出和中间特征也可用于将教师的有效信息传递给学生。
网络量化
量化旨在减少表示网络权重或中间特征的位数。通用神经网络的量化方法已经得到了充分的讨论,并实现了与原始网络相当的性能。最近,如何对变压器模型进行特别量化引起了广泛关注。
Shridhar et al.建议将输入嵌入到二进制高维向量中,然后使用二进制输入表示来训练二进制神经网络。
Cheong等人用低位表示。
Zhao等人对各种量化方法进行了实证研究,表明k-均值量化具有巨大的发展潜力。
针对机器翻译任务,Prato et al.提出了一种完全量化的转换器,这是第一个8位质量模型,没有任何翻译质量损失。
紧凑型结构设计
Jiang et al.提出一个新的模块,名为基于跨度的动态卷积,将全连接层和卷积层结合起来,简化了自我注意的计算。通过卷积运算计算来自不同令牌的表示之间的局部依赖性,这比标准转换器中的密集全连接层要有效得多。
在这里插入图片描述
深度卷积也用于进一步降低计算成本。文献中提出了有趣的汉堡层,它使用矩阵分解来替代原始的自我关注层。矩阵分解可以比标准的自我注意操作更有效地计算,同时可以很好地反映不同标记之间的依赖关系。

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

Transformer综述1——《A Survey on Visual Transformer》 的相关文章

  • 概率密度函数

    概率密度函数 Probability Density Function 简称PDF 是描述随机变量的概率分布的函数 它对于连续型随机变量来说是非常重要的概念 PDF可以用来描述变量在不同取值上的概率分布情况 对于一个连续型随机变量X 其概率
  • 记忆化搜索 (蒟蒻练习生)

    定义 记忆化搜索是一种通过记录已经遍历过的状态的信息 从而避免对同一状态重复遍历的搜索实现方式 因为记忆化搜索确保了每个状态只访问一次 它也是一种常见的动态规划实现方式 引入 题目见 NOIP2005 采药 朴素的 DFS 做法 很容易实现
  • Python web自动化测试 —— 文件上传

    文件上传三种方式 一 查看元素标签 如果是input 则可以参照文本框输入的形式进行文件上传 方法 和用户输入是一样的 使用send keys 1 2 3 4 5 步骤 1 找到定位元素 2 输入文件路径 ele driver find e
  • ios android 字体大小,并排文字在ios上字体变大,安卓上正常显示

    IOS页面 安卓页面 复现代码 公告 疑情公告 notice notice export default data return notice 中民筑友码垛机作业区域一号工位发 疑似闯入行为中民筑友码垛机作业区域一号工位发 疑似闯入行为 发
  • Golang中结构体Struct

    前言 这里总结的Golang 笔记只适合有点编程基础的人看 比如Java 往期内容 Golang学习 day1 变量 类型 Golang学习 指针 循环控制相关 循环结构控制 包函数的使用 异常处理 数组 老奶奶可以看懂的切片 老奶奶可以看
  • C++之extern和static用法和区别

    目录 声明和定义的区别 关键字extern 作用 用法总结 关键字static 全局变量和全局静态变量区别 局部静态变量 静态函数 声明和定义的区别 变量定义 用于为变量分配存储空间 还可为变量指定初始值 程序中 变量有且仅有一个定义 变量

随机推荐

  • C语言读取写入CSV文件基础入门篇

    什么是CSV 大量C语言项目课设 小游戏源码 压 缩 包 免 费 下 载 链 接 如 下 c语言项目课设小游戏源码资料压缩包 zip C文档类资源 CSDN下载c语言项目课设小游戏源码资料压缩包 zipc语言项目课设小游戏源码资料压缩包 z
  • 数据驱动的数字化转型:从流程驱动到数据驱动

    以下文章来源于凯哥讲故事系列 作者凯哥 数字化时代已经到来 1996年的时候 Being Digital 的作者Negroponte就提出数字化生活的概念 而20年以后的今天 我们已经进入了数字化的生活 移动互联网 物联网 手机 各种社交媒
  • 刷脸支付无一例外地建构与完善起来

    刷脸支付均采用的是3D人脸识别技术 这种技术具有一项至关重要的功能 活体检测 即系统摄像头在识别人脸是否为本人的同时 还能检验是否有人利用照片等手段冒充用户 由此封闭了假体攻击的空间 正如支付工具的迭代总是高出人们的预估一样 技术的进化对于
  • 小程序配置网络请求@escook/request-miniprogram

    由于平台限制 小程序项目不支持axios 原生wx request API功能较为简单 不支持拦截器等功能 所以使用 escook request miniprogram第三方包发起网络数据请求 配置步骤 官方文档 https www np
  • 浅谈.NET语言开发应用领域

    NET语言是一种跨平台的开发框架 适用于各种应用程序的开发 以下是一些常见的 NET语言开发应用领域 桌面应用程序开发 使用 NET框架开发的桌面应用程序可以在Windows操作系统上运行 包括Windows Forms和WPF 这些应用程
  • 智能指针之weak_ptr06

    一 weak ptr 看名字就知道 他是一个弱引用 他的存在是为了辅助shared ptr的循环引用问题 它不占用引用数 只能通过shared ptr或者weak ptr构造赋值 它没有重载 和 gt 运算符 因此不可以直接通过 weak
  • hvv 文件上传和文件包含考点

    天眼如何判断文件上传漏洞是否成功 数据包分析 观察客户端请求数据 是否包含webshell流量特征 观察服务器返回信息 是否有 上传成功 或 success upload 等信息提示 尝试寻找上传的文件 访问上传的文件看是否存在 查看文件上
  • Java的数据类型及变量

    一 变量 内存存储的是运行中程序的数据 eg 我有10块钱 买早餐花了6元 问我现在还有多钱 计算机 1 存储数据 2 CPU取出来 参与运算 3 结果更新内存 变量的本质 内存中的一个存储空间 另一种说法 程序运行过程中 其值可以发生改变
  • Java定时任务技术分析

    从零打造项目 系列文章 工具 比MyBatis Generator更强大的代码生成器 ORM框架选型 SpringBoot项目基础设施搭建 SpringBoot集成Mybatis项目实操 SpringBoot集成MybatisPlus项目实
  • 商汤提出解偶检测中分类和定位分支的新方法TSD,COCO 51.2mAP

    目前很多研究表明目标检测中的分类分支和定位分支存在较大的偏差 论文从sibling head改造入手 跳出常规的优化方向 提出TSD方法解决混合任务带来的内在冲突 从主干的proposal中学习不同的task aware proposal
  • IPD简介

    目录 IPD是什么 IPD流程 做正确的事 1 市场调研 2 需求管理 正确地做事 第一阶段 概念阶段 第二阶段 计划阶段 第三阶段 开发阶段 第四阶段 验证阶段 第五阶段 发布阶段 第六阶段 生命周期阶段 IPD与项目管理 项目管理 IP
  • 全程软件测试(十三):静态百盒测试-代码检查/走查——读书笔记

    代码检查与走查是人工测试的两种主要方式 本次主要介绍两种方式的相似点 不同点将在后面详细介绍 两种方式的相似点如下 1 二者均需要建立小组来研读特定程序 使用这两种方式的参与者都需要完成准备工作 准备工作是参加 头脑风暴 会议 会议的主旨是
  • uni-app 环境配置,uni.request封装,接口配置,全局配置,接口调用的封装

    1 环境配置 可参考uni 官网的环境配置 common文件夹下新建config js let url config if process env NODE ENV development 开发环境 url config https com
  • Mybatis-Plus高级查询LambdaQueryWrapper&QueryWrapper

    目录 前言 Wrapper 查询构造器 查询条件 前期准备 查询条件 allEq eq ne gt ge lt le between notBetween like notLike likeLeft likeRight isNull 空值查
  • Python3 使用psycopg2模块 批量写入数据到PostgreSQL数据库(最强输出速度,单机数据库3000W数据写入最多180秒)

    Python3 使用psycopg2模块 批量写入数据到PostgreSQL数据库 最强输出速度 单机数据库3000W数据写入最多180秒 1 本文知识点 1 将string或者list类型的数据转换为IO缓冲区中的str类型 指定格式 2
  • C++中对象创建与释放

    创建对象有以下四种形式 include
  • 一毛一条的接码平台_搭建一套基于 Groovy 规则引擎的业务风控平台

    黑灰产在互联网领域盛行 从反面推动了业务安全反欺诈领域的快速发展 互联网SAAS服务产品响应市场不断创新 也决定了业务风险的多样性 笔者所在财税领域常见的非财税业务互联网风控场景包括登陆注册 短信接口 营销活动 渠道引流推广 交易和支付等
  • 程序员如何逆袭,达到财富自由?

    程序员逆袭达到财富自由有以下几条路 1 加入独角兽公司 拿到大量期权 并坚守到上市套现 2 找到靠谱的创业公司和诚信的创始人 拿到百分比左右的股份 坚守到出售或者上市 3 通过技术创业 公司出售或者上市 4 建立影响力 通过技术咨询 自媒体
  • 目标检测中的MAP(无抄袭)

    个人理解 如果写的有问题可以留言交流 转载请标明出处 谢谢 参考链接 内含代码 https github com rafaelpadilla Object Detection Metrics 人家写的比我好 我只是用中文把理论小总结一下 懒
  • Transformer综述1——《A Survey on Visual Transformer》

    A Survey on Visual Transformer 摘要 将视觉Transformer应用到不同的任务中 分析优缺点 回顾自注意力机制 背景介绍 多层感知和全连接层是经典的神经网络 有多线性层和非线性激活函数 卷积神经网络引入卷积