李宏毅深度学习笔记07---Transformer

1.Transformer的入门简介

transformer是一种带有self-attention的seq2seq 的模型

处理seq2seq的问题最常用的架构是RNN

下图,左边的结构是RNN,右边的结构是self-attention layer,bi可以基于整个输入序列而得到的。b1,b2,b3,b4是并行计算的。

self-attention layer 可以取代RNN 

2.Self-attention的原理

 

(1)拿每个query q去对每个key k做attention

(2)进行soft-max处理

softmax用于多分类过程中,它将多个神经元的输出,映射到(0,1)区间内,可以看成概率来理解,从而来进行多分类!

假设我们有一个数组,V,Vi表示V中的第i个元素,那么这个元素的softmax值就是

更加形象的描述是:

理解完softmax,就容易理解下图了。

 

 

(3)得到输出结果b1

其中,代表乘法的意思。

同理,可以得到b2,b3,b4的值。

(4)利用矩阵的思想理解self-attention的第1,2,3步的执行过程

<1>q,v,k的矩阵化表示

<2>α1,11,21,31,4计算过程矩阵化表示

<3>计算得到b

(4)self-attention计算过程回顾

3.self-attention 未考虑位置信息

self-attention模型中是没有位置信息的,原始论文中有一个独特的位置变量ei,这个ei不是从数据中学出来的,而是人为设定的

可以这样理解,将每个词的位置信息理解为one-hot的词向量pi,将pi与xi做拼接。W也可以看做由两部分WI,WP组成。

 

4.Transformer非常经典的结构图

 

(1)attention的可视化

从下图中可知,第一个句子,it通过attention知道对应animal,第2个句子通过修改第一个句子的部分内容,可知it对应street

 

5.Transformer的应用

总结一句话:凡是可以用seq2seq的地方,都可以用transformer

 

posted @ 2020-06-15 09:39  雨后观山色  阅读(967)  评论(0编辑  收藏  举报