一文彻底搞懂Transformer - 总体架构,零基础入门到精通,收藏这一篇就够了

news2024/12/24 2:42:10

Transformer

一、RNN编码器-解码器架构****

********序列到序列模型(Seq2Seq)Seq2Seq模型的目标是将一个输入序列转换成另一个输出序列,这在多种应用中都具有广泛的实用价值,例如语言建模、机器翻译、对话生成等。

Seq2Seq

**RNN编码器-解码器架构:**Transformer出来之前,主流的序列转换模型都基于复杂的循环神经网络(RNN),包含编码器和解码器两部分。当时表现最好的模型还通过注意力机制将编码器和解码器连接起来。

Transformer vs RNN

在Seq2Seq框架中,RNN的作用主要体现在两个方面:编码和解码。

****编码器:****RNN接收输入序列,并逐个处理序列中的元素(如单词、字符或时间步),同时更新其内部状态以捕获序列中的依赖关系和上下文信息。这种内部状态,通常被称为“隐藏状态”,能够存储并传递关于输入序列的重要信息。

RNN编码器-解码器架构

解码器:RNN使用编码阶段生成的最终隐藏状态(或整个隐藏状态序列)作为初始条件,生成输出序列。在每一步中,解码器RNN都会根据当前状态、已生成的输出和可能的下一个元素候选来预测下一个元素。

因此,循环神经网络(RNN)、特别是长短时记忆网络(LSTM)和门控循环单元网络(GRU),已经在序列建模和转换问题中牢固确立了其作为最先进方法的地位。

RNN LSTM GRU

神经网络算法 - 一文搞懂RNN(循环神经网络)****


神经网络算法 - 一文搞懂LSTM(长短期记忆网络)

同时,RNN存在一个显著的缺陷:处理长序列时,会存在信息丢失。

编码器在转化序列**x1, x2, x3, x4**为单个向量**c**时,信息会丢失。因为所有信息被压缩到这一个向量中,处理长序列时,信息必然会丢失。

RNN编码器-解码器架构

二、Transformer总体架构_****_

**Transformer起源:******Google Brain 翻译团队通过论文《Attention is all you need》提出了一种全新的简单网络架构——****Transformer,它完全基于注意力机制,摒弃了循环和卷积操作。

注意力机制是全部所需

************注意力机制:************一种允许模型在处理信息时专注于关键部分,忽略不相关信息,从而提高处理效率和准确性的机制。它模仿了人类视觉处理信息时选择性关注的特点。

注意力机制

当人类的视觉机制识别一个场景时,通常不会全面扫描整个场景,而是根据兴趣或需求集中关注特定的部分,如在这张图中,我们首先会注意到动物的脸部,正如注意力图所示,颜色更深的区域通常是我们最先注意到的部分,从而初步判断这可能是一只狼。

注意力机制

Transformer动画讲解 - 注意力机制

**注意力计算Q、K、V:**注意力机制通过查询(Q)匹配键(K)计算注意力分数(向量点乘并调整),将分数转换为权重后加权值(V)矩阵,得到最终注意力向量。

注意力分数是量化注意力机制中信息被关注的程度,反映了信息在注意力机制中的重要性。

Q、K、V计算注意力分数

Transformer动画讲解 - 注意力计算Q、K、V

Transformer本质:****************Transformer是一种基于自注意力机制的深度学习模型,为了解决RNN无法处理长序列依赖问题****而设计的。****

Transformer vs RNN

********Transformer总体架构:********Transformer也遵循编码器-解码器总体架构,使用堆叠的自注意力机制和逐位置的全连接层,分别用于编码器和解码器,如图中的左半部分和右半部分所示。

Transformer的架构

  • **Encoder编码器:**Transformer的编码器由6个相同的层组成,每个层包括两个子层:一个多头自注意力层和一个逐位置的前馈神经网络。在每个子层之后,都会使用残差连接和层归一化操作,这些操作统称为Add&Normalize。这样的结构帮助编码器捕获输入序列中所有位置的依赖关系。

Encoder(编码器)架构

  • **Decoder解码器:**Transformer的解码器由6个相同的层组成,每层包含三个子层:**掩蔽自注意力层、Encoder-Decoder注意力层和逐位置的前馈神经网络。**每个子层后都有残差连接和层归一化操作,简称Add&Normalize。这样的结构确保解码器在生成序列时,能够考虑到之前的输出,并避免未来信息的影响。

Decoder(解码器)架构

神经网络算法 - 一文搞懂FFNN(前馈神经网络)

**************Transformer核心组件:******Transformer模型包含输入嵌入、位置编码、多头注意力、残差连接和层归一化、带掩码的多头注意力以及前馈网络等组件。

Transformer的核心组件


  • 输入嵌入:将输入的文本转换为向量,便于模型处理。

  • 位置编码:给输入向量添加位置信息,因为Transformer并行处理数据而不依赖顺序。

  • 多头注意力:让模型同时关注输入序列的不同部分,捕获复杂的依赖关系。

  • 残差连接与层归一化:通过添加跨层连接和标准化输出,帮助模型更好地训练,防止梯度问题。

  • 带掩码的多头注意力:在生成文本时,确保模型只依赖已知的信息,而不是未来的内容。

  • 前馈网络:对输入进行非线性变换,提取更高级别的特征。

Transformer的核心组件

****************Transformer数据流转:**********可以概括为四个阶段,Embedding(嵌入)、Attention(注意力机制)、MLPs(多层感知机)和Unembedding(从模型表示到最终输出)。
**

Embedding -> Attention -> MLPs -> Unembedding


Transformer动画讲解 - 数据处理的四个阶段

**

************Transformer注意力层:************在Transformer架构中,有3种不同的注意力层(Self Attention自注意力、Cross Attention 交叉注意力、Causal Attention因果注意力)


  • ****编码器中的自注意力层(Self Attention layer):****编码器输入序列通过Multi-Head Self Attention(多头自注意力)计算注意力权重。

  • ****解码器中的交叉注意力层(Cross Attention layer):****编码器-解码器两个序列通过Multi-Head Cross Attention(多头交叉注意力)进行注意力转移。

  • ****解码器中的因果自注意力层(Causal Attention layer):****解码器的单个序列通过Multi-Head Causal Self Attention(多头因果自注意力)进行注意力计算

Transformer注意力层

**

神经网络算法 - 一文搞懂Transformer中的三种注意力机制

本文转自 https://mp.weixin.qq.com/s/DenAOo2flPF3S9NSB4qe-Q,如有侵权,请联系删除。

AI大模型学习福利

作为一名热心肠的互联网老兵,我决定把宝贵的AI知识分享给大家。 至于能学习到多少就看你的学习毅力和能力了 。我已将重要的AI大模型资料包括AI大模型入门学习思维导图、精品AI大模型学习书籍手册、视频教程、实战学习等录播视频免费分享出来。

因篇幅有限,仅展示部分资料,需要点击下方链接即可前往获取

2024最新版CSDN大礼包:《AGI大模型学习资源包》免费分享

一、全套AGI大模型学习路线

AI大模型时代的学习之旅:从基础到前沿,掌握人工智能的核心技能!

img
因篇幅有限,仅展示部分资料,需要点击下方链接即可前往获取

2024最新版CSDN大礼包:《AGI大模型学习资源包》免费分享

二、640套AI大模型报告合集

这套包含640份报告的合集,涵盖了AI大模型的理论研究、技术实现、行业应用等多个方面。无论您是科研人员、工程师,还是对AI大模型感兴趣的爱好者,这套报告合集都将为您提供宝贵的信息和启示。

img

因篇幅有限,仅展示部分资料,需要点击下方链接即可前往获取

2024最新版CSDN大礼包:《AGI大模型学习资源包》免费分享

三、AI大模型经典PDF籍

随着人工智能技术的飞速发展,AI大模型已经成为了当今科技领域的一大热点。这些大型预训练模型,如GPT-3、BERT、XLNet等,以其强大的语言理解和生成能力,正在改变我们对人工智能的认识。 那以下这些PDF籍就是非常不错的学习资源。

img
因篇幅有限,仅展示部分资料,需要点击下方链接即可前往获取

2024最新版CSDN大礼包:《AGI大模型学习资源包》免费分享

四、AI大模型商业化落地方案

img

因篇幅有限,仅展示部分资料,需要点击下方链接即可前往获取

2024最新版CSDN大礼包:《AGI大模型学习资源包》免费分享

作为普通人,入局大模型时代需要持续学习和实践,不断提高自己的技能和认知水平,同时也需要有责任感和伦理意识,为人工智能的健康发展贡献力量。

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

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

相关文章

网络及ipc内存共享

大字符串找小字符串 调试 1. 信号处理函数注册:•一旦使用 signal 函数注册了信号处理函数,该函数就会一直有效,直到程序结束或者显式地取消注册。2. 注册多次的影响:•如果多次注册同一信号的处理函数,最后一次注册的…

Java 入门指南:List 接口

Collection 接口提供了一系列用于操作和管理集合的方法,包括添加、删除、查询、遍历等。它是所有集合类的根接口,包括 List、Set、Queue 等。 Collection 接口常见方法 add(E element):向集合中添加元素。 addAll(Collection col)&#xff1…

打架检测算法在公共安全中的创新应用

在现代社会中,公共场所的安全问题日益受到重视,特别是暴力事件的监控和预防更是各类安防系统的核心需求之一。随着视频监控设备的普及,如何从大量监控数据中实时、高效地识别出潜在的暴力行为,成为亟待解决的难题。传统的视频监控…

怎么对前端的一些按钮做一个权限校验

在一般情况下,我们需要对一些按钮做一个权限校验,来保证只有有权限的用户才能看到 1.创建一个js文件,来写我们的全局方法 我的方法是这样的 import Vue from vue;Vue.mixin({methods:{hasAuth(perm) {var authority this.$store.state.menu.permList;if (authority.indexOf(…

JointJs 在 Vue 中的使用探索(一): Hello JointJS

文章目录 前言根本问题探索过程安装 jointjs测试 joint/core demo 代码jointjs joint/core 前言 最近需要用到 JointJs 做一些东西,但是 官方文档 的 joint/core 跑下来后发现并不太好使,空白一片…(这是个误会…) 所以开了个贴给…

map与set容器初识:初步运用map与set

前言: 本文主要讲解的时对于map与set容器的初步使用,希望大家对map与set容器不熟悉的看了之后可以快速运用set与map到日常中来。(本文适合对vector等基础容器有一定基础的同学) 一、set与map容器常见接口 迭代器接口与以往的所…

【hot100篇-python刷题记录】【不同路径】

R5-多维动态规划篇 多维动态规划的核心在于建立多维状态记录表。 本题中,建立dp二维数组表(初始化为1) dp[i][j]dp[i-1][j]dp[i][j-1] 注意,需要判断是否存在,因为二维数组有边界 第一种处理需要判断边界 第二种&…

go的defer机制

defer的底层机制 为栈操作&#xff0c;栈是一个先进后出的数据结构 func main() {fmt.Println("reciprocal")for i : 0; i < 10; i {defer fmt.Println(i)} }运行结果 reciprocal 9 8 7 6 5 4 3 2 1 0defer拷贝机制 以下已经发生压栈发生值拷贝数据不再会发生变…

【Python机器学习系列】一文教你绘制多分类任务的ROC曲线-宏平均ROC曲线(案例+源码)

这是我的第345篇原创文章。 一、引言 ROC曲线是用于评估二分类模型性能的工具&#xff0c;它展示了模型在不同阈值下的真阳性率与假阳性率之间的关系&#xff0c;但是标准的ROC并不能运用于多分类任务种&#xff0c;于是扩展出了宏平均ROC曲线。 宏平均ROC曲线是多分类问题中…

工业控制常用“对象“数据类型汇总(数据结构篇)

合理巧妙的数据结构会大大简化项目的编程工作量,所以任何项目前期第一步应该是设计巧妙的数据结构、封装对象属性。这样会使我们的编程快捷和高效。这篇博客作为数据类型汇总,会不间断更新。 1、普通电机轴对象 2、普通电机轴对象(详细结构变量) TYPE "udtMotorAxis&q…

机器学习的入门笔记(第十五周)

本周观看了B站up主霹雳吧啦Wz的图像处理的课程&#xff0c; 课程链接&#xff1a;霹雳吧啦Wz的个人空间-霹雳吧啦Wz个人主页-哔哩哔哩视频 下面是本周的所看的课程总结。 利用GoogLeNet进行图像分类 GoogLeNet是由 Google 提出的卷积神经网络架构&#xff0c;于 2014 年在 …

没有用的小技巧之---接入网线,有内网没有外网,但是可以登录微信

打开控制面板&#xff0c;找到网络和Internet 选择Internet选项 点击连接&#xff0c;选择局域网设置 取消勾选代理服务器

JetBrains CLion 2024.2 (macOS, Linux, Windows) - C 和 C++ 跨平台 IDE

JetBrains CLion 2024.2 (macOS, Linux, Windows) - C 和 C 跨平台 IDE JetBrains 跨平台开发者工具 请访问原文链接&#xff1a;https://sysin.org/blog/jetbrains-clion/&#xff0c;查看最新版。原创作品&#xff0c;转载请保留出处。 作者主页&#xff1a;sysin.org Jet…

实战勤务指挥系统解决方案

4. 总体设计方案 方案围绕业务需求、接口需求和安全需求进行设计&#xff0c;包括语音集成、视频图像集成和第三方系统集成&#xff0c;以实现多系统联动和资源共享。 5. 系统特色 系统特色包括高度融合的指挥应用模式、简化的指挥流程、高效的管理机制&#xff0c;以及基于…

《Windows PE》2.1 初识PE文件

Windows PE文件&#xff08;Portable Executable file&#xff09;是一种可执行文件格式&#xff0c;用于Windows操作系统中的可执行程序、动态链接库&#xff08;DLL&#xff09;和驱动程序等。它是一种规范化的文件格式&#xff0c;定义了文件的结构和组织方式&#xff0c;以…

go设计模式———抽象工厂模式

抽象工厂模式概念 抽象工厂模式是一种设计模式&#xff0c;它允许创建一系列相关的对象&#xff0c;而无需指定具体的类。具体来说&#xff0c;抽象工厂定义了用于创建不同产品的接口&#xff0c;但实际的创建工作则由具体的工厂类完成。每个具体工厂负责创建一组相关的产品&am…

谷歌账号停用后申诉了,也收到了谷歌的邮件,如何判断谷歌申诉是否成功,成功了怎么办?被拒绝谷歌账号就废了吗?

似乎是谷歌分工机制的更新&#xff0c;最近谷歌账号“被停用”的情况貌似多了起来&#xff0c;许多朋友在谷歌账号提示活动异常&#xff0c;要输入手机号码恢复账号的时候&#xff0c;无论是否立刻恢复&#xff0c;很快好像就迎来了“您的账号已停用”的结果。或者有一些朋友许…

多元统计分析——基于R语言的单车使用情况可视化分析

注&#xff1a;基于R语言的单车使用情况可视化分析为实验记录&#xff0c;存在不足&#xff0c;自行改进。 一、提出问题&#xff08;要解决或分析的问题&#xff09; 1 、用户对共享单车的使用习惯&#xff0c;环境对共享单车运营带来的影响&#xff1f; 2 、共享单车的租赁…

【北京仁爱堂】痉挛性斜颈的健康指导

痉挛性斜颈是一种肌肉紧张异常症&#xff0c;仅限于颈部肌肉的肌张力障碍。当患者患有痉挛性斜颈&#xff0c;会表现为颈部肌肉间歇性或持续不规则的收缩&#xff0c;因此患者的头颈部会出现扭曲、歪斜、姿势异常等症状&#xff0c;多发于30-40岁左右中年人 一、 痉挛性斜颈的5…

mac和windows上安装nvm管理node版本

NVM 是 node version manager 的缩写&#xff0c;它是一个用来管理电脑上 node 版本的命令行工具&#xff0c;在日常前端开发中是一个跟 node 一样会经常用到的工具&#xff0c;可以很方便的让我们快速切换不同的node版本。 mac 上安装 nvm 1、下载安装 nvm 下载安装可以直…