transformer引入位置信息--Sinusoidal位置编码《个人学习笔记》
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位置编码《个人学习笔记》相关推荐
- 华为服务器怎么删除位置信息,修改位置信息
修改位置信息 内容精选 换一换 为了提高文件的规整程度并让用户可以更好地控制他们的文件,Android 10 为应用引入了名为 "[分区存储](https://developer.andro ...
- linux 串口信息记到日志,[linux学习笔记]之一:ubuntu ch340调试备忘
[linux学习笔记]之一:ubuntu ch340调试备忘 已有 2183 次阅读2016-11-8 21:52 |个人分类:linux 最近迷上了Linux,入了一块板.电脑使用win7+ubun ...
- 【李宏毅机器学习】TransFormer框架基础储备知识(p51) 学习笔记 | 全程手码,放心食用
全文总结于哔哩大学的视频:李宏毅2020机器学习深度学习(完整版)国语 2020版课后作业范例和作业说明在github上:点击此处 李宏毅上传了2020版本的机器学习视频和吴恩达的CS229机器学习相 ...
- c语言对中文字符串编码_Python || 学习笔记(1):数据类型字符串变量和编码
数据类型 特性: 对于0很多的整数,python允许用_对0进行分离10_000_000_000就等同于10000000000 16进制用0x开头进行表示 对于很大或很小的浮点数必须使用科学计数法表示 ...
- 《信息论与编码》学习笔记
信息论与信息编码 文章目录 信息论与信息编码 1. 准备知识和教材 1.1. 学科关联 1.2. 准备知识 1.3. 教材 1.4. 理论体系的简要概述 1.5. 编码技术的举例 1.5.1. 压缩编 ...
- 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 ...
- 字符编码 UTF-8 学习笔记
UTF-8 UTF-8 是 Unicode标准中的一种 , 还有 UTF-16 , UTF-32 UTF-8 的长度可变, 例如字母站一字节,汉字占三字节 UTF-8 分为带BOM开头的 , 和不带B ...
- 图像中目标的绝对位置信息(2)--Global Pooling, More than Meets the Eye: Position Information is Encoded Channel-
关于偶数卷积核和padding的副作用可以参考这个博客. 首先,本文是翻译了 ICCV 2021的一篇文章:Global Pooling, More than Meets the Eye: Posit ...
- 物联网-位置信息、定位技术与位置服务
位置信息与位置服务 位置信息-从互联网到物联网 位置信息在物联网中的作用 位置信息是各种物联网应用系统能够实现服务功能的基础 位置信息涵盖了空间.时间与对象三要素 通过定位技术获取位置信息是物联网应用 ...
最新文章
- c# 第28节 面向对象概述
- 科大讯飞语音合成api
- 图像清晰度的评价及分析
- python所有变量更新_PYTHON:使用python变量更新MULTIPLE COLUMNS
- 山东理工大计算机专业学什么科目,2020年山东理工大学计算机科学与技术学院880数据结构硕士研究生入学考试科目大纲...
- 松下a6伺服驱动连接光栅尺_FANUC常见伺服报警及故障解决方法
- 浅论ViewState及其与Session的关系
- IMP出现的ORA-01401错误可能和字符集有关(转载)
- mysql 5.6.31 winx64_详解介绍MySQL5.6.31winx64.zip安装配置的图文教程
- IO口复用时钟的配置
- 创建基于存储过程的数据块
- NUC1013 阶乘结果末尾有多少零【分析思维】
- C语言项目2:图书管理系统
- 非支架生成的情况下,验证错误信息输出方法,%= f.error_messages %错误
- multisim 1.4破解汉化
- 2021年法国经济发展研究报告
- 如何通俗易懂理解云原生
- 记录一个Kivy在windows上打包的问题
- IDL读写FITS文件
- java中modifier_Java Modifier工具类
热门文章
- (java毕业设计源码)基于java(springboot)简历系统源码成品
- React 开发环境的搭建 (React脚手架)
- 【信息技术】【2008.06】基于上下文感知和注意力的视觉对象跟踪
- 学习时的痛苦是暂时的 未学到的痛苦是终生的
- HDU 5366-The mook jong(组合数学)
- The mook jong(HDU 5366)
- Axure教程:如何使用Axure中继器元件?
- Axure中继器的使用-更新数据(四)
- 【聯強EMBA】豆芽現象
- HAL库U盘升级 STM32F407 CUBEMX:FATFS + USB_HOST + USB_OTG_FS