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,反向传播,优化器。

下图是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:

计算了查询和各个键之间的相似度。

  1. 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

解码器

相关推荐
大耳朵爱学习1 小时前
掌握Transformer之注意力为什么有效
人工智能·深度学习·自然语言处理·大模型·llm·transformer·大语言模型
qq_15321452641 小时前
【2023工业异常检测文献】SimpleNet
图像处理·人工智能·深度学习·神经网络·机器学习·计算机视觉·视觉检测
B站计算机毕业设计超人4 小时前
计算机毕业设计Python+Flask微博情感分析 微博舆情预测 微博爬虫 微博大数据 舆情分析系统 大数据毕业设计 NLP文本分类 机器学习 深度学习 AI
爬虫·python·深度学习·算法·机器学习·自然语言处理·数据可视化
羊小猪~~4 小时前
深度学习基础案例5--VGG16人脸识别(体验学习的痛苦与乐趣)
人工智能·python·深度学习·学习·算法·机器学习·cnn
AI大模型知识分享7 小时前
Prompt最佳实践|如何用参考文本让ChatGPT答案更精准?
人工智能·深度学习·机器学习·chatgpt·prompt·gpt-3
小言从不摸鱼9 小时前
【AI大模型】ChatGPT模型原理介绍(下)
人工智能·python·深度学习·机器学习·自然语言处理·chatgpt
酱香编程,风雨兼程13 小时前
深度学习——基础知识
人工智能·深度学习
#include<菜鸡>14 小时前
动手学深度学习(pytorch土堆)-04torchvision中数据集的使用
人工智能·pytorch·深度学习
拓端研究室TRL14 小时前
TensorFlow深度学习框架改进K-means聚类、SOM自组织映射算法及上海招生政策影响分析研究...
深度学习·算法·tensorflow·kmeans·聚类
i嗑盐の小F16 小时前
【IEEE出版,高录用 | EI快检索】第二届人工智能与自动化控制国际学术会议(AIAC 2024,10月25-27)
图像处理·人工智能·深度学习·算法·自然语言处理·自动化