transformer之位置编码

由于 Transformer 模型中自注意力模块具有置换不变性,因此仅使用注意力机制无法捕捉序列中的顺序关系,从而退化为“词袋模型”。为了解决这一问题,需要引入位置编码(Position Embedding, PE)对于序列信息进行精确建模,从而将绝对或相对位置信息整合到模型中。

什么是位置编码?

Transformer 位置编码描述了一个实体在序列中的位置,它为每个位置分配一个独特的表示。在 Transformer 模型中,有很多原因导致我们不使用单个数字(例如索引值)来表示项目的位置。

  • 对于长序列,索引值可能会变得非常大。
  • 如果将索引值归一化到 0 到 1 之间,则可能会对不同长度的序列造成问题,因为它们的归一化方式不同。

Transformer 使用一种巧妙的位置编码方案,其中每个位置/索引都被映射到一个向量。因此,位置编码层的输出是一个矩阵,其中矩阵的每一行表示一个编码后的对象,该对象与其位置信息相加。下图展示了一个仅对位置信息进行编码的矩阵示例。

在这里插入图片描述

总而言之,位置编码为序列中的每个位置提供了一个独特的向量表示,从而解决了使用简单索引值所面临的挑战。

下表显示了“I am a robot的位置编码矩阵。事实上,对于n=100和d=4的任何四个字母的短语,位置编码矩阵都是相同的。
在这里插入图片描述
简单的代码实现

import numpy as np
import matplotlib.pyplot as plt
 
def getPositionEncoding(seq_len, d, n=10000):
    P = np.zeros((seq_len, d))
    for k in range(seq_len):
        for i in np.arange(int(d/2)):
            denominator = np.power(n, 2*i/d)
            P[k, 2*i] = np.sin(k/denominator)
            P[k, 2*i+1] = np.cos(k/denominator)
    return P
 
P = getPositionEncoding(seq_len=4, d=4, n=100)
print(P)

输出:

[[ 0.          1.          0.          1.        ]
 [ 0.84147098  0.54030231  0.09983342  0.99500417]
 [ 0.90929743 -0.41614684  0.19866933  0.98006658]
 [ 0.14112001 -0.9899925   0.29552021  0.95533649]]
def plotSinusoid(k, d=512, n=10000):
  

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:/a/729663.html

如若内容造成侵权/违法违规/事实不符,请联系我们进行投诉反馈qq邮箱809451989@qq.com,一经查实,立即删除!

相关文章

大厂晋升学习方法一:海绵学习法

早晨 30 分钟 首先,我们可以把起床的闹钟提前 30 分钟,比如原来 07:30 的闹钟可以改为 07:00。不用担心提前 30 分钟起床会影响休息质量,习惯以后,早起 30 分钟不但不会影响一天的精力,甚至可能反而让人更有精神。早起…

低成本创业新篇章:上门回收小程序的崛起与挑战

在当今这个快速变化的时代,低成本创业项目成为了许多创业者的首选。其中,上门回收小程序以其独特的商业模式和市场需求,成为了创业市场中的一股新势力。本文将深入探讨上门回收小程序作为低成本创业项目的崛起之路以及面临的挑战。 一、上门回…

WPF/C#:在DataGrid中显示选择框

前言 在使用WPF的过程中可能会经常遇到在DataGrid的最前或者最后添加一列选择框的需求,今天跟大家分享一下,在自己的项目中是如何实现的。 整体实现效果如下: 如果对此感兴趣,可以接下来看具体实现部分。 实践 假设数据库中的…

【51单片机】按键的操作

文章目录 前言读取按键的原理proteus仿真示例代码 总结 前言 在现代电子产品中,按键是用户与设备之间交互的重要组成部分。它们允许用户通过简单的按下来触发特定的操作或命令。在微控制器的背景下,按键的设计和操作对于确保设备的响应性和用户体验至关…

CSS新手入门笔记【导入方法、选择器介绍、选择器优先级、属性详细介绍、盒子模型】

目录 一、目的与优势二、CSS导入方式三、语法结构四、选择器类型基本选择器组合选择器伪类与伪元素属性选择器 六、选择器优先级总结 六、CSS属性1. 字体与文本属性2. 背景属性3. 尺寸与盒模型属性4. 布局与定位5. 列表样式6. 边框与轮廓7. 文本装饰与效果8. 动画与过渡9. 伪类…

RocketMQ-记一次生产者发送消息存在超时异常

目录 1、背景说明 2、排查 2.1、防火墙 2.2、超时时间设置 2.3、服务器资源检查 2.3.1、内存、CPU等 2.3.2、磁盘空间 ​编辑 2.3.3、检查文件描述符 2.3.4、swap区 3、增加swap空间 3.1、创建目录 3.2、格式化 3.3、启动swap 3.4、查看效果 1、背景说明 在一次…

Harbor 不同模块作用以及持久化数据大小建议

目录 1. Harbor 组件1.1 Registry (Harbor Registry)1.2 Database (PostgreSQL)1.3 Jobservice1.4 Chartmuseum1.5 Redis1.6 Trivy 2. 示例 values.yaml3. 总结 搭建环境 使用 NFS 作为持久化存储使用 Helm 在 k8s 上进行搭建 在使用 Helm 安装 Harbor 并配置持久化存储时&am…

ai assistant激活成功后,如何使用

ai assistant激活成功后,如图 ai assistant渠道:https://web.52shizhan.cn/activity/ai-assistant 在去年五月份的 Google I/O 2023 上,Google 为 Android Studio 推出了 Studio Bot 功能,使用了谷歌编码基础模型 Codey,Codey 是…

Redis-数据类型-zset

文章目录 1、查看redis是否启动2、通过客户端连接redis3、切换到db4数据库4、将一个或多个member元素及其score值加入到有序集key当中5、升序返回有序集key6、升序返回有序集key,让分数一起和值返回的结果集7、降序返回有序集key,让分数一起和值返回到结…

海外仓系统有哪些模块:WMS海外仓系统完整功能清单

虽然说现在市面上的海外仓系统非常多,各有特色,不过在功能模块的设计上,其实殊途同归,只是各有侧重点而已。 作为海外仓企业,想选择一套适合自己的WMS海外仓系统,首先就要了解系统标准的功能模块都有什么。…

Typora v1.8.6解锁版安装教程 (轻便简洁的Markdown编辑器)

前言 Typora是一款轻便简洁的Markdown编辑器,支持即时渲染技术,这也是与其他Markdown编辑器最显著的区别。即时渲染使得你写Markdown就想是写Word文档一样流畅自如,不像其他编辑器的有编辑栏和显示栏。 一、下载地址 下载链接:…

Redis单例部署

目录 1. 概述2. 参考3. 环境4. 部署4.1 操作系统4.1.1 修改系统参数4.1.2 关闭透明大页内存4.1.3 修改系统限制 4.2 安装Redis4.2.1 下载Redis4.2.2 创建redis账号4.2.3 添加Redis环境变量4.2.4 创建Redis使用目录4.2.5 安装Redis4.2.6 手动修改配置文件(**可跳过&a…

2025天津数控机床展(天津工业展)

2025第21届天津工博会—机床展 时间:2025年3月6-9日 地点:国家会展中心(天津) 达成交易,是我们唯一的追求! Dealing Is Our Top Pursuit. 主办单位 振威会展集团 中国机械工业联合会 中国国际贸易促…

名称申请不了商标,可以受保护不!

前几天个网友说要申请注册个商标名称,发来名称让普推商标知产老杨帮忙检索了下,发现有同名的被驳回,而且是做过驳回复审被驳回,而且是绝对理由驳回的,易使消费者对商品的品质等特点产生误认,不得作为商标使…

如何开发一个项目脚手架cli

目录 背景正文unbuildpromptsprogresskolorist 设置打包命令npm execnpxnpm init/ npm create/ npm innit 使用最后 背景 随着团队项目类型越来越多,方便后续快速去开发项目,会出现各种类型的项目模版项目。 这样开发只需要通过脚手架选择自己需要的项目…

数据采集之二主一从,485总线共享器

产品概述 485总线共享器示意图 功能示意图 DAQ-GP-485HUB是上海数采物联网推出的一款 RS485总线多路复用共享数据处理器,是一款高性能的通讯设备,专门针对两台主机和 一台从机通讯时导致的数据冲突而设计。在实际工业控制和监控场景中,多个主…

Java宝藏实验资源库(3)类

一、实验目的 理解面向对象程序的基本概念。掌握类的继承的实现机制。熟悉类中成员的访问控制方法。熟悉ArrayList类的使用。 二、实验内容、过程及结果 *9.5Programming Exerc ise the GregorianCal endar class) Java API has the GregorianCalendar class in the java. uti…

算法008:四数之合

四数之和. - 备战技术面试?力扣提供海量技术面试资源,帮助你高效提升编程技能,轻松拿下世界 IT 名企 Dream Offer。https://leetcode.cn/problems/4sum/description/ 在前面的两个题中,我们已经完成了两数之和和三数之和,到本题四…

基于51单片机的函数信号发生器

基于51单片机函数信号发生器 (仿真+程序+原理图+设计报告) 功能介绍 具体功能: 1.LCD1602液晶显示波形种类和频率值(10-100HZ); 2.按键设置波形种类和设定频率步进值…

Notepad++插件 Hex-Edit

Nptepad有个Hex文件查看器,苦于每次打开文件需要手动开插件显示Hex,配置一下插件便可实现打开即调用 关联多个二进制文件,一打开就使用插件的方法,原来是使用空格分割!!!