Attention注意力机制

加粗样式通俗理解:你会注意什么?

对于一个模型而言(CNN,LSTM),模型本身很难决定什么重要什么不重要,因此注意力机制诞生了。

注意力机制:我们会把焦点聚焦在比较重要的事务上

怎么做注意力

对象:我(查询对象Q),这张图(被查询对象V)
面对一张图,人会判断哪些东西重要哪些东西不重要(计算Q和V中事物的重要度=相似度计算=Q和V中哪些东西更接近)

如何计算Q和K的相似度?→用点乘的方式,点乘其实就是内积cos

Q是查询对象, K = K 1 , K 2 , ⋯   , K n K=K_1,K_2,\cdots,K_n K=K1,K2,,Kn是要查询的事物key

通过点乘的方法计算Q和K里的每一个事物的相似度,就可以拿到Q和 k 1 k_1 k1的相似值 s 1 s_1 s1,Q和 k 2 k_2 k2的相似值 s 2 s_2 s2,Q和 k n k_n kn的相似值 s n s_n sn

做一层 s o f t m a x ( s 1 , s 2 , ⋯   , s n ) softmax(s_1,s_2,\cdots,s_n) softmax(s1,s2,,sn)就可以得到概率 ( a 1 , a 2 , ⋯   , a n ) (a_1,a_2,\cdots,a_n) (a1,a2,,an)

因此就可以找到哪个对Q而言更重要


在上图中,Query表示查询对象,Key表示被查询对象,F(Q,K)表示Q和K进行内积,得到相似度值s,然后做softmax归一化,得到四个概率 a 1 a_1 a1, a 2 a_2 a2, a 3 a_3 a3, a 4 a_4 a4
还要进行汇总,当使用Q查询结束后,Q已经失去了它的使用价值(在阶段3失去了使用价值),最终还是要拿到该图片的,只不过这张图片多了一些信息(多了一些对于我而言什么信息更重要,什么信息不重要),如下发的热力图,在红色部分是重要的信息。

怎么注意这些重要的部分?

( a 1 , a 2 , ⋯   , a n ) ∗ ( v 1 , v 2 , ⋯   , v n ) = ( a 1 ∗ v 1 , a 2 ∗ v 2 , ⋯   , a n ∗ v n ) = ( a 1 ∗ v 1 + a 2 ∗ v 2 + ⋯ + a n ∗ v n ) (a_1,a_2,\cdots,a_n)*(v_1,v_2,\cdots,v_n)=(a_1*v_1,a_2*v_2,\cdots,a_n*v_n)=(a_1*v_1+a_2*v_2+\cdots+a_n*v_n) (a1,a2,,an)(v1,v2,,vn)=(a1v1,a2v2,,anvn)=(a1v1+a2v2++anvn)=V’得到一个新的V’,新的V中包含了哪些更重要,哪些不重要的信息在里面。
以前的V= ( v 1 , v 2 , ⋯   , v n ) (v_1,v_2,\cdots,v_n) (v1,v2,,vn)
新的V’= ( a 1 ∗ v 1 , a 2 ∗ v 2 , ⋯   , a n ∗ v n ) (a_1*v_1,a_2*v_2,\cdots,a_n*v_n) (a1v1,a2v2,,anvn)

然后用V’代替V

一般K=V,在transformer里。K!=V也是可以的,但是K和V一定存在某种联系,这样Q和K点乘才能指导V哪些重要,哪些不重要。
在这里插入图片描述
在这里插入图片描述
为什么在Attention公式中有一个除 d k \sqrt{d_k} dk
因为经过softmax得到的概率,如果输入之间的差额越大,得到的概率越离谱
如输入是51,49,得到的概率可能是0.51,0.49
如果输入是80,20,得到的概率可能是0.99999999,0.00000001
现在多一个除 d k \sqrt{d_k} dk ,就可以把差额缩小

笔记来源于视频https://www.bilibili.com/video/BV1QW4y167iq/?spm_id_from=333.337.search-card.all.click&vd_source=4f67898e2b4507b9469b30d33789bb78

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值