transformer encoder整体结构梳理

transformer encoder整体结构梳理

在这里插入图片描述

下面用公式把一个transformer block的计算过程整理一下:
(1)字向量与位置编码
X = E m b e d d i n g L o o k u p ( X ) + P o s i t i o n a l E n c o d i n g X=EmbeddingLookup(X)+PositionalEncoding X=EmbeddingLookup(X)+PositionalEncoding
X ∈ R b a t c h s i z e ∗ s e q . l e n . ∗ e m b e d . d i m . X\in R^{batch size * seq.len.*embed.dim.} XRbatchsizeseq.len.embed.dim.
(2) 字注意力机制
Q = L i n e a r ( X ) = X W Q Q = Linear(X)=XW_Q Q=Linear(X)=XWQ
K = L i n e a r ( X ) = X W K K = Linear(X)=XW_K K=Linear(X)=XWK
V = L i n e a r ( X ) = X W V V = Linear(X)=XW_V V=Linear(X)=XWV
X a t t e n t i o n = S e l f A t t e n t i o n ( Q , K , V ) X_{attention}=SelfAttention(Q,K,V) Xattention=SelfAttention(Q,K,V)
(3) 残差连接与Layer Normalization:
LayerNormalization的作用是把神经网络中隐藏层归一为标准正态分布,也就是i.i.d独立同分布,以起到加快训练速度,加速收敛的作用。
X a t t e n t i o n = X + X a t t e n t i o n X_{attention}=X+X_{attention} Xattention=X+Xattention
X a t t e n t i o n = L a y e r N o r m ( X a t t e n t i o n ) X_{attention}=LayerNorm(X_{attention}) Xattention=LayerNorm(Xattention)
(4)FeedForward,其实就是两层线性映射并用激活函数激活,比如说ReLU:
X h i d d e n = A c t i v a t e ( L i n e a r ( L i n e a r ( X a t t e n t i o n ) ) ) X_{hidden}=Activate(Linear(Linear(X_{attention}))) Xhidden=Activate(Linear(Linear(Xattention)))
(5) 重复(3),可以重复N次,N表示transformer block的个数:
X h i d d e n = X a t t e n t i o n + X h i d d e n X_{hidden}=X_{attention}+X_{hidden} Xhidden=Xattention+Xhidden
X h i d d e n = L a y e r N o r m ( X h i d d e n ) X_{hidden}=LayerNorm(X_{hidden}) Xhidden=LayerNorm(Xhidden)
X h i d d e n ∈ R b a t c h s i z e ∗ s e q . l e n . ∗ e m b e d . d i m . X_{hidden}\in R^{batch size * seq.len.*embed.dim.} XhiddenRbatchsizeseq.len.embed.dim.

以上就是transformer的编码器的部分,值得注意一点是,经过自注意力机制,一句话中的每个字都含有这句话中其他所有字的信息,那么我们可以添加一个空白字符到句子的最前面,让句子中的所有信息向这个空白字符(hidden state)汇总,然后再映射成想要分的类别。

  • 3
    点赞
  • 3
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值