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 小时前
Q CLI 助力合合信息实现 Aurora 的升级运营
人工智能
全栈胖叔叔-瓜州4 小时前
关于llamasharp 大模型多轮对话,模型对话无法终止,或者输出角色标识User:,或者System等角色标识问题。
前端·人工智能
坚果派·白晓明5 小时前
AI驱动的命令行工具集x-cmd鸿蒙化适配后通过DevBox安装使用
人工智能·华为·harmonyos
GISer_Jing5 小时前
前端营销技术实战:数据+AI实战指南
前端·javascript·人工智能
Dekesas96955 小时前
【深度学习】基于Faster R-CNN的黄瓜幼苗智能识别与定位系统,农业AI新突破
人工智能·深度学习·r语言
大佐不会说日语~6 小时前
Spring AI Alibaba 的 ChatClient 工具注册与 Function Calling 实践
人工智能·spring boot·python·spring·封装·spring ai
CeshirenTester6 小时前
Playwright元素定位详解:8种定位策略实战指南
人工智能·功能测试·程序人生·单元测试·自动化
世岩清上6 小时前
AI驱动的智能运维:从自动化到自主化的技术演进与架构革新
运维·人工智能·自动化
K2_BPM7 小时前
告别“单点智能”:AI Agent如何重构企业生产力与流程?
人工智能
TMT星球7 小时前
深业云从人工智能产业投资基金设立,聚焦AI和具身智能相关产业
人工智能