Transformer的PE(position embedding),即位置编码理解

这篇具有很好参考价值的文章主要介绍了Transformer的PE(position embedding),即位置编码理解。希望对大家有所帮助。如果存在错误或未考虑完全的地方,请大家不吝赐教,您也可以点击"举报违法"按钮提交疑问。

背景:

最近要搞理论学习了,先前搞了大半年的工程,又要捡起一些理论原理,现在还是从transformer熟悉理解一下,争取吃透。
关于transformer的经典介绍和资料也一大堆,我就不展开来讲了,碰到了一些一时没太想明白的问题,就记一下,也当是重新理解一遍。

position embedding,transformer,深度学习,自然语言处理,计算机视觉,位置编码
transformer的输入要么是词向量或是块状处理了的图像,分别用于自然语言处理和计算机视觉领域。
在自然语言处理中,原始的输入肯定是某种文字形式的语言,但是要送进机器处理要先进行编码,一般有word2vec等方式转化为词向量。

词向量之间需要有一个相对位置关系,如果全部不分序输入那处理肯定不方便,不同词之间组合意思也会发生变化,于是就要给词向量加位置信息。

普通的加一个位置信息,词量大时不利于计算,于是transformer里面用了一种位置编码方式,把位置信息作为词向量的一部分输入信息一起送入网络进行处理,而且获得了不错的效果,一开始位置编码也没太看明白,多看了一些资料后也有一些大致了解。

Transformer 中使用位置 Embedding 保存单词在序列中的相对或绝对位置。
position embedding,transformer,深度学习,自然语言处理,计算机视觉,位置编码
这是位置向量函数的定义,经过多番解读,我现在的理解是:

1、表示方法:

假设某种语言的每个单词都可以嵌入成254个长度的向量,即一个单词的长度是254,

假设单词嵌入并且组成batch后,shape为(b,N,254),N是序列最大长度,即最长的一句话包含的单词个数为N,254是每个单词的嵌入向量长度,b是batch,为了便于组成batch(不同训练句子单词个数肯定不一样)进行训练,可以简单统计所有训练句子的单词个数,取最大即可,假设统计后发现待翻译句子最长是10个单词,那么编码器输入是10x254,batch为1 则输入维度是(1,10,254).

因为位置向量长度要和词向量相加,需要长度保持一致,所以位置向量的维度为(1,N,254),N表示N个单词对应的N个位置,每个位置采用254长度向量进行表示。
position embedding,transformer,深度学习,自然语言处理,计算机视觉,位置编码

2、transformer采用sin-cos函数进行表示:

position embedding,transformer,深度学习,自然语言处理,计算机视觉,位置编码
其中,pos对应N,范围是0~N,表示词向量长度为N的某个单词的位置
i 表示某个单词的表示向量的最小单位的位置,范围是0-253;d表示长度单词词向量长度的最大值,即254

进行单词表示时,把表示向量的最小单位按位置进行划分,偶数用sin表示,奇数用cos表示,按照位置顺序进行拼接

position embedding,transformer,深度学习,自然语言处理,计算机视觉,位置编码
如上图,纵向是position,表示一个句子的长度,此处是50,说明该句子包含50个单词,即上面的N;
横向表示每个单词的词向量长度,此处是128,即上文的254. 另1/50的横向条表示一个单词,图中画了3条,对应3个单词。

下面几幅图同理:
position embedding,transformer,深度学习,自然语言处理,计算机视觉,位置编码
position embedding,transformer,深度学习,自然语言处理,计算机视觉,位置编码

附上几个有帮助的链接以供参考,是查找过程觉得比较有用的:
https://zhuanlan.zhihu.com/p/338817680
https://zhuanlan.zhihu.com/p/308301901
https://kazemnejad.com/blog/transformer_architecture_positional_encoding/
http://jalammar.github.io/illustrated-transformer/文章来源地址https://www.toymoban.com/news/detail-585780.html

到了这里,关于Transformer的PE(position embedding),即位置编码理解的文章就介绍完了。如果您还想了解更多内容,请在右上角搜索TOY模板网以前的文章或继续浏览下面的相关文章,希望大家以后多多支持TOY模板网!

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处: 如若内容造成侵权/违法违规/事实不符,请点击违法举报进行投诉反馈,一经查实,立即删除!

领支付宝红包 赞助服务器费用

相关文章

  • Transformer正余弦位置编码理解

    在学习Transformer模型过程中不可避免的一个过程便是要对序列进行位置编码,在Transformer中分为固定位置编码与可学习的位置编码,其一般采用固定位置编码中的正余弦位置编码方式。 今天便以DETR模型为例,介绍正余弦编码的原理与实现过程。 首先给出其公式: 其中i指的是

    2024年02月07日
    浏览(42)
  • Ai 算法之Transformer 模型的实现: 一 、Input Embedding模块和Positional Embedding模块的实现

    比较常见的文章生成模型有以下几种: RNN:循环神经网络。可以处理长度变化的序列数据,比如自然语言文本。RNN通过隐藏层中的循环结构来传递时间序列中的信息,从而使当前的计算可以参照之前的信息。但这种模型有梯度爆炸和梯度消失的风险,所以只能做简单的生成任

    2024年01月23日
    浏览(37)
  • 深度学习笔记之Transformer(六)Position Embedding铺垫:Skipgram与CBOW模型

    上一节介绍了 Word2vec text{Word2vec} Word2vec 模型架构与对应策略。本节将继续介绍 Skipgram text{Skipgram} Skipgram 与 CBOW text{CBOW} CBOW 模型架构。 关于 Word2vec text{Word2vec} Word2vec 模型,它的 任务目标 是基于 语料库 ( Corpus ) (text{Corpus}) ( Corpus ) ,对该语料库对应 词汇表 ( Vocabulary ) (

    2024年02月15日
    浏览(36)
  • 深度学习笔记之Transformer(五) Position Embedding铺垫:Word2vec

    在Transformer(三)自注意力机制一节中介绍了 位置编码 ( Position Embedding ) (text{Position Embedding}) ( Position Embedding ) ,本系列针对位置编码 再回首 ,从公式角度重新认识位置编码。本节作为铺垫,介绍一下 词向量 模型—— Word2vec text{Word2vec} Word2vec 。 在循环神经网络简单示例中

    2024年02月13日
    浏览(34)
  • 深入理解Transformer,兼谈MHSA(多头自注意力)、Cross-Attention(交叉注意力)、LayerNorm、FFN、位置编码

    Transformer其实不是完全的Self-Attention(SA,自注意力)结构,还带有Cross-Attention(CA,交叉注意力)、残差连接、LayerNorm、类似1维卷积的Position-wise Feed-Forward Networks(FFN)、MLP和Positional Encoding(位置编码)等 本文涵盖Transformer所采用的MHSA(多头自注意力)、LayerNorm、FFN、位置编

    2024年04月12日
    浏览(60)
  • CVPR 2022 Image Dehazing Transformer with Transmission-Aware 3D Position Embedding 个人学习笔记

    源码下载: CVPR2022ImageDehazingTransformerwithTransmission-Aware3D代码-深度学习文档类资源-CSDN下载 Abstract 尽管卷积神经网络(CNNs)的单图像去模糊已经取得了良好的进展,但卷积固有的 等方差 和 局部性 仍然是去雾性能的 瓶颈 。虽然 Transformer 占据了各种计算机视觉任务,但直接利

    2023年04月08日
    浏览(48)
  • Transformer架构:位置编码

    2017年,Google的Vaswani 等人提出了一种新颖的纯注意力序列到序列架构,闻名学术界与工业界的 Transformer 架构横空出世。它的可并行化训练能力和优越的性能使其成为自然语言处理领域(Natural Language Processing,NLP)以及计算机视觉领域(Computer Vision,CV)研究人员的热门选择。

    2023年04月27日
    浏览(39)
  • Transformer 位置编码

    ✅作者简介:人工智能专业本科在读,喜欢计算机与编程,写博客记录自己的学习历程。 🍎个人主页:小嗷犬的个人主页 🍊个人网站:小嗷犬的技术小站 🥭个人信条:为天地立心,为生民立命,为往圣继绝学,为万世开太平。 Attention Is All You Need 是 Google 于 2017 年发表的

    2024年01月16日
    浏览(32)
  • Swin Transformer之相对位置编码详解

    目录 一、概要 二、具体解析 1. 相对位置索引计算第一步  2. 相对位置索引计算第二步 3. 相对位置索引计算第三步      在 Swin Transformer 采用了 相对位置编码 的概念。       那么相对位置编码的作用是什么呢?           解释: 在解释相对位置编码之前,我们需要先了解

    2023年04月16日
    浏览(37)
  • 用于多视图 3D 对象检测的位置嵌入变换(PETR: Position Embedding Transformation for Multi-View 3D Object Detection)

    本文PETR (PETR: Position Embedding Transformation for Multi-View 3D Object Detection)是对DETR3D (3D Object Detection from Multi-view Images via 3D-to-2D Queries)的改进,将2D转换至3D,还存在三个问题: (1) 空间与多视图之间的信息交互依赖于3D参考点估计的准确性,使得采样的特征超出了对象区域,无法投影

    2024年02月07日
    浏览(48)

觉得文章有用就打赏一下文章作者

支付宝扫一扫打赏

博客赞助

微信扫一扫打赏

请作者喝杯咖啡吧~博客赞助

支付宝扫一扫领取红包,优惠每天领

二维码1

领取红包

二维码2

领红包