首页IT科技transform from A into B造句简单(详解Transformer中Self-Attention以及Multi-Head Attention)

transform from A into B造句简单(详解Transformer中Self-Attention以及Multi-Head Attention)

时间2025-06-05 14:36:37分类IT科技浏览5017
导读:原文名称:Attention Is All You Need 原文链接:https://arxiv.org/abs/1706.03762...

原文名称:Attention Is All You Need

原文链接:https://arxiv.org/abs/1706.03762

如果不想看文章的可以看下我在b站上录的视频:https://b23.tv/gucpvt

最近Transformer在CV领域很火            ,Transformer是2017年Google在Computation and Language上发表的                   ,当时主要是针对自然语言处理领域提出的(之前的RNN模型记忆长度有限且无法并行化        ,只有计算完

t

i

t_i

ti时刻后的数据才能计算

t

i

+

1

t_{i+1}

ti+1
时刻的数据         ,但Transformer都可以做到)            。在这篇文章中作者提出了Self-Attention的概念                  ,然后在此基础上提出Multi-Head Attention           ,所以本文对Self-Attention以及Multi-Head Attention的理论进行详细的讲解                   。在阅读本文之前      ,建议大家先去看下李弘毅老师讲的Transformer的内容        。本文的内容是基于李宏毅老师讲的内容加上自己阅读一些源码进行的总结         。

前言

如果之前你有在网上找过self-attention或者transformer的相关资料                  ,基本上都是贴的原论文中的几张图以及公式              ,如下图   ,讲的都挺抽象的                  ,反正就是看不懂(可能我太菜的原因)                  。就像李弘毅老师课程里讲到的"不懂的人再怎么看也不会懂的"           。那接下来本文就结合李弘毅老师课上的内容加上原论文的公式来一个个进行详解      。

Self-Attention

下面这个图是我自己画的                 ,为了方便大家理解,假设输入的序列长度为2               ,输入就两个节点

x

1

,

x

2

x_1, x_2

x1,x2                    ,然后通过Input Embedding也就是图中的

f

(

x

)

f(x)

f(x)
将输入映射到

a

1

,

a

2

a_1, a_2

a1,a2
                  。紧接着分别将

a

1

,

a

2

a_1, a_2

a1,a2
分别通过三个变换矩阵

W

q

,

W

k

,

W

v

W_q, W_k, W_v

Wq,Wk,Wv
(这三个参数是可训练的    ,是共享的)得到对应的

q

i

,

k

i

,

v

i

q^i, k^i, v^i

qi,ki,vi
(这里在源码中是直接使用全连接层实现的            ,这里为了方便理解                   ,忽略偏执)              。

其中

q

q

q
代表query        ,后续会去和每一个

k

k

k
进行匹配

k

k

k
代表key         ,后续会被每个

q

q

q
匹配

v

v

v
代表从

a

a

a
中提取得到的信息 后续

q

q

q

k

k

k
匹配的过程可以理解成计算两者的相关性                  ,相关性越大对应

v

v

v
的权重也就越大

假设

a

1

=

(

1

,

1

)

,

a

2

=

(

1

,

)

,

W

q

=

(

1

,

1

,

1

)

a_1=(1, 1), a_2=(1,0), W^q= \binom{1, 1}{0, 1}

a1=(1,1),a2=(1,0),Wq=(0,11,1)

那么:

q

1

=

(

1

,

1

)

(

1

,

1

,

1

)

=

(

1

,

2

)

,

q

2

=

(

1

,

)

(

1

,

1

,

1

)

=

(

1

,

1

)

q^1 = (1, 1) \binom{1, 1}{0, 1} =(1, 2) , \ \ \ q^2 = (1, 0) \binom{1, 1}{0, 1} =(1, 1)

q1=(1,1)(0,11,1)=(1,2),q2=(1,0)(0,11,1)=(1,1)

前面有说Transformer是可以并行化的           ,所以可以直接写成:

(

q

1

q

2

)

=

(

1

,

1

1

,

)

(

1

,

1

,

1

)

=

(

1

,

2

1

,

1

)

\binom{q^1}{q^2} = \binom{1, 1}{1, 0} \binom{1, 1}{0, 1} = \binom{1, 2}{1, 1}

(q2q1)=(1,01,1)(0,11,1)=(1,11,2)
同理我们可以得到

(

k

1

k

2

)

\binom{k^1}{k^2}

(k2k1)

(

v

1

v

2

)

\binom{v^1}{v^2}

(v2v1)
      ,那么求得的

(

q

1

q

2

)

\binom{q^1}{q^2}

(q2q1)
就是原论文中的

Q

Q

Q
                  ,

(

k

1

k

2

)

\binom{k^1}{k^2}

(k2k1)
就是

K

K

K
              ,

(

v

1

v

2

)

\binom{v^1}{v^2}

(v2v1)
就是

V

V

V
   。接着先拿

q

1

q^1

q1
和每个

k

k

k
进行match   ,点乘操作                  ,接着除以

d

\sqrt{d}

d
得到对应的

α

\alpha

α
                 ,其中

d

d

d
代表向量

k

i

k^i

ki
的长度,在本示例中等于2               ,除以

d

\sqrt{d}

d
的原因在论文中的解释是“进行点乘后的数值很大                    ,导致通过softmax后梯度变的很小            ”    ,所以通过除以

d

\sqrt{d}

d
来进行缩放                  。比如计算

α

1

,

i

\alpha_{1, i}

α1,i

α

1

,

1

=

q

1

k

1

d

=

1

×

1

+

2

×

2

=

0.71

α

1

,

2

=

q

1

k

2

d

=

1

×

+

2

×

1

2

=

1.41

\alpha_{1, 1} = \frac{q^1 \cdot k^1}{\sqrt{d}}=\frac{1\times 1+2\times 0}{\sqrt{2}}=0.71 \\ \alpha_{1, 2} = \frac{q^1 \cdot k^2}{\sqrt{d}}=\frac{1\times 0+2\times 1}{\sqrt{2}}=1.41

α1,1=dq1k1=21×1+2×0=0.71α1,2=dq1k2=21×0+2×1=1.41
同理拿

q

2

q^2

q2
去匹配所有的

k

k

k
能得到

α

2

,

i

\alpha_{2, i}

α2,i

            ,统一写成矩阵乘法形式:

(

α

1

,

1

α

1

,

2

α

2

,

1

α

2

,

2

)

=

(

q

1

q

2

)

(

k

1

k

2

)

T

d

\binom{\alpha_{1, 1} \ \ \alpha_{1, 2}}{\alpha_{2, 1} \ \ \alpha_{2, 2}}=\frac{\binom{q^1}{q^2}\binom{k^1}{k^2}^T}{\sqrt{d}}

(α2,1α2,2α1,1α1,2)=d(q2q1)(k2k1)T
接着对每一行即

(

α

1

,

1

,

α

1

,

2

)

(\alpha_{1, 1}, \alpha_{1, 2})

(α1,1,α1,2)

(

α

2

,

1

,

α

2

,

2

)

(\alpha_{2, 1}, \alpha_{2, 2})

(α2,1,α2,2)
分别进行softmax处理得到

(

α

^

1

,

1

,

α

^

1

,

2

)

(\hat\alpha_{1, 1}, \hat\alpha_{1, 2})

(α1,1,α1,2)

(

α

^

2

,

1

,

α

^

2

,

2

)

(\hat\alpha_{2, 1}, \hat\alpha_{2, 2})

(α2,1,α2,2)
                   ,这里的

α

^

\hat{\alpha}

α
相当于计算得到针对每个

v

v

v
的权重                 。到这我们就完成了

A

t

t

e

n

t

i

o

n

(

Q

,

K

,

V

)

{\rm Attention}(Q, K, V)

Attention(Q,K,V)
公式中

s

o

f

t

m

a

x

(

Q

K

T

d

k

)

{\rm softmax}(\frac{QK^T}{\sqrt{d_k}})

创心域SEO版权声明:以上内容作者已申请原创保护,未经允许不得转载,侵权必究!授权事宜、对本内容有异议或投诉,敬请联系网站管理员,我们将尽快回复您,谢谢合作!

展开全文READ MORE
咪喹莫特乳膏(mmtray2k.exe有什么作用 是什么进程 mmtray2k进程查询) 有哪些是打字就可以赚钱的软件(有什么软件打字就可以赚钱吗-看个视频就有红包,赚钱App真的赚钱吗?)