文章目录

  • 1. transformer结构图
  • 2. 位置编码的作用
  • 3. 位置编码的计算

1. transformer结构图

​ 在transformer的结构图中,由一个“Positional Encoding”,即位置编码,查看了以下资料后,稍微有点儿理解了,记录于此。

2. 位置编码的作用

​ 由于transformer是并行化运算,所以输入的信息中没有位置信,而在语音文本中,绝大部分都是有语序的。例如:我爱你,要是翻译成’“You love me”,那意思就完全不一样了。于是,就有了位置编码,其作用就是让输入数据携带位置信息,是模型能够找出位置特点。

3. 位置编码的计算

​ 在transformer中的位置编码中,其编码公式如下:
P E ( p o s , 2 i ) = s i n ( p o s 1000 0 2 i / d m o d e l ) P E ( p o s , 2 i + 1 ) = c o s ( p o s 1000 0 2 i / d m o d e l ) PE(pos, 2i) = sin({pos \over 10000^{2i/d_{model}}}) \\ PE(pos, 2i+1) = cos({pos \over 10000^{2i/d_{model}}}) PE(pos,2i)=sin(100002i/dmodelpos)PE(pos,2i+1)=cos(100002i/dmodelpos)
其中, P E 表 示 位 置 编 码 , p o s 表 示 当 前 字 符 在 输 入 字 母 中 的 位 置 , i = d i m i n d e x / / 2 即 改 字 符 的 维 度 下 表 对 2 求 模 , d m o d e l 表 示 该 字 符 的 维 度 。 PE表示位置编码,pos表示当前字符在输入字母中的位置,i=dim_index // 2即改字符的维度下表对2求模, d_{model}表示该字符的维度。 PEposi=dimindex//22dmodel

。上面,表示偶数位置使用sin, 奇数位置使用cos。引入实例,如: 翻译"我爱你"。

Step1: embedding编码

​ 假设embedding编码将每个词向量编程成512维,如图所示:


如上,如果有规定每次输入的x1, x2,…,xn的长度,那么不足就直接使用padding用0填充.其中的”喜欢“换成”爱“即可。

Step2: 位置编码

​ 由上图知,其 d m o d e l = 512 , p o s 爱 = 1 d_{model} = 512, pos_{爱} = 1 dmodel=512,pos=1 ,其编码示意图如下:

一步步计算可得,其具体的位置编码:
P E 0 = s i n ( 1 1000 0 2 ∗ 0 / 512 ) = s i n ( 1 ) P E 1 = c o s ( 1 1000 0 2 ∗ 0 / 512 ) = c o s ( 1 ) . . . P E 5 11 = c o s ( 1 1000 0 2 ∗ 255 / 512 ) PE_0 = sin({1 \over 10000^{2*0/512}}) = sin(1) \\ PE_1= cos({1 \over 10000^{2*0/512}}) = cos(1) \\ ... \\ PE_511 = cos({1 \over 10000^{2*255/512}}) PE0=sin(1000020/5121)=sin(1)PE1=cos(1000020/5121)=cos(1)...PE511=cos(100002255/5121)
Step3: 位置编码与embedding编码进行相加

​ 如图,

然后即可将其作为transtormer的输入进去Attention以及其他运算。

注:

文章有参考:https://wangguisen.blog.csdn.net/article/details/125074022?spm=1001.2014.3001.5502
该文写得非常赞,值得一看。

举例理解transformer中的位置编码相关推荐

  1. 深入理解transformer中的位置编码

    文章目录 总览 问题1 问题2 问题3 问题4 问题5 问题6 总览 我们今天需要讲解transformer中的位置编码,这其实属于进阶内容.既然你会到这里,我默认你已经看过了transformer的 ...

  2. 【Transformer】Transformer 中的位置编码 -- ICLR 2021

    引言 Transformer是近年来非常流行的处理序列到序列问题的架构,其self-attention机制允许了长距离的词直接联系,可以使模型更容易学习序列的长距离依赖.由于其优良的可并行性以及可观的 ...

  3. transformer中相对位置编码理解

    对于一副图像,位置信息占有非常重要的地位,ViT中用了绝对位置编码,Swin中用到了相对位置编码.看了Swin的源码,参考了https://blog.csdn.net/qq_37541097/arti ...

  4. Transformer中的位置编码(PE,position)

    参考链接 [1]https://blog.csdn.net/qq_34771726/article/details/102918440?utm_medium=distribute.pc_relevan ...

  5. ICCV2021 | Vision Transformer中相对位置编码的反思与改进

    前言  在计算机视觉中,相对位置编码的有效性还没有得到很好的研究,甚至仍然存在争议,本文分析了相对位置编码中的几个关键因素,提出了一种新的针对2D图像的相对位置编码方法,称为图像RPE(IRPE). ...

  6. 透彻分析Transformer中的位置编码(positional enconding)

    一.Transformer中为什么要使用位置编码positional encoding 在<Attention Is All You Need>这篇论文中首次提到了transformer模 ...

  7. Transformer架构:位置编码

    2017年,Google的Vaswani 等人提出了一种新颖的纯注意力序列到序列架构,闻名学术界与工业界的 Transformer 架构横空出世.它的可并行化训练能力和优越的性能使其成为自然语言处理领 ...

  8. Positional Encodings in ViTs 近期各视觉Transformer中的位置编码方法总结及代码解析 1

    Positional Encodings in ViTs 近期各视觉Transformer中的位置编码方法总结及代码解析 最近CV领域的Vision Transformer将在NLP领域的Transo ...

  9. Transformer正余弦位置编码理解

    在学习Transformer模型过程中不可避免的一个过程便是要对序列进行位置编码,在Transformer中分为固定位置编码与可学习的位置编码,其一般采用固定位置编码中的正余弦位置编码方式. 今天便以 ...

最新文章

  1. UA MATH567 高维统计专题1 稀疏信号及其恢复4 Basis Pursuit的算法 Projected Gradient Descent
  2. 【Python】条件及循环语句
  3. 组件面板 html 页面,Html - Bootstrap Panel面板
  4. layui 关于layDate设置时间限制问题
  5. 【RabbitMQ】 WorkQueues
  6. 改变numpy的大小_Numpy入门详细教程
  7. Linux查看进程并重启服务命令
  8. mysql数据库从删库到跑路之mysq索引
  9. 在Linux上进行动态注入 | LD_PRELOAD
  10. (六)将样式转换模型从TensorFlow转换为TensorFlow Lite
  11. 双指针 -- 验证回文串
  12. linux mysql多实例启动_Mysql实例Linux下启动多个mysql服务器例子
  13. [BZOJ5329] [SDOI2018] 战略游戏
  14. jdk下载/Linux64位 jdk1.8 jdk-8u161下载
  15. 黑帽SEO必须掌握的四种暗链代码
  16. 服装企业为什么要用湖州管家婆ERP管理软件?
  17. 面试题64:computer和watch的区别
  18. 江宁地区吃喝玩乐全攻略!
  19. 苹果开发者账号双重认证
  20. 洛谷刷题C语言:第一次,第二次,成交!、Bessie‘s Secret Pasture S、金币、Bookshelf B、东南西北

热门文章

  1. “骑驴找马”很心虚?四大困惑一起解决!
  2. linux安装过程中遇到了“kernel panic : no working init found“的解决措施
  3. 全彩高清大屏LED大屏光纤收发器光电转换器兼容灵星雨/诺瓦LED光纤收发器 凯视达灵信光电转换器
  4. [转载] 中华典故故事(孙刚)——40 不见棺材不落泪,不到黄河不死心
  5. 智慧校园之蓝牙定位在学校中的应用,蓝牙室内定位-新导智能
  6. 全志H616学习笔记------Python
  7. Windows备份驱动
  8. 耦合天线测试软件,天线间耦合度自动测试系统设计.PDF
  9. Thinkphp实战(一)——项目配置与模板导入
  10. java通过http代理获取FTP的文件