深度学习07 - Attention机制-理论篇

参考文档:一文看懂 Attention(本质原理+3大优点+5大类型)

1、Attention的本质

1、Attention(注意力)机制如果浅层的理解,跟他的名字非常匹配。他的核心逻辑就是「从关注全部到关注重点」。
在这里插入图片描述

2、Attention在AI领域中的位置
在这里插入图片描述

2、Attention的三大优点

在这里插入图片描述

参数少
模型复杂度跟 CNN、RNN 相比,复杂度更小,参数也更少。所以对算力的要求也就更小。
速度快
Attention 解决了 RNN 不能并行计算的问题。Attention机制每一步计算不依赖于上一步的计算结果,因此可以和CNN一样并行处理。
效果好
在 Attention 机制引入之前,有一个问题大家一直很苦恼:长距离的信息会被弱化,就好像记忆能力弱的人,记不住过去的事情是一样的。
Attention 是挑重点,就算文本比较长,也能从中间抓住重点,不丢失重要的信息。下图红色的预期就是被挑出来的重点。

3、Attention 的原理

1、脱离 Encoder-Decoder 框架后的原理图解。
在这里插入图片描述

2、小故事讲解:

在这里插入图片描述

图书管(source)里有很多书(value),为了方便查找,我们给书做了编号(key)。当我们想要了解漫威(query)的时候,我们就可以看看那些动漫、电影、甚至二战(美国队长)相关的书籍。
为了提高效率,并不是所有的书都会仔细看,针对漫威来说,动漫,电影相关的会看的仔细一些(权重高),但是二战的就只需要简单扫一下即可(权重低)。
当我们全部看完后就对漫威有一个全面的了解了。

3、Attention 原理的3步分解:
在这里插入图片描述

第一步: query 和 key 进行相似度计算,得到权值
第二步:将权值进行归一化,得到直接可用的权重
第三步:将权重和 value 进行加权求和

4、Attention所解决的问题

1、遗忘问题
当我们接受到一系列句子的时候,如果句子比较短,可以一次性全部记住,但是如果记忆里不高接收到了大量的句子就会出现仅记住最后的几个句子,这样我们做机器翻译的时候就不能考虑到较远的地方了
我们在翻译句子的时候,使用seq2seq的时候,我们每个单词的翻译都要读一遍整个句子
2、对齐问题
因为我们分析句子是将整个文章杂糅在一起的,所以分析出结果来之后我们并不知道y1,y2对应着啥
在这里插入图片描述

问题解决思路
我们在进行机器翻译的时候,每个词对翻译结果影响的大小是不同的。
比如,翻译我是中国人整个的时候,是(am)的翻译中 我影响比较大
因此,可以在翻译每个词的时候对其他词进行权重赋值,影响较大的权重赋值的大一点
下面的问题就是这个权重值从哪里来
在这里插入图片描述
我们有了权重之后也可以通过h和权值矩阵相乘来得到结果,这样就对中间值有了偏好
在这里插入图片描述
如何得到权重向量呢?
需要在编码和解码中找一个向量与输入词中每个输入词的向量相比较
在这里插入图片描述
问题:计算score公式如何选择??即如何确定两个向量间的相似性,相似性越高,评分越高
方式1:使用内积的方式进行比较
即将输入向量x与要比较的向量y进行内积,计算结果就是相关性
在这里插入图片描述
但是这样就遇到一个问题,就是有可能要比较的向量与输入向量维度不同,比如比较向量是14,输入是13就没有办法做内积

方法2:借助一个中间权重矩阵进行转换,比如我们输入是13,那我们做一个34的权重矩阵W与其相乘就变成了1*4的就可以与比较向量做内积了

方法3:训练神经网络
将输入向量与比较向量同时输入进一个全连接神经网络然后进行输出,因此相当于借助了一个输入权重矩阵和一个输出权重矩阵两个矩阵
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
输入句子的语义向量是对双向传播所得到结果的加权求和
在这里插入图片描述
计算评分是此时刻的h与上一时刻的输出进行比较
在这里插入图片描述

软注意力机制:软性注意力(Soft Attention)机制是指在选择信息的时候,不是从N个信息中只选择1个,而是计算N个输入信息的加权平均,再输入到神经网络中计算。

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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值