Python----循环神经网络(Transformer ----注意力机制)

一、注意力机制引入

场景引入:

在购物时,通常会根据自身的尺寸,比如腰 围和胸围,来对照商家提供的尺码对照表。在下面的例子中,最左侧的腰围代表我们 的个人尺寸(query),而右侧的两列则是商家提供的对照表(key、value)。

举例而言,假设我们的腰围是59,当查看商家提供的尺码对照表时,可能发现并非 所有尺寸都完全匹配我们的尺寸。

然而,当通过仔细观察后,可以发现对照表中有腰围为58或者腰围为59,它们与我 们的实际尺寸更为接近。尽管没有完全匹配的尺码,但通过对照表中最接近我们腰围 和胸围的尺码,我们可以确定我们对应的大致的国际尺码为37或者38。这个过程就 好比使用了对照表中的关键信息,帮助我们准确锁定最合适的尺码,确保购物时选择 的衣物更符合个人需求。

当然或者尺码有半码的存在,那么就可以更加准确的确认需要衣物的尺码了。

1.1、方案一------线性回归

我们首先可以使用一条直线来拟合商家提供的对照表中的腰围和国际尺码的数据,其 中腰围作为 x 轴,国际尺码作为 y 轴。通过这个拟合直线,我们可以在整个腰围范围 内估计相应的国际尺码。举例来说,当我们持有自身的腰围尺寸 时,通过直 线拟合上的点,我们可以找到对应的国际尺码。

1.2、方案二------注意力权重

当我们在对照表上进行观察时,我们知道自己的腰围是59,那么 首先'注意'到的是腰围的查询表,并且会注意离59较近的所在的范围,这里是58到60 之间。然后,由于发现查询值到 和 之间的距离是相等的,我们在这两个关键点 上均匀分配'注意力'。

1.3、方案三------Softmax()注意力权重

二、注意力机制

场景引入:

在我们购物时,通常会根据自身的尺寸,比如腰围和胸围,来对照商家提供的尺码对 照表。

在下面的例子中,最左侧的表格代表我们的个人的一些尺寸信息(query),而右侧 的两个表格则是商家提供的对照表(key、value)。假设我们的腰围是59,胸围是 84。当我们查看商家提供的尺码对照表时,会发现并非商家提供的所有尺寸都完全 匹配我们的尺寸。 然而,通过仔细观察,我们可以发现对照表中有腰围为58和胸围为81的尺码,它们 与我们的实际尺寸更为接近。尽管没有完全匹配的尺码,但通过对照表中最接近我们 腰围和胸围的尺码,我们可以确定我们大概对应的国际尺码为37左右。

在计算注意力分数时,我们通过距离来衡量两个向量之间的相似性。具体而 言,距离越近的地方,注意力分数越大,相应的注意力权重也越大;反之,距离越 远,注意力分数越小,注意力权重也越小。尽管这种方法在低维情况下是可行的,但 在高维情况下计算会变得复杂。如果我们仔细考虑,计算距离实际上就是在度量两个 向量之间的相似度,距离越近,相似度越高;反之,相似度越低。

2.1、加性注意力

加性注意力通过引入一个非线性的中间层来计算查询和键的相似度,这使得它能够捕捉更复杂的对齐关系。它的主要优势在于对查询和键的维度没有严格要求,即使维度不同也能很好地工作。然而,相较于点积注意力,它通常涉及更多的参数和计算量。在 Transformer 模型中,由于其结构特性(多头注意力机制),通常更倾向于使用缩放点积注意力,因为它更高效且在实践中表现良好。

2.2、点积注意力

点积注意力因其简洁性和高效性而广受欢迎。它避免了加性注意力中额外的神经网络层,使得计算速度更快,参数更少。然而,它的一个主要限制是要求查询和键向量具有相同的维度。在 Transformer 模型中,点积注意力经过缩放,以解决高维度下点积值过大导致梯度消失的问题,形成了更强大的缩放点积注意力。

2.3、缩放点积注意力

缩放点积注意力通过高效的点积计算结合巧妙的缩放技巧,使得 Transformer 能够稳定且精确地从海量信息中抽取出最相关的部分,从而实现了强大的序列处理能力。

相关推荐
杭州泽沃电子科技有限公司4 小时前
在线监测:为医药精细化工奠定安全、合规与质量基石
运维·人工智能·物联网·安全·智能监测
GIS数据转换器4 小时前
GIS+大模型助力安全风险精细化管理
大数据·网络·人工智能·安全·无人机
OJAC1115 小时前
AI跨界潮:金融精英与应届生正涌入人工智能领域
人工智能·金融
机器之心5 小时前
Adam的稳+Muon的快?华为诺亚开源ROOT破解大模型训练「既要又要」的两难困境
人工智能·openai
可观测性用观测云5 小时前
观测云 MCP Server 接入和使用最佳实践
人工智能
掘金一周5 小时前
大部分人都错了!这才是chrome插件多脚本通信的正确姿势 | 掘金一周 11.27
前端·人工智能·后端
xier_ran6 小时前
深度学习:生成对抗网络(GAN)详解
人工智能·深度学习·机器学习·gan
ModestCoder_6 小时前
ROS Bag与导航数据集技术指南
开发语言·人工智能·自然语言处理·机器人·具身智能
海边夕阳20066 小时前
【每天一个AI小知识】:什么是循环神经网络?
人工智能·经验分享·rnn·深度学习·神经网络·机器学习
2501_918126916 小时前
如何用ai做开发
人工智能