李宏毅老师机器学习 第四节 Self-attention

目录

一、Self-attention能解决什么问题 

 二、Self-attention怎么考虑一整个input sequence的资讯

 三、多头注意力机制

 四、问题&总结


一、Self-attention能解决什么问题 

直接回答:模型的输入有很多个向量,Self-attention机制可以关注到整个input sequence的信息,即,输出的每个label都是考虑了整个input sequence得到的

模型的输入是一组向量,向量的长度会改变,比如

(1)句子是一组向量,每个单词是一个向量

(2)一段声音是一组向量,把一小段声音讯号看做一个向量

(3)图也是一组向量,图的每一个点看做一个向量

模型的输出有3种可能性:
(1)每个向量都有一个label,如词性标注(一段话每个词的词性)(只讲这种)

(2)整个向量组只有一个label,如情感分析(一段评价是正面的还是负面的)

(3)机器自己决定输出多少个label,如翻译

 二、Self-attention怎么考虑一整个input sequence的资讯

Self-attention会自动确定两个向量之间的相关性α

方法一:向量点积

方法二:向量相加---经过一个激活函数---经过一个transform---得到α

 计算每个向量和所有向量之间的相关性α_(1,i),然后经过softmax的处理,得到α'(相当于权重,和a1相关性高的向量的权重就会大一些),这样我们就知道了哪些向量和a1是最有关系的。接下来根据α'抽取出sequence里面的重要资讯。

 a1-a4分别乘以W^{v},得到v1-v4,每一个v乘以α' 再求和 得到b1。

这样,如果a1和a2相关性比较大,则b1的值会更接近a2

以下是self-attention的矩阵计算过程

 三、多头注意力机制

 四、问题&总结

1.Self-attention和全连接的区别是什么?

输入层有A B C 3个特征向量,现在要构造一个网络求3者的权重,然后加权求和得到输出O,即O=w_a*A + w_b*B + w_c*C,如果采用全连接层,w_a,w_b,w_c是根据位置确定的,

我第一次给你三个数据ABC,然后你得出了B最重要,也就是让 w_B 最大。然而我下次给你的顺序可能是BAC,这次A在刚才B的位置,如果你用全连接层来实现的话,得出的结果就会变成 O=w_A*B + w_B*A + w_C*C 。这就变成了A最重要了,这显然不是我们想要的结果。

而采用注意力机制的话,权重与位置无关,而是和输入的向量本身有关
参考链接:https://www.zhihu.com/question/320174043/answer/651998472
 

评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值