Transformer ZOO

Natural Language Processing

Transformer:Attention is all you need URL(46589)2017.6

  • 提出Attention机制可以替代卷积框架。
  • 引入Position Encoding,用来为序列添加前后文关系。
  • 注意力机制中包含了全局信息
  • 自注意力机制在建模序列数据中的长期依赖关系方面表现出色,因为它能够在序列中的每个位置上计算所有其他位置的注意力权重,并且能够通过这些权重来捕获全局的语义信息。但其无法显式地建模序列中的局部结构。这意味着自注意力机制在处理某些序列数据时可能会出现一些问题,比如处理具有很强局部结构的序列时可能无法捕获这种结构的信息。
  • 详细见transformer
  • 【Transformer】10分钟学会Transformer | Pytorch代码讲解 | 代码可运行 - 知乎 (zhihu.com)
image-20230305172508153

BERT: Pre-training of Deep Bidirectional Transformers for Language Understanding URL(24662)2018.10

image-20230321165647106

Input/Output Representations

  • 采用WordPiece编码,又为了解决前后句子问题,BERT采用了两种方法去解决:

    • 在组合的一序列tokens中把**分割token([SEP])**插入到每个句子后,以分开不同的句子tokens。

    • 为每一个token表征都添加一个Segment Embedding来指示其属于句子A还是句子B。

  • 在每个序列队首位置添加一个**[CLS]标记,该分类token对应的最后一个Transformer层输出被用来起到聚集整个序列表征信息的作用(在之后的下游**任务中,对于句子级别的任务,就把C输入到额外的输出层中,对于token级别的任务,就把其他token对应的最后一个Transformer的输出输入到额外的输出层)

    image-20230321165921184

训练策略

  • Masked Language Model(MLM)改进了原始Transformer在预测时只能获取当前时刻前的信息,通过引入cloze(完形填空)的训练思路,让模型获得双向语言特征(部分语言问题本身需要通过获取双向信息才能达到更好的效果)。

  • Next Sentence Prediction(NSP),普通MLM任务只是倾向于对每个token层次的特征进行表征,但不能对相关token的句子层次特征进行表示,为了使得模型能理解句子间的关系,采用了NSP任务来进行训练。

    具体的做法是:对于每一个训练样例,我们在语料库中挑选出句子A和句子B来组成,50%的时候句子B就是句子A的下一句*(标注为IsNext),剩下50%的时候句子B是语料库中的随机句子(标注为NotNext)*。接下来把训练样例输入到BERT模型中,用**[CLS]对应的C信息**去进行二分类的预测。

Transformer-XL: Attentive Language Models beyond a Fixed-Length Context URL(1103)2019.1

  • Segment-Level Recurrence,对于每个被segment的序列,将前一个序列计算的隐状态序列进行缓存,并利用到当前状态下的前向计算中(可以缓存多个序列)

  • 提出相对位置编码:将序列每个位置信息表示为由位置偏移量和时间步数组成的向量,然后映射到固定的维度空间输入到注意力机制中

    image-20230321140028233

XLNet: Generalized Autoregressive Pretraining for Language URL (3062)2019.6

  • Permutation Language Modeling(随机置换语言模型),通过对序列进行permutation,让序列在以AR1模型进行输入的同时具备AE2模型能对上下文信息的优点,但此时位置编码需要修改,从而引入了Two-Stream Self-Attention。

    • 由于AR模型在处理序列时只能从左到右或从右到左,即使双向叠加效果也差于BERT,但是BERT的AE模型在推理过程又是看不到的,这导致性能丢失,从而通过PLM来平衡两个步骤。
  • Two-Stream Self-Attention,引入query stream和content stream,其中query stream是用来对随机置换的序列位置进行编码,以此具有位置关系信息。

    image-20230321135318606

Computer Vision

VIT:An Image is Worth 16x16 Words: Transformers for Image Recognition at Scale URL (976) 2020.10

image-20230321162924663
  • 采用将图片分为多个patch,再将每个patch投影为固定向量作为输入,为了更好的进行下游任务进行图像分类等操作,采用和[BERT](#Input/Output Representations)相似的操作,在输入序列最前面加一个**[CLS]**标记。从而,通过patch embedding将一个视觉问题转换为了一个seq2seq问题。

  • ViT(Vision Transformer)解析 - 知乎 (zhihu.com)

Pyramid Vision Transformer:A Versatile Backbone for Dense Prediction without Convs

[2102.12122] Pyramid Vision Transformer: A Versatile Backbone for Dense Prediction without Convolutions (arxiv.org)

2023-11-17_10-51-15

2023-11-19_16-48-20

  • 利用了progressive shrinking pyramid,可以输出多分辨率的feature map,方便进行更多下游任务,通过人为限制kv的尺寸大小限制计算量
  • 使用层级式架构,能输出不同stage后的特征图,方便进行下游任务。

Swin Transformer : Hierarchical Vision Transformer using Shifted Windows URL (351) 2021.3

image-20230321183426196

  • 下采样的层级设计,能够逐渐增大感受野,从而使得注意力机制也能够注意到全局的特征

  • 滑窗操作包括不重叠的 local window,和重叠的 cross-window。不重叠的local windows将注意力计算限制在一个窗口(window size固定),而cross-windows则让不同窗口之间信息可以进行关联,达到更好的效果。

  • 论文详解:Swin Transformer - 知乎 (zhihu.com)

Object Detection

DETR: End-to-End Object Detection with Transformers URL(108) 2020.5

  • 绕过proposals、anchors、window center的传统目标检测方法,直接使用transformer的全局注意力实现对目标的预测,避免了一些人为因素影响的先验框。
  • 小物体不太好,其运行在分辨率最低的feature map上
  • set-based loss(实现端到端),采用匈牙利匹配
  • decoder中出现了cross attention,输入包含了object query 以及encoder的输出
  • Object queries是一个可学习的向量(num, b,dim)Num是人为给的值,这个东西的作用和cls token类似,也是在整合信息,远大于图片内物体数量。
  • end2end 丢弃Transformer,FCN也可以实现E2E检测 - 知乎 (zhihu.com)
  • (6) DETR - End to end object detection with transformers (ECCV2020) - YouTube

image-20230321185015283

Deformable DETR: Deformable Transformers for End-to-End Object Detection URL(183)2020.10

  • 引入多尺度特征,解决了DETR在小物体上检测的问题。

Footnotes



  1. AutoRegressive language model ↩︎

  2. AutoEncoder language model ↩︎

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.hqwc.cn/news/194458.html

如若内容造成侵权/违法违规/事实不符,请联系编程知识网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

Linux调试器:gdb的使用

我们知道在Visual Studio2022中,我们可以对编好的代码进行调试来分析dug的位置,那Linux环境下如何进行程序的调试呢?那就是使用Linux调试器:gdb。 目录 1.背景 2. 开始使用 1.背景 程序的发布方式有两种,debug模式…

Java Web 实战 20 - HTTP PK HTTPS ? HTTPS 大获全胜 ?

HTTP VS HTTPS 一 . HTTPS1.1 臭名昭著的运营商劫持1.2 加密是什么 ?1.3 HTTPS 的加密过程对称加密非对称加密引入 "证书" 机制 1.4 HTTP VS HTTPS Hello , 大家好 , 好久没有更新 JavaWeb 模块的内容了 . 博主这篇文章主要给大家讲解一下 HTTPS 以及与 HTTP 的区别…

Spring IOC/DI和MVC及若依对应介绍

文章目录 一、Spring IOC、DI注解1.介绍2.使用 二、Spring MVC注解1.介绍2.使用 一、Spring IOC、DI注解 1.介绍 什么是Spring IOC/DI? IOC(Inversion of Control:控制反转)是面向对象编程中的一种设计原则。其中最常见的方式叫做依赖注入(…

Backtrader绘图cerebro.plot报错问题的处理

Backtrader绘图cerebro.plot报错问题的处理 1.问题描述 在jupyter 中使用BackTrader ,使用绘图功能时: cerebro.plot() 提示错误:ValueError: Axis limits cannot be NaN or Inf 由于backtrader 要求有7列数据,最后一列openint…

(数据结构)算法的时间复杂度

注意语句频度和时间复杂度的区别,语句频度是指语句执行的次数,不可以像时间复杂度一样近似次数和省略常数项

图书管理系统(图文详解,附源码)

前言:本文旨在用面向对象的思想编程实现图书管理系统,功能包括增删查找,完整源码放在文末,大家有需自取 目录 一.整体框架 二.书籍和书架 书籍(Book) 书架(BookRack) 三.对书籍的相关操作 操作接口(IOperation) 新增图书(A…

支付、结算、对账流程

1、支付过程概览 2、微信支付流程 以微信支付为例,用户使用北京银行,商户收款银行为工行银行,列出机构名 用户在商户处选购商品或服务,选择使用微信支付进行付款。用户打开微信支付,输入支付密码或进行指纹识别等身份验证。微信支付系统将支付请求发送给北京银行。北京银行…

校园服装定制服务预约小程序的效果如何

对校园服装定制商家而言,如今线下流量稀缺,同行多且竞争激烈,同时这一行面对的消费者非大众,因此各品牌间都在通过各种方式进行同城或多地的客户拓展,但线下方式无疑是比较低效的。线上是一个不错的选择,不…

用cmd看星球大战大电影,c++版本全集星球大战,超长多细节

用cmd看星球大战 最近发现了一个有趣的指令。 是不是感觉很insteresting呢 教程 进入控制面板,点击系统与安全 然后,进入以后,点击启用或关闭 Windows 功能 启用Telnet Client并点击确定 用快捷键winr打开我们的cmd 输入指令 telnet towe…

腾讯云CVM服务器标准型/高IO/计算/大数据使用场景及选择说明

腾讯云CVM服务器多种机型使用场景说明,如标准型、内存型、高 IO 型、计算型、大数据型、异构型和批量型,腾讯云百科txybk.com分享不同CVM实例规格配置适合使用场景说明: 腾讯云CVM云服务器 标准型:适合中小型 Web 应用、中小型数据…

图解系列--认证

单向散列函数 1.什么是单向散列函数 单向散列函数有一个输入和一个输出,其中输入称为消息,输出称为散列值。单向散列函数可以根据消息的内容计算出散列值,而散列值就可以被用来检查消息的完整性。 在指定的散列函数处理下,无论输…