首页 > 其他分享 >Transformer

Transformer

时间:2024-12-12 16:21:59浏览次数:5  
标签:Transformer 特征 更新 维度 x2 x1 向量

  • Transformer本质是将平平无奇的特征变为楞次分明的特征
image-20241212140549487
  • transformer能够结合上下文语境更新自身特征

整体架构

image-20241212160953302

编码层(Encoder)

self-attention是啥意思呢?

  • 对于输入的数据,你的关注点是什么?

    在逛商场的时候,你可能更加的关注商场里售卖的物品,而不会去关注旋转木马(游乐园才会关注吧_)。而在计算机的世界里也是如此,那么如何才能让计算机关注到这些有价值的信息?

  • 一个简单的例子—“今天晚上吃汉堡”如何更新“今天”这一词向量

    结合上下文来更新“今天”这一词向量,我们将“今天”这一词向量的原始特征的50%的信息给新的词向量,将“晚上”词向量的10%的信息给新的词向量,以此类推,将“吃”和“汉堡”的30%和10%的信息给新的词向量。由此我们完成“今天”这一词向量的更新。

    类似的方法,完成“晚上”,“吃”和"汉堡"词向量的更新。

    image-20241212142321417

    那么,如0.5,0.1,0.3,0.1是如何得来的呢?简单的理解是模型通过训练得到的

self-attention如何计算?

  • 判断x1和x2之间的关系,如下图所示,

    • 如果x1和x2它们垂直不相交,说明它们的关系不好;即内积越小,关系越差
    • 如果x1和x2相交,并且内积越大,说明它们的关系越好。
    image-20241212144001787
  • 我们假设x1和x2有关系,通过transformer更新嵌入向量

    image-20241212145903209
    • stop1 :构造三种辅助向量,分别为Queries,Keys,Values;

    • stop2:x1首先询问自身(q1),x1自身给予反馈(k1);x1再去询问x2(q1),x2给予x1反馈(k2);这里更新谁(x1),谁提供Query向量(q1)

    • 以上,我们使用拟人的手法说明了Queries,Keys

    • stop3: q1*k1.T得到x1对自身的关系注意力系数;同理,我们可以得到x2对x1的关系注意力系数;

    • stop4: 有了关系注意力系数,我们再乘以对应的值向量Value,拼接来自x1和x2值向量Value的信息,得到更新后的x1的特征表示。

      image-20241212150032467
  • 那么Queries,Keys,Values是如何得到的呢?

    • 三个需要训练的矩阵
      Q: query,要去查询的
      K: key,等着被查的
      V: value,实际的特征信息
    • WQ,WK, W^V是通过全连接层生成的
image-20241212150119100
  • 最终的得分值经过softmax就是最终上下文结果

    对于同一个特征向量来说,一个是用100维度的特征去衡量重要性,一个使用200维度的特征去衡量重要性,这要的结果大概率是200维度的特征的重要性要大于100维度的特征的重要性,因此我们引入了d_k来均衡特征的重要性。

    image-20241212150730346

multi-headed机制

  • 一组q,k,v得到了一组当前词的特征表达

  • 类似卷积神经网络中的滤波器能不能提取多种特征呢?

    image-20241212151254439
  • 通过多组q,k,v的到多个当前词向量的特征表达

    如下图所示,我们的x1原始特征的维度为200,采用多头的方式,类似于两组q,k,v分工协作,每组更新x1的100个维度的信息,最终更新得到的结果拼接起来得到x1更新后的维度仍然是200。

    假设两个施工队共同承包了一项工程,即建设200米的大桥,则两个施工队每队负责100米。

    image-20241212152910775
  • 思考:

    image-20241212154123469
    • “我”这个词向量是一样的吗?
    • 结合语境这样做合理吗?
  • 在self-attention中每个词都会考虑整个序列的加权,所以其出现位置并不会对结果产生什么影响,相当于放哪都无所谓,但是这跟实际就有些不符合了,我们希望模型能对位置有额外的认识。

    image-20241212153916904

堆叠多层

self-attention可以堆叠多层,常规的是输入维度和输出维度不变,只有值是不变的。

Add与Normalize

image-20241212154555749
  • 归一化(Normalize)
  • 连接:基本的残差连接方式image-20241212154717314

解码层(Decoder)

看看输出结果,比如手写数字集,,输出10分类结果,解码层往往是全连接层

image-20241212160350673
  • Attention计算不同
  • 加入了MASK机制

最终输出结果

image-20241212160502755
  • 得出最终预测结果
  • 损失函数 cross-entropy即可

标签:Transformer,特征,更新,维度,x2,x1,向量
From: https://www.cnblogs.com/DLChen/p/18602853

相关文章

  • 位置编码祛魅 | 详解Transformer中位置编码Positional Encoding
    往期精彩内容:Python-凯斯西储大学(CWRU)轴承数据解读与分类处理基于FFT+CNN-BiGRU-Attention时域、频域特征注意力融合的轴承故障识别模型-CSDN博客基于FFT+CNN-Transformer时域、频域特征融合的轴承故障识别模型-CSDN博客Python轴承故障诊断(11)基于VMD+CNN-BiG......
  • 时空特征融合的BiTCN-Transformer并行预测模型
    往期精彩内容:时序预测:LSTM、ARIMA、Holt-Winters、SARIMA模型的分析与比较全是干货|数据集、学习资料、建模资源分享!EMD变体分解效果最好算法——CEEMDAN(五)-CSDN博客拒绝信息泄露!VMD滚动分解+Informer-BiLSTM并行预测模型-CSDN博客单步预测-风速预测模型代码全家桶-......
  • 世界上第一本把Transformer进行了全面、系统级解读的书籍!
    截止于到目前,这是世界上第一本把Transformer进行了全面、系统级解读的书籍,共包含了60多个transformer架构,你可以掌握每个架构的理论知识与实用技巧,以及如何在现实场景中去使用它。不管是深度学习初学者还是具备一定基础的同学,我都强烈推荐大家去看一看!作者通过七个大的章......
  • 基于Transformer的生成式人工智能模型
    Transformer_AI2024年11月15日更新在此教程中,我们将对基于Transformer的生成式人工智能模型及其原理进行一个简单的介绍,并实现其训练和推理过程,且至少支持3种数据集,目前支持数据集有:MNIST、fashionMNIST、CIFAR10等,并给用户提供一个详细的帮助文档。目录基本介绍什么是生......
  • 故障诊断 | 创新模型更新:基于SSA-CNN-Transformer诊断模型
    往期精彩内容:Python-凯斯西储大学(CWRU)轴承数据解读与分类处理基于FFT+CNN-BiGRU-Attention时域、频域特征注意力融合的轴承故障识别模型-CSDN博客基于FFT+CNN-Transformer时域、频域特征融合的轴承故障识别模型-CSDN博客Python轴承故障诊断(11)基于VMD+CNN-Bi......
  • TransformerEncoder 类
    定义一个TransformerEncoder类,它是一个标准的Transformer编码器的实现,通常用于自然语言处理(NLP)任务中。Transformer是由Vaswani等人提出的模型,广泛用于许多序列到序列的任务,如机器翻译、文本生成、图像处理等:1.类说明TransformerEncoder是一个nn.Module的子类,......
  • 在FreeBSD系统使用pkg安装Pytorch和Transformers
    以前在FreeBSD下也安装过Pytorch,当时pkg安装有问题,所以最终是使用的conda安装,非常复杂繁琐。现在pkg安装已经非常简单方便了。以前FreeBSD下用conda安装pytorch:python安装pytorch@FreeBSD_failedtobuildpytorch-CSDN博客FreeBSD下安装Transformers:python安装transformers......
  • 解决|diffusion transformer的环境安装慢问题、vae预训练模型下载失败问题、扩散模型
    目录环境安装慢1、换源2、直接下载包到本地vae预训练模型下载失败1、去huggingface官网下载对应的模型2、传输至服务器的某个文件夹3、在代码里直接加载下载好的模型:扩散模型的损失参考链接环境安装慢这个问题有很多解决方法,我比较喜欢的是以下两种:1、换源我体验下来,清华源是......
  • 【用于医学图像分割的轻量级边界感知Transformer】
    代码:BATFormer发表时间:2023发表期刊:IEEETMI这篇论文介绍了一种新的Transformer架构,称为BATFormer(Boundary-AwareLightweightTransformer),旨在改进医学图像分割的效率和效果。目标解决现有问题:传统的卷积神经网络(CNNs)由于感受野有限,在处理需要长距离依赖关系的任务时......
  • Transformer模型变长序列优化:解析PyTorch上的FlashAttention2与xFormers
    随着生成式AI(genAI)模型在应用范围和模型规模方面的持续扩展,其训练和部署所需的计算资源及相关成本也呈现显著增长趋势,模型优化对于提升运行时性能和降低运营成本变得尤为关键。作为现代genAI系统核心组件的Transformer架构及其注意力机制,由于其计算密集型的特性,成为优化的重......