Attention

Dotproduct Attention:

Multihead Attention:

1.假设有h个头,先将Q,K,V映射成d/h维的矩阵后求h个Attention再Concat成d维的矩阵,类似于卷积层里面的通道

Self-Attention:

Q=K=V的Attention,Transformer的输入和输出在进入Stack后的第一个Attention就会复制三份。

Transformer:

Attention_第1张图片

Encoder:

Multihead-Self Attention:多头自注意力

FFN(feed-forward-network):单隐藏层的投影机,中间扩大4倍维度成2028后再缩小回到512。

Positional Encoding:位置矩阵,可学习。

每个Sub-layer的输出可以表示为:layernorm(X+sublayer(X))

Decoder:

Masked-Multihead-Self Attention: Masked的作用就是在算第t个query输出的时候,不会受后面t+1,...,n的query影响(将其的权重设置为0)

Multihead-Attention:和Encoder的区别,不是自注意力的Attention。将编码器的输出设为V和K,解码器的输出设为Q。这层layer的输出权重取决于解码器输出与编码器输出的相似程度。

GitHub:

GitHub - thomlake/pytorch-attention: pytorch neural network attention mechanism(对mask机制和Attention在不同机制下求权的过程)

视频讲解:

https://www.bilibili.com/video/BV1pu411o7BE/?spm_id_from=333.999.0.0&vd_source=7330c7578114decd9bf0f1f454e29572 | batchnomalization和 layernomalization 之间的区别

你可能感兴趣的:(python)