Transformer基础及视觉应用

news2024/9/20 10:52:01

文章目录

  • Transformer基础及视觉应用
    • 注意力机制基础(主要介绍Transformer用到的类型)
    • Transformer的编解码器结构(Encoder and Decoder)
    • Non-local Neural Networks
    • Transformer与大规模图像识别(Image Recognition at Scale)
    • DETR-2020
    • 分割应用

Transformer基础及视觉应用

注意力机制基础(主要介绍Transformer用到的类型)

key-valure attention

在attention的计算中,通过 q q q x x x 来计算 α \alpha α,在用 α \alpha α 加权求和时也是用 x x x, 这两部分 x x x 的功能是不同的,所以拆分为 ( k , v ) (k,v) (k,v)。我们先用 k k k 来和 q u e r y query query 经过打分函数 s ( k i , q ) s(k_i,q) s(ki,q) s o f t m a x softmax softmax 来计算,得到注意力分布 α \alpha α,再加权汇总,相对于传统的,功能分离使key-valure attention更加灵活。

key-value pair attention

Self-Attention(自注意力机制): 它允许模型在编码一个单词时权衡该单词上下文的重要性。换句话说,在编码过程中,它可以根据不同单词的相关性将重点放在这些单词上,从而更有效地理解上下文并处理文本中的长距离依赖关系。

在这里插入图片描述

Cross-Attention 一般用于 Decoder,Transformer最开始被提出是用于做机器翻译的,input和output是原语言和目标语言,在原语言经过Encoder和目标语言经过 Masked Multi-Head Attention 后,它们要做一个Cross Attention,就是用当前的表示去append一下原语言里面的表示。

Multi-Head Attention(多头注意力机制): Transformer使用多组学习到的线性投影(称为 “头”),而不是进行单一的注意力计算。每个 "头 "都能有效地让模型关注不同的位置,捕捉不同方面的信息。

Multi Head Attention

如上图所示,多个注意力头根据不同的 Query ( Q i Q_i Qi) 得到不同的Attention,最后再 concat 起来

多头注意力机制的思想,个人觉得有点像集成学习的思想,最后通过整合(Concat)多个注意力头,以注意到多角度的信息提高性能。

Transformer的编解码器结构(Encoder and Decoder)

Encoder and Decoder

编码器和解码器(Encoder and Decoder): 原始的Transformer模型具有编码器-解码器结构。编码器接收输入数据并生成一连串连续的表示,其中包含整个序列的信息。然后,解码器接收这些表示并生成输出数据,每次生成一个元素,同时以先前生成的元素为条件。其中 Feed Forward 是一个逐位的 FFN 层(每个词向量都会进全连接网络扫一遍,类似一个宽度为 1 的卷积,不同的是这里是两层的全连接层,先升维再降维)。

在Decoder中,Masked Multi-Head Attention 其实是打了个掩码,让注意力机制只能往前看,这是因为Decoder的训练是教师强制的(Teacher forcing) 的,输入的时候是整个序列都输进去的,但生成的时候是自回归的,所以不能让它往后看。

位置编码(Positional Encoding): 由于Transformer并不按顺序处理数据,因此它本身并不了解数据的位置或顺序。为了解决这个问题,位置编码被添加到了输入中(input embeddings),为模型提供了一些关于单词在句子中相对位置的信息。

层归一化和残差连接(Layer Normalization and Residual Connections): 编码器和解码器中的每个子层(自注意(Multi-Head Attention)、前馈(Feed Forward) )后都有一个残差连接,然后进行层归一化,以获得稳定的训练效果。在上图中 “Add & Norm” 包括了层归一化和残差连接(Layer Normalization and Residual Connections),实现是通过 z 1 = L a y e r N o r m ( x + z ) z_1=LayerNorm(x+z) z1=LayerNorm(x+z) 实现的,其中 z z z 是Multi-Head Attention 的输出。

Non-local Neural Networks

Non-local_1

  1. 非局部(Non-local)操作:通过将自注意力转移到非局部(Non-local)块来实现。

  2. 与现有架构的兼容性: CNN + 非局部

  3. 应用:视频识别、分割

  4. 性能:在长距离上下文依赖的任务方面有明显的性能改善。

可参考论文:Non-local Neural Networks, CVPR-2018

Non-local_2

Non-local_3

可参考论文:GCNet: Non-local Networks Meet Squeeze-Excitation Networks and Beyond TPAMI-2020

Transformer与大规模图像识别(Image Recognition at Scale)

ViT

图像表示法(Image Representation): 图像被分割成固定大小的补丁(patches),每个补丁被平铺成一个一维向量,然后由Transformer模型进行处理。

位置嵌入(Positional Embeddings): 由于Transformer模型本身没有对图像的二维结构有任何固有的感知,因此要为每个补丁(patch)添加位置嵌入,以保留位置信息。

自注意力机制(Self Attention): 转换器中的自注意力机制使其在对某个补丁进行编码时,能够关注图像中的不同补丁。这有助于模型识别图像各部分的复杂模式。

性能: ViT 在 ImageNet 等多个基准数据集上取得了一流的性能,超过了 EfficientNet 等现有的基于 CNN 的模型。不过,值得注意的是,在大型数据集上训练的大模型的性能提升更为明显。

ViT 1

优点:

  1. 纯Transformer结构

  2. 同时扩大训练规模和模型规模。

  3. 与 CNN 变体一起使用时性能卓越。

缺点:

  1. 计算成本高。
  2. 数据效率低
  3. 需要更强的训练增强

参考论文:An Image is Worth 16x16 Words: Transformers for Image Recognition at Scale, ICLR-2021

DETR-2020

DETR 1

端到端训练(End-to-End Training): 传统的物体检测方法(如 Faster R-CNN 或 YOLO)将任务划分为不同的阶段(如提出区域和对每个提议进行分类),而某些阶段(如非极大值抑制)是不可区分的,这就阻碍了端到端的训练。而 DETR 可以通过简单的架构实现端到端的训练,简化了物体检测过程。

二分图匹配损失(Bipartite Matching Loss): DETR 引入了一种新的损失函数,称为二分图匹配损失。该函数使用一对一匹配过程将预测对象与地面实况对象相匹配,最大限度地降低了反映分类误差和边界框损失的成本**。**

基于集合的预测(Set-Based Prediction): 与其他预测固定数量实例的方法不同,DETR 将物体检测视为一个集合预测问题。这意味着,无论场景中的物体数量有多少,它都会输出一个固定大小的预测集和相应的置信度分数。

Transformer架构(Transformer Architecture): DETR 采用Transformer编码器-解码器架构。编码器处理从应用于输入图像的 CNN 主干网中获得的特征向量列表,而解码器则利用这些信息生成一组预测结果。

性能: 与其他一些最先进的模型相比,DETR 在 COCO 等基准测试中的性能并不出众,但却表现出了很强的竞争力。它在长尾物体检测方面表现尤为突出,因为在长尾物体检测中,某些类别的物体很少出现。

无需锚点框(No Need for Anchor Boxes): 传统的检测器需要预定义的锚点框或感受野来提出物体位置。DETR 不需要这些,从而降低了检测过程的复杂性。

结合分割(Incorporating Segmentation): DETR 框架可通过在解码器输出的顶部添加一个小型卷积头来执行全视角分割,从而展示了这种方法的灵活性。

DETR 2

分割应用

分割应用 1
分割应用 2

上面提到的医学图像相关的建议观看MICCAI会议的papers。

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

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

小区物业服务差,现在催缴物业费,暂时不想交如何应对?

面对催缴物业费的情况,采取合理、合法的方式进行沟通和处理是非常重要的。如果您认为物业服务存在不足或者问题,可以按照以下步骤尝试解决问题,而不是直接拒绝缴费,避免后续可能产生的法律纠纷: 收集证据:首…

电脑怎么去除视频水印?电脑视频水印怎么去掉?

电脑怎么去除视频水印?有是我们见到喜欢的视频会保存下来,但是有时候保存的视频上面会带有水印,那么视频水印该如何去除呢?今天小编给大家推荐一个好用的视频去水印软件,操作简单,去水印效果好。 使用&…

tauri使用github action实现跨平台编译并解决编译错误等问题

正常编译为跨平台结果就像上面的,有mac/windows/linux的安装程序,直接下载就可以安装使用,我的这个livebox桌面端仓库地址:GitHub - Sjj1024/LiveBox: livebox,里面有编译文件可以参考。今天主要讲一下遇到的问题。 官…

碳课堂|ISO 14064标准新版变化

ISO 14064标准是针对组织碳排放方面的管理标准,包括温室气体排放和清除的量化、报告与验证的国际标准。其最新版本于 2018年发布,标志着对温室气体管理的全球认知和实践的进一步演进。ISO 14064 作为 ISO 14060 标准系列的重要组成部分,将继续…

bodypaint如何恢复布局设置

1.老师我手贱,布局改了,怎么恢复 2.左边咋没有纹理这个窗口了用来放参考图的 窗口,新建纹理视图,点那九点,拖拽,改变悬浮窗的状态

CatBoost原理介绍

文章最前: 我是Octopus,这个名字来源于我的中文名–章鱼;我热爱编程、热爱算法、热爱开源。所有源码在我的个人github ;这博客是记录我学习的点点滴滴,如果您对 Python、Java、AI、算法有兴趣,可以关注我的…

专业好用的数据恢复软件(iTop Data Recovery Pro v4.4.0.687 激活版 )

前言 由于 iTop 独特的恢复算法,这个强大的数据恢复工具加快了扫描和数据恢复过程。您无需等待很长时间即可取回数据。只需几分钟,您就可以按预期完美找回已删除的文件。此外,扫描选项多种多样,可满足不同的需求。您可以通过位置…

《昇思25天学习打卡营第3天 | 昇思MindSpore数据集 Dataset》

第三天 今天学习了不同的数据集加载方式、数据集常见操作和自定义数据集方法。 1.数据集加载。 以Mnist数据集为例。mindspore.dataset提供的接口仅支持解压后的数据文件,因此我们使用download库下载数据集并解压。 2.数据集迭代。 用create_tuple_iterator或create…

Android (已解决)Gradle 编译失败 Unsupported class file major version 61

文章目录 一、报错原因二、解决方法 一、报错原因 新版本的 Android Studio 默认使用的是 Java 17 LTS,而这个历史项目的 Gradle 版本很低,不支持高版本的 Java。 具体原因:Java 17 (major version 61) 编译的 class 文件,如果在…

重磅更新-UniApp自定义字体可视化设计

重磅更新-UniApp自定义字体可视化设计。 DIY可视化为了适配不同APP需要,支持用户自定义字体,自定义字体后,设计出来的界面更多样化,不再是单一字体效果。用户可以使用第三方字体加入设计,在设计的时候选择上自己的字体…

[数据集][目标检测]水面垃圾水面漂浮物检测数据集VOC+YOLO格式3749张1类别

数据集格式:Pascal VOC格式YOLO格式(不包含分割路径的txt文件,仅仅包含jpg图片以及对应的VOC格式xml文件和yolo格式txt文件) 图片数量(jpg文件个数):3749 标注数量(xml文件个数):3749 标注数量(txt文件个数):3749 标注…

开启网络监控新纪元:免费可视化工具助力网络信息链路拓扑监控大屏

在数字化浪潮汹涌的今天,网络已成为我们生活、工作的不可或缺的一部分。然而,你是否曾经想过,在这个庞大的网络世界中,是谁在默默守护着每一条信息的传输,确保我们的数据安全、稳定地抵达目的地? 网络信息链…

C# 在WPF .net8.0框架中使用FontAwesome 6和IconFont图标字体

文章目录 一、在WPF中使用FontAwesome 6图标字体1.1 下载FontAwesome1.2 在WPF中配置引用1.2.1 引用FontAwesome字体文件1.2.2 将字体文件已资源的形式生成 1.3 在项目中应用1.3.1 使用方式一:局部引用1.3.2 使用方式二:单个文件中全局引用1.3.3 使用方式…

Transformer教程之Encoder-Decoder架构

在当今的自然语言处理(NLP)领域,Transformer已经成为不可或缺的模型。它以其高效的并行计算和卓越的性能在多个任务中占据了主导地位。在这篇文章中,我们将深入探讨Transformer的核心——Encoder-Decoder架构,帮助大家…

可燃气体报警器:广东深圳五金行业的安全守护者

在广东深圳这一五金制造与集散的重地,安全问题一直受到业界和社会的高度重视。在五金行业的日常运营中,可燃气体作为能源的重要来源,其安全使用与监控显得尤为重要。 可燃气体报警器作为保障生产安全的重要设备,在五金行业中扮演…

入门机器视觉的正确打开方式——徒手撸一个python+opencv实现的机器视觉简易调试工具(下)

目录 1.引言2.框架思路3.图像处理流程化的实现3.1如何解析图像流程数据结构3.2 使用networkx网络图库3.3 python实现 4.结论5.python源码PS.扩展阅读ps1.六自由度机器人相关文章资源ps2.四轴机器相关文章资源ps3.移动小车相关文章资源 1.引言 在当今AI时代,关于视觉…

【JPCS独立出版】第四届机电一体化技术与航空航天工程国际学术会议(ICMTAE 2024,8月2-4)

第四届机电一体化技术与航空航天工程国际学术会议(ICMTAE 2024)将围绕“机电一体化”、“电工与电子技术”、“航天工程”与“航空工程”等相关最新研究领域, 为来自国内外高等院校、科学研究所、企事业单位的专家、教授、学者、工程师等提供…

【语言模型】Xinference的部署过程

一、引言 Xinference,也称为Xorbits Inference,是一个性能强大且功能全面的分布式推理框架,专为各种模型的推理而设计。无论是研究者、开发者还是数据科学家,都可以通过Xinference轻松部署自己的模型或内置的前沿开源模型。Xinfe…

【MTK平台】如何学习Bluedroid A2DP Code

一 Bluedroid A2DP架构图 备注: vendor/mediatek/proprietary/packages/modules/Bluetooth/system/audio_a2dp_hw/src 目录下编译生成audio.a2dp.default.so,主要实现a2dp做为设备的功能 二 A2DP File Hierarchy ModuleFileDescriptionAudio HAL (hardware/libhardware/…

好用的兼容性测试工具推荐

兼容性测试确保软件在不同系统和环境中的一致性。本指南探讨了开发人员和QA专业人员有效检测和解决问题的工具,从而提高应用程序的稳健性和用户满意度。 好用的兼容性测试工具推荐 1.Lambda测试 它是一个由AI驱动的测试编排和执行平台,可让您使用超过300…