深度学习(六)~注意力机制

注意力机制

1. 为什么要引入注意力机制?

  • ①计算能力的限制

要记住更多信息,模型就更复杂,计算能力有限

  • ②优化算法的限制

虽然局部连接、权值共享、池化以及门控等优化操作可以使神经网络变简单一些,但比如RNN中的长程依赖问题,信息“记忆”能力不高

  • ③如何解决信息过载问题

①通过注意力 ,自上而下的信息选择
②引入外部记忆 ,优化神经网络记忆结构提高信息存储容量

2. 注意力分类

注意力分为聚焦式注意力 (有意识的信息选择)和显著性注意力 (无意识的信息刺激)
鸡尾酒会效应: 当一个人在吵闹的鸡尾酒会上和朋友聊天,尽管周围噪音很多,还是可以听到朋友讲话(聚焦式注意力),如果背景中有重要的词比如他的名字,他会马上注意到(显著性注意力).

3. 注意力机制计算步骤

①【在所有输入信息上计算注意力分布】
②【根据注意力分布计算输入信息的加权平均】

查询向量q: 从输入向量中选择和某个特定任务相关的表示
打分函数s: 计算每个输入向量和查询向量之间的相关性
注意力分布αn
在这里插入图片描述

4. Encoder-Decoder框架

(1). RNN-Encoder阶段

在这里插入图片描述

(2). RNN-Decoder阶段

在这里插入图片描述
在这里插入图片描述

(3). Attention-Decoder阶段

加入注意力机制后的Decoder与上述不同的是,c变为ct,即注意力分布c不是一直不变的,每个时刻对应一种注意力分布ct
在这里插入图片描述

5. 注意力机制实现形式

(1). 软性注意力

在这里插入图片描述

(2). 硬性注意力

①选取最高概率的一个输入向量
在这里插入图片描述
②在注意力分布式上随机采样
缺点是采用最大采样或随机采样来选择信息,使得最终损失函数与注意力分布之间不可导,无法使用反向传播进行训练,通常需要使用强化学习来训练,因此一般用软性注意力代替.

(3). 键值对注意力

用(K,V)表示N组输入信息,即将求注意力分布的两条路径拆分开来(K,V),K计算概率分布,V计算输入信息的选择,注意力函数为:
在这里插入图片描述
多头注意力
利用多个查询Q=[q1,…,qM]并行的选择多组信息,每个注意力关注输入信息的不同部分
在这里插入图片描述
⊕表示向量拼接

6. Self-Attention

将求K、V的过程简化,直接将输入信息X线性映射到Q、K、V,自动学习映射相关参数
在这里插入图片描述
hn为对应于查询向量qn的输出向量,anj表示第n个输出关注到第j个输入的权重

7. Self-Attention如何应用

  • 自注意力模型可以作为神经网络中的一层,可以替换卷积或循环层,还可以和它们一起交替使用
  • 自注意力模型计算的权重αij只依赖于qi和kj的相关性,而忽略了输入信息的位置信息,因此一般使用时,需要加入位置编码信息进行修正
  • 0
    点赞
  • 3
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值