Attention(注意力机制)的简单理解

Attention(注意力机制)

直白的理解:注意力机制,对于数据,我们有重要的数据不重要的数据。在模型处理数据的过程中,我们如果只关注较为重要的数据部分,忽略不重要的部分,那训练的速度、模型的精度就会变得更好。
在这里插入图片描述

由图可知:我们作为人类,常常会聚焦于较为重要的内容上。

由此,Attention的主要目的,就是要模仿人类一样,学会聚焦重要的内容部分,查找到目标,并计算被查找目标的相似度。

计算过程

我们设立三个参数,Q,V,K。整个注意力机制的过程如下:

​ 1.Q是最适合查找目标的

​ 2.K是最适合接收查找的

​ 3.V就是内容

​ 4.Q(查找的目标), K = k 1 , k 2 . . . . . , k n K=k_1,k_2.....,k_n K=k1,k2.....,kn ,一般使用点乘Q,K,拿到Q和每一个K的相似值 Q ∗ k n = s n Q*k_n=s_n Qkn=sn

​ 5.做一层 s o f t m a x ( s 1 , s 2 , ⋯   , s n ) = a n softmax(s_1,s_2,\cdots,s_n)=a_n softmax(s1,s2,,sn)=an 得到每一个查询对象的概率。

​ 6.计算 a n ∗ V = V ′ a_n*V=V' anV=V 事物的重要度,相似度计算,找到Q最相 似的对象。
在这里插入图片描述

总结出的公式为: A t t e n t i o n ( Q , K , V ) = s o f t m a x ( Q ∗ K i d k ) ∗ V i Attention(Q,K,V)=softmax(\frac{Q*K_i}{\sqrt d_k})*V_i Attention(Q,K,V)=softmax(d kQKi)Vi
在这里插入图片描述

扫描二维码关注公众号,回复: 16430585 查看本文章

PS:为什么softmax中需要除以一个 d k \sqrt d_k d k

softmax()作为归一化的处理,当得到的概率差距较大时如(0.05,0.95),最后所点乘出的V的差距就会过大。

一般在注意力机制中,我们常常使用 512 8 \frac{512}{8} 8512 作为处理。

猜你喜欢

转载自blog.csdn.net/m0_51581537/article/details/129317107