探索两种位置编码的原理与实现:基于学习的与正弦编码的比较

        在深度学习中,位置编码(Position Encoding, PE)是一种通过显式添加空间位置信息来增强模型理解能力的重要技术。本文将通过一个测试用例,结合公式与代码解析 基于学习的绝对位置编码正弦位置编码 的工作原理。我们将从理论推导到实验测试,逐步揭示两种位置编码方式的核心逻辑及应用场景。

1. 基于学习的绝对位置编码

原理

基于学习的绝对位置编码通过定义两个可学习的嵌入层(Embedding),分别对图像的行和列位置进行编码。这种方式的灵活性在于位置嵌入能够随着数据分布的优化而调整。

核心公式: 对于图像中高度 h 和宽度 w,令行位置编码为 yi,列位置编码为 xj,则最终的二维位置编码为:

PE_{(i,j)}=[x_j,y_i] \epsilon \mathbb{R}^{2\times d}

其中 d 是嵌入维度。

在实现中,列编码 xj 和行编码 yi​ 分别由嵌入层计算:

xj​=Embedding(j),  yi​=Embedding(i).

最终通过扩展和拼接生成一个形状为 (B,2d,h,w)的四维位置编码张量,其中 B 是批量大小。

2. 正弦位置编码

原理

正弦位置编码通过预定义的正弦和余弦函数为每个位置生成编码,确保不同位置的嵌入具有周期性和可区分性。这种方式无须训练参数,直接利用公式生成编码。

核心公式: 对于每个像素位置 (i,j),其编码为:

PE_{(i,j,2k)}=sin(\frac{i}{10000^{2k/d}})

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值