跟李沐学AI:注意力机制、注意力分数

目录

不随意线索

随意线索

注意力机制

非参注意力池化层

参数化的注意力机制

注意力机制总结

注意力分数

拓展到高维度

加性模型(Additive Attention)

点积注意力机制(Dot Product Attention)

注意力分数总结


不随意线索

不随意线索指的是那些由外部环境直接提供的信息,这些信息往往不需要经过复杂的认知处理就能吸引人的注意力。在计算机视觉中,这可能包括图像中的亮度变化、颜色对比度、运动等直观的视觉特征。

随意线索

随意线索指的是由内部目标驱动的注意力调整。在计算机视觉任务中,这意味着模型会根据任务的要求或先前的知识来选择关注某些区域。例如,在图像分类任务中,模型可能会根据已知的类别特征来寻找最有可能包含该类别的区域。这种类型的注意力更类似于有目的性的搜索行为,即模型根据自身的任务目标来选择性地聚焦于某些输入信息。

注意力机制

卷积、全连接、池化层都只考虑不随意线索。注意力机制则显示地考虑随意线索。

随意线索被称之为查询(query),每个输入是一个值(value)和不随意线索(key)。通过注意力池化层来偏向性地选择某些输入。

非参注意力池化层

非参数注意力池化层(Non-parametric Attention Pooling Layer)是神经网络中使用的一种注意力机制类型,其特点是不依赖于任何可训练的参数。这种类型的注意力机制通常用于从输入数据中提取关键信息,同时减少参数的数量,使得模型更加轻便且易于训练。

给定数据(x_i, y_i),i=1,\dots,n。最简单的实现是平均池化:f(x)=1/n\sum {y_1}。更好地方案是Nadaraya-Watson提出的核回归:

 其中K()是核函数。若使用高斯核:

那么相当于进行一次Softmax计算:计算x和候选xi的距离,在此基础上进行Softmax,将输出值作为权重与yi相乘。

参数化的注意力机制

在非参注意力机制的基础上引入一个可以学习的w:

注意力机制总结

心理学认为人通过随意线索和不随意线索选择注意点。

注意力机制中通过query(随意线索)和key(不随意线索)来偏向性地选择输入。一般可写作:

f(x)=\sum a(x, x_i)y_i。其中a(x, x_i)是注意力权重。

注意力分数

注意力分数是注意力机制中的一个关键概念,本质上是通过一系列函数计算得来的结果。它是用来量化输入序列中各个元素重要性的数值。

在刚刚的参数化注意力机制中,-\frac{1}{2}(x-x_i)^2的结果便是注意力分数。 

注意力机制具体流程如下:

  • 计算注意力分数:score = f(query, key)
  • 计算注意力权重:attention_weights = softmax(scores)
  • 进行加权求和,从而生成一个加权后的上下文向量:
  • context_vector = sum(attention_weights * value) for each value in values

拓展到高维度

加性模型(Additive Attention)

加性模型使用了一个额外的前馈神经网络来计算注意力分数。

在加性模型中,注意力得分通过以下步骤计算:

线性变换:首先,查询向量 qq 和每个键向量 kiki​ 分别经过不同的线性变换(即乘以权重矩阵)。这可以表示为:q'=W_qqk'=W_kk

非线性激活:接下来,将变换后的查询向量和键向量相加,并通过一个非线性激活函数,通常是双曲正切(tanh),来处理这个结果:a_i=tanh(q'+k'_{i})

评分:最后,将上一步的结果 ai乘以另一个参数化的向量v,得到最终的注意力得分。这可以通过以下公式表示:score_i=v^{T}a_i

这里的Wq和Wk是学习到的权重矩阵,vv 是一个可训练的参数向量。整个过程可以用一个简单的数学表达式概括如下:

等价于将query和key合并起来后放入一个隐藏层大小为h,输出大小为1的但隐藏层MLP。因此k,q可以形状不同。

点积注意力机制(Dot Product Attention)

如果q和k长度相同,那么a(q, k_i)=<q, k_i>\sqrt{d}

向量化版本:

注意力分数总结

注意力分数是query和key的相似度,注意力权重是注意力分数softmax后的结果

注意力分数分为加性模型和点积模型 

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值