当前位置: 首页 > news >正文

transform详解

在这里插入图片描述

参考:https://zhuanlan.zhihu.com/p/690055241
https://zhuanlan.zhihu.com/p/685724799
https://zhuanlan.zhihu.com/p/609523552
cnn是通过卷积核的方式实现权重偏置的计算,y=wk+b,激活,前馈神经网络,反向传播。
transform的attention也是需要用权重代表重要程度,输入*权重=输出,再用输出和label计算loss,transform的权重是通过自注意力机制(Q,K,V)计算得到的。
transformer:输入,位置编码,编码器(attention,前馈网络),解码器(attention,前馈网络,mask),loss,反向传播,优化器。
cnn:输入,卷积核,前馈网络,loss,反向传播,优化器。
Self-attention 关键点在于,规定K-Q-V三者都来源于 X。通过 X 找到 X 中的关键点。可以看作 QKV 相等,都是由词向量线性变换得到的,并不是 Q=V=K=X,而是 X 通过 Wk、Wq、Wv 线性变换而来。 2. Attention 是通过一个查询变量 Q 找到 V 里面重要信息,K 由 V 变幻而来,QK=A ,AV = Z(注意力值) ,Z 其实是 V 的另一种表示,也可以称为词向量,具有句法和语意特征的 V 3. 也就是说,self-attention 比 attention 约束条件多了两个: (1) Q=K=V(同源) (2) Q,K,V需要遵循attention的做法

下图是Transform 的整体架构,由decoder和encoder构成。构件可以拆解为:

  1. 输入嵌入(Input Embedding): 输入序列首先被转换成固定维度的嵌入向量,这里的embedding是可训的。
  2. 位置编码(Positional Encoding): 由于Transformer不像循环神经网络(RNN)那样自然地处理序列的顺序信息,所以需要添加位置编码以保持序列中单词的位置信息,在Transformer中位置编码不是可训的,是根据位置直接计算的。
  3. 多头自注意力机制(Multi-Head Self-Attention): 允许模型在处理每个序列元素时,同时考虑序列中的所有其他元素,这是通过注意力权重实现的,其中更重要的元素将获得更高的权重。
  4. 前馈网络(Feed-Forward Network): attention模块后接着是一个前馈网络,该网络对每个位置应用相同的全连接层。
  5. 残差连接(Residual Connection)和归一化(Normalization): 在每个子层的输出上,都会进行残差连接,然后在做蹭归一化(Layer-Norm)。
  6. 解码器:Transformer模型中的解码器会根据编码器的输出以及之前已生成的输出序列来生成下一个输出。解码器的架构与编码器类似,但它包含一个额外的子层来进行编码器-解码器注意力操作。同时解码器和编码器一样,解码器通常由多个相同的解码层堆叠而成。解码器的遮掩注意力: 防止解码器在生成输出序列时提前“看到”正确答案(后面结合mask原理解释)。
  7. 线性层和Softmax: 解码器的最后输出通过一个线性层和Softmax层,将解码器输出转换为预测的下一个词的概率分布。
    输入+位置编码:
    在这里插入图片描述
    Self-Attention 的过程如下图所示:
    在这里插入图片描述
    attention参考:https://zhuanlan.zhihu.com/p/685724799
    Attention的基本原理
    Attention机制本质上是一个加权机制。对于给定的输入序列,模型会学习一个权重分布,用于表征每个元素对当前任务的重要程度。这些权重随后被用来计算加权平均(或加权和),生成一个固定大小的“上下文向量”(context vector),该向量蕴含了当前任务最为关键的信息。

Attention的数学表达
一般情况下,Attention可以表示为一个查询(Query)、一系列键(Key)和值(Value)的函数。对于一个输入序列,我们可以将其编码得到一系列的键和值对 (K,V) ,然后针对一个查询 Q来计算Attention:
在这里插入图片描述
计算了查询和各个键之间的相似度。
4. Attention内部计算细节(Dot-product Attention)
4.1 输入文本,获取embeddding
假定我们的输入长度为3,分别用input #1,input #2,input #3表示
embedding层维度是4,通过embedding层对上面的每个token进行编码
通过embedding层得到三个token的embedding,假定分别为:[1, 0, 1, 0],[0, 2, 0, 2],[1, 1, 1, 1]
X = [
[1, 0, 1, 0], # Input 1
[0, 2, 0, 2], # Input 2
[1, 1, 1, 1] # Input 3
]

输入token Embedding
由上面的信息可知:输入序列长度
,元素的维度也就是embeeding维度
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述

在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
以上的图片来自colab的一个动图实现,想要更清晰的了解其中的细节,可以参考其中的内容:
https://accounts.google.com/v3/signin/identifier?authuser=0&continue=https%3A%2F%2Fcolab.research.google.com%2Fdrive%2F1q7cxbPScN3HlHfnqK7ERAGey23T0EpJh%23scrollTo%3DwOkXKd60Q_Iu&hl=zh-CN&ifkv=AdF4I765q8xnuQWqGixy-OhlFU_bowgO6KsfsQ4SEkgkApb6hilFObfsQQF9_0V5Ty_2S-XFb-xHjQ&flowName=GlifWebSignIn&flowEntry=ServiceLogin&dsh=S655081045%3A1722498630272445&ddm=0

解码器
在这里插入图片描述
在这里插入图片描述

相关文章:

  • 北京网站建设多少钱?
  • 辽宁网页制作哪家好_网站建设
  • 高端品牌网站建设_汉中网站制作
  • vite解决前端跨域步骤
  • 8.1-java+tomcat环境的配置+代理
  • 手机在网状态接口如何对接?(一)
  • 猫头虎分享AI写真系统架构分析
  • [FBCTF2019]RCEService (PCRE回溯绕过和%a0换行绕过)
  • 个性化你的生产力工具:待办事项App定制指南
  • hadoop学习笔记4-mapreduce
  • 【书生大模型实战营】基础岛-8G 显存玩转书生大模型 Demo
  • 双向链表的基本操作
  • vue实现电子签名、图片合成、及预览功能
  • 订单搜索分页查询业务
  • 创建了Vue项目,需要导入什么插件以及怎么导入
  • [HITCON 2017]SSRFme 1
  • LInux:循环语句
  • Servlet (1)
  • 收藏网友的 源程序下载网
  • C++入门教程(10):for 语句
  • Docker容器管理
  • Java IO学习笔记一
  • JAVA_NIO系列——Channel和Buffer详解
  • Java知识点总结(JDBC-连接步骤及CRUD)
  • js继承的实现方法
  • laravel5.5 视图共享数据
  • Linux各目录及每个目录的详细介绍
  • Mysql数据库的条件查询语句
  • node 版本过低
  • 代理模式
  • 前端存储 - localStorage
  • 前端相关框架总和
  • 如何将自己的网站分享到QQ空间,微信,微博等等
  • 入职第二天:使用koa搭建node server是种怎样的体验
  • 深度学习中的信息论知识详解
  • 3月27日云栖精选夜读 | 从 “城市大脑”实践,瞭望未来城市源起 ...
  • ​用户画像从0到100的构建思路
  • # centos7下FFmpeg环境部署记录
  • # Redis 入门到精通(九)-- 主从复制(1)
  • # 安徽锐锋科技IDMS系统简介
  • #我与Java虚拟机的故事#连载15:完整阅读的第一本技术书籍
  • (02)Hive SQL编译成MapReduce任务的过程
  • (echarts)echarts使用时重新加载数据之前的数据存留在图上的问题
  • (不用互三)AI绘画:科技赋能艺术的崭新时代
  • (附源码)ssm基于web技术的医务志愿者管理系统 毕业设计 100910
  • (力扣)循环队列的实现与详解(C语言)
  • (十) 初识 Docker file
  • (转) 深度模型优化性能 调参
  • (转)我也是一只IT小小鸟
  • (自用)交互协议设计——protobuf序列化
  • .cfg\.dat\.mak(持续补充)
  • .dat文件写入byte类型数组_用Python从Abaqus导出txt、dat数据
  • .net core webapi 大文件上传到wwwroot文件夹
  • .net core 客户端缓存、服务器端响应缓存、服务器内存缓存
  • .netcore 如何获取系统中所有session_ASP.NET Core如何解决分布式Session一致性问题
  • .Net中的设计模式——Factory Method模式
  • @RequestMapping 的作用是什么?
  • @Value读取properties中文乱码解决方案