transformer引入位置信息--Sinusoidal位置编码

  • 为什么transformer需要位置编码
  • Sinusoidal绝对位置编码
首先,所有技术都是个人理解,并感谢技术各位分享,由此根据理解自己做个小结,希望可以帮助到需要的朋友,所有博文出现不对的地方希望能指出。

 在介绍本文之前先先入为主给出俩个概念,方便后续理解:
一 语言中token位置特性:token位置是属于语言中word的属性,可以理解为token位置也定义了语言中token的意义;

二 对称性:指的是token在不同的位置但利用transformer输出的结果是相同的,例如:我喜欢她,对于 ‘我’ 和 ‘她’ 这俩个字来说,在transformer虽然位置不同但是输出值是一样的,都表示人这一语义,但其实这俩个字所表示的行为意义是不同的。

为什么transformer需要位置编码

  在transformer结构中的attention机制中是不含有位置信息,通过attention机制对重要的输入进行增加权值,用一个不太恰当的例子,比如在聚类中,(transformer结构对应)所要聚类的元素是不是属于该聚类中心,而对于元素与中心的距离这一重要信息是未知的,但是在语言信息中,语言的每一个token的相对物理距离顺序是非常重要信息,比如在lstm中,因为拥有神经元之间可以传递信息的遗忘门、输入门结构,使得该模型获得长时依赖特性,为了能让transformer也可以拥有语言中token位置特性,去掉其对称性,所以对于transformer需要引入一个能够表示token位置信息的输入,使transformer拥有时间依赖特性。

Sinusoidal绝对位置编码

通过以上的铺垫,终于可以上本文的正菜了

 首先给出一个正余弦公式:

以上正余弦公式是用于给token在语言中的位置信息编码公式,例如语言中有L个token即语句的长度,pos表示token所在语言中的位置,pos=0,…,L-1,i 表示向量的维度,假设token共有d_model维度,即每一个token的向量长度是d_model,i具体表示为i2 或者i2+1 等于所表示的维度(注意,每一个token的位置信息是一个d_model长度的向量)。

 根据三角函数公式:

我们根据上式对 pos + k展开,所以可以给出:
 由此 可以计算出输入的绝对位置,即绝对位置编码公式,并因此可以得到了输入位置的position embedding。再则相对位置可以更好的表示token在语句中的关系,因此想利用相对位置来表示位置编码信息,但基于pos 和k点积表示的相对位置信息,但是无法反映位置的方向性,所以需要更好的方法表示相对位置。

本文参考博文 链接有https://zhuanlan.zhihu.com/p/92017824
和博文 https://blog.csdn.net/c9Yv2cf9I06K2A9E/article/details/115059314

transformer引入位置信息--Sinusoidal位置编码《个人学习笔记》相关推荐

  1. 华为服务器怎么删除位置信息,修改位置信息

    修改位置信息 内容精选 换一换 为了提高文件的规整程度并让用户可以更好地控制他们的文件,Android 10 为应用引入了名为 "[分区存储](https://developer.andro ...

  2. linux 串口信息记到日志,[linux学习笔记]之一:ubuntu ch340调试备忘

    [linux学习笔记]之一:ubuntu ch340调试备忘 已有 2183 次阅读2016-11-8 21:52 |个人分类:linux 最近迷上了Linux,入了一块板.电脑使用win7+ubun ...

  3. 【李宏毅机器学习】TransFormer框架基础储备知识(p51) 学习笔记 | 全程手码,放心食用

    全文总结于哔哩大学的视频:李宏毅2020机器学习深度学习(完整版)国语 2020版课后作业范例和作业说明在github上:点击此处 李宏毅上传了2020版本的机器学习视频和吴恩达的CS229机器学习相 ...

  4. c语言对中文字符串编码_Python || 学习笔记(1):数据类型字符串变量和编码

    数据类型 特性: 对于0很多的整数,python允许用_对0进行分离10_000_000_000就等同于10000000000 16进制用0x开头进行表示 对于很大或很小的浮点数必须使用科学计数法表示 ...

  5. 《信息论与编码》学习笔记

    信息论与信息编码 文章目录 信息论与信息编码 1. 准备知识和教材 1.1. 学科关联 1.2. 准备知识 1.3. 教材 1.4. 理论体系的简要概述 1.5. 编码技术的举例 1.5.1. 压缩编 ...

  6. NVIDIA VIDEO ENCODER(NVENC)7.0.1 SDK 编码流程 学习笔记

    Video_Codec_SDK_7.0.1 1.使用C:\Windows\SysWOW64\nvEncodeAPI.dll   2.nvStatus = m_pNvHWEncoder->Pars ...

  7. 字符编码 UTF-8 学习笔记

    UTF-8 UTF-8 是 Unicode标准中的一种 , 还有 UTF-16 , UTF-32 UTF-8 的长度可变, 例如字母站一字节,汉字占三字节 UTF-8 分为带BOM开头的 , 和不带B ...

  8. 图像中目标的绝对位置信息(2)--Global Pooling, More than Meets the Eye: Position Information is Encoded Channel-

    关于偶数卷积核和padding的副作用可以参考这个博客. 首先,本文是翻译了 ICCV 2021的一篇文章:Global Pooling, More than Meets the Eye: Posit ...

  9. 物联网-位置信息、定位技术与位置服务

    位置信息与位置服务 位置信息-从互联网到物联网 位置信息在物联网中的作用 位置信息是各种物联网应用系统能够实现服务功能的基础 位置信息涵盖了空间.时间与对象三要素 通过定位技术获取位置信息是物联网应用 ...

最新文章

  1. c# 第28节 面向对象概述
  2. 科大讯飞语音合成api
  3. 图像清晰度的评价及分析
  4. python所有变量更新_PYTHON:使用python变量更新MULTIPLE COLUMNS
  5. 山东理工大计算机专业学什么科目,2020年山东理工大学计算机科学与技术学院880数据结构硕士研究生入学考试科目大纲...
  6. 松下a6伺服驱动连接光栅尺_FANUC常见伺服报警及故障解决方法
  7. 浅论ViewState及其与Session的关系
  8. IMP出现的ORA-01401错误可能和字符集有关(转载)
  9. mysql 5.6.31 winx64_详解介绍MySQL5.6.31winx64.zip安装配置的图文教程
  10. IO口复用时钟的配置
  11. 创建基于存储过程的数据块
  12. NUC1013 阶乘结果末尾有多少零【分析思维】
  13. C语言项目2:图书管理系统
  14. 非支架生成的情况下,验证错误信息输出方法,%= f.error_messages %错误
  15. multisim 1.4破解汉化
  16. 2021年法国经济发展研究报告
  17. 如何通俗易懂理解云原生
  18. 记录一个Kivy在windows上打包的问题
  19. IDL读写FITS文件
  20. java中modifier_Java Modifier工具类

热门文章

  1. (java毕业设计源码)基于java(springboot)简历系统源码成品
  2. React 开发环境的搭建 (React脚手架)
  3. 【信息技术】【2008.06】基于上下文感知和注意力的视觉对象跟踪
  4. 学习时的痛苦是暂时的 未学到的痛苦是终生的
  5. HDU 5366-The mook jong(组合数学)
  6. The mook jong(HDU 5366)
  7. Axure教程:如何使用Axure中继器元件?
  8. Axure中继器的使用-更新数据(四)
  9. 【聯強EMBA】豆芽現象
  10. HAL库U盘升级 STM32F407 CUBEMX:FATFS + USB_HOST + USB_OTG_FS