Transformer为什么如此有效 | 通用建模能力,并行

目录

1 更强更通用的建模能力

2 并行计算

3 大规模训练数据

4 多训练技巧的集成

Transformer是一种基于自注意力机制的网络,在最近一两年年可谓是大放异彩,我23年入坑CV的时候,我看到的CV工作似乎还没有一个不用到Transformer里的一些组件的,我不禁好奇,为什么Transformer如此有效呢?

Transformer最早提出是在2017年,发源于那篇著名的《Attention is all you need》大佬的文章标题就是这么接地气哈哈哈哈,不过吧,确实目前看来Attention is all my need,Transformer的提出最初是用于自然语言处理的

不过就在2020年底,CV探索者们将Transformer迁移到了计算机视觉领域,起初只是在分类任务上展露头角(开拓性工作VIT,全程Vision Transformer),后来各种变体工作的探索,使得Transformer在CV的很多下游任务上,如检测,分割等任务上都表现很好

既然有了统一的主干网络,科学家们就逐渐感觉CV和NLP的大一统会一点点成为可能。

不过今天这篇文章重点还是会放在Transformer为什么如此有效

1 更强更通用的建模能力

卷积网络得吭哧吭哧卷半天,有时候卷到后面前面的信息就忘记了,但Transformer咔嚓一下子就可以捕获全局像素信息

Transformer网络中的自注意力机制可以帮助模型自动捕捉输入序列中不同位置的依赖关系(而图片也可以变为序列),这种机制使得不需要卷积或循环的情况下降整个序列作为输入

正是因为具备这样的通用建模能力,Transformer 中的注意力单元可以被应用到各种各样的视觉任务中。

2 并行计算

在Transformer架构中,实现并行计算的关键在于自注意力(Self-Attention)机制。自注意力机制允许模型同时处理输入序列的所有元素(自注意力机制可以最后化为矩阵运算,实现并行运算),而无需像循环神经网络(RNN)那样按顺序迭代。这种特性使得Transformer可以有效地利用现代硬件(如GPU和TPU)进行并行计算。

3 大规模训练数据

之前很多工作都是有监督的,也就是说为了获取数据集我们需要做很多标记工作

因而我们都想着把数据直接丢给网络,让网络自己学习会有多香呢哈哈哈,方便做数据集的拓展

而Transformer之后的Bert等一系列无监督工作,方便了使用大规模数据获得卓越性能

而现在的Transformer通常使用大量的训练数据进行预训练。这使得模型可以学习到丰富的语言知识和语境信息。随着训练数据的增加,模型的性能通常也会得到显著提高

4 多训练技巧的集成

在训练过程中,采用了迭代了许多训练优化技巧,如学习率调整、批归一化,层归一化,梯度裁剪等,提高模型的训练速度和稳定性。

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

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

相关文章

实现一个简单的线性回归和多项式回归(2)

对于多项式回归,可以同样使用前面线性回归中定义的LinearRegression算子、训练函数train、均方误差函数mean_squared_error,生成数据集create_toy_data,这里就不多做赘述咯~ 拟合的函数为 def sin(x):y torch.sin(2 * math.pi * x)return y1.数据集的建…

电机控制——高数基础

最近开始学习电机控制,将会写一个系列学习笔记,作为一个新手,肯定有理解不到位或错误的地方,仅供大家参考,欢迎交流指正。 先复习一下微积分和自动控制原理,大学学的忘得一干二净。本文大多摘自维基百科 …

信息系统项目管理师第四版学习笔记——项目进度管理

项目进度管理过程 项目进度管理过程包括:规划进度管理、定义活动、排列活动顺序、估算活动持续时间、制订进度计划、控制进度。 规划进度管理 规划进度管理是为规划、编制、管理、执行和控制项目进度而制定政策、程序和文档的过程。本过程的主要作用是为如何在…

uniapp获取公钥、MD5,‘keytool‘ 不是内部或外部命令,也不是可运行的程序 或批处理文件。

获取MD5、SHA1、SHA256指纹信息 通过命令的形式获取 winr调出黑窗口cd到证书所在目录输入keytool -list -v -keystore test.keystore,其中 test.keystore为你的证书名称加文件后缀按照提示输入你的证书密码,就可以查看证书的信息 通过uniapp云端查看(证书是在DClou…

微服务 BFF 架构设计

在现代软件开发中,由于程序、团队、数据规模太大,需要把企业的业务能力进行复用,将领域服务剥离,提供通用能力,避免重复建设和代码;另外服务功能的弹性能力不一样,比如定时任务、数据同步明确的…

目标识别项目实战:基于Yolov7-LPRNet的动态车牌目标识别算法模型(二)

前言 目标识别如今以及迭代了这么多年,普遍受大家认可和欢迎的目标识别框架就是YOLO了。按照官方描述,YOLOv8 是一个 SOTA 模型,它建立在以前 YOLO 版本的成功基础上,并引入了新的功能和改进,以进一步提升性能和灵活性…

```,```中间添加 # + 空格 + 空行后遇到的底部空行出错,书接上回,处理空行

【python查找替换:查找空行,空行前后添加,中间添加 # 空格 空行后遇到的第1行文字? - CSDN App】http://t.csdnimg.cn/QiKCV def is_blank(line):return len(line.strip()) 0txt 时间戳: ("%Y-%m-%d %H:%M:…

【Solidity】智能合约案例——①食品溯源合约

目录 一、合约源码分析: 二、合约整体流程: 1.部署合约 2.管理角色 3.食品信息管理 4.食品溯源管理 一、合约源码分析: Producer.sol:生产者角色的管理合约,功能为:添加新的生产者地址、移除生产者地址、判断角色地址…

关于Go语言的底层,Channel

1.Channel 介绍一下Channel(有缓冲和无缓冲) Go 语言中,不要通过共享内存来通信,而要通过通信来实现内存共享。Go 的CSP(Communicating Sequential Process)并发模型,中文可以叫做通信顺序进程,是通过 gor…

35.树与二叉树练习(1)(王道第5章综合练习)

【所用的树,队列,栈的基本操作详见上一节代码】 试题1(王道5.3.3节第3题): 编写后序遍历二叉树的非递归算法。 参考:34.二叉链树的C语言实现_北京地铁1号线的博客-CSDN博客https://blog.csdn.net/qq_547…

Tomcat 9.0.41在IDEA中乱码问题(IntelliJ IDEA 2022.1.3版本)

1. 乱码的产生是由于编码和解码的编码表不一致引起的。 2. 排查乱码原因 2.1 在idea中启动Tomcat时控制台乱码排查 Tomcat输出日志乱码: 首先查看IDEA控制台,检查发现默认编码是GBK。 再查看Tomcat日志(conf文件下logging.properties)的默…

【鼠标右键菜单添加用VSCode打开文件或文件夹】

鼠标右键菜单添加用VSCode打开文件或文件夹 演示效果如下: 右击文件 或右击文件夹 或在文件夹内空白处右击 方法一:重装软件 重装软件,安装时勾选如图所示方框(如果登录的有账号保存有配置信息可以选择重装软件&#xff0c…