如何理解注意力机制

如何理解注意力机制

b站视频讲解-5min

深度学习其实就是想学习一个模型可以用于实现 o u t p u t = f ( i n p u t ) output=f(input) output=finput

在这里插入图片描述

注意力机制的目的就是对所有的输入向量执行简单的线性加权,所以需要训练模型学习最优的权重值 α,

但是,实际情况中我们不能简单的学习权重,因为输入的向量的长度是可变的,所以需要求解的权重参数 α 的数目也因此是可变的。

此外,对于权重的值,有一个限制,需要进行归一化处理。(也就是α的和应该等于1)。

因此,为了得到权重,注意力机制巧妙地使用了key和query。
类似于python字典的每个value都会有对应的key,自注意机制就是key为value本身的情况。

以普通的注意力机制为例:
在这里插入图片描述
在这里插入图片描述

当我们有query了,而且有一序列的keys值,就可以使用点积 q·k计算权重α的值,后面加一个非线性函数一般使用tanh,加softmax使得结果归一化。
得到权重α之后,output的计算就是权重α与输入值v的加权。

在上述步骤中,忽略了一个很重要的问题,所有的k、q、v都是固定的,无法学习,因此,在注意力机制中对k、q、v引入了可学习的参数矩阵:Wk、Wq、Wv。
在这里插入图片描述

注意力权重&注意力分数

在这里插入图片描述
注意力分数:没有经过归一化的注意力得分
注意力权重:经过归一化后的注意力权重,所有值的和为1

扩展到高维度

在这里插入图片描述

如何设计a

最常用的两个注意力函数是加法注意和点积注意计算:
虽然两者在理论上的复杂性相似,但点积注意力在实践中更快且更节省空间,因为它可以使用高度优化的矩阵乘法代码来实现。

而对于d较小的情况,这两种机制的表现相似,加法注意力优于点积注意力

Additive Attention

在这里插入图片描述
当k,q长度不一样的时候最常用的做法。

Scaled Dot-Product Attention

在这里插入图片描述
上述,第一个公式中除以根号d,是想让a对长度不呢么敏感。

如上计算得到的注意力分数a的每一行都是一个query的注意力得分。
然后对行数据进行softmax计算,得到每一行是一个query的注意力权重。
在这里插入图片描述

  • 2
    点赞
  • 7
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值