李宏毅transformer笔记

self-attention

输入为:
一排向量–word embedding
可以是一段声音讯号、一个图(一个节点)、一个分子(一个原子)
输出为:
① 每个向量都有一个对应的label,输入长度=输出长度
例:词性标注(每一个单词都有一个对应的磁性)、社交网络
② 一整个sequence需要一个label
例:机器判断一段话是正面的还是负面的、根据一段语音判断讲话人是谁
③ 模型自己决定输出的label个数
例:翻译

输入个数=输出个数,称为Sequence Labeling(sequence的每一个向量都要输出一个Label)
fully-connected(全连接)
李宏毅transformer笔记_第1张图片考虑更多的信息,比如上下文
可以给全连接层一整个window的信息,来考虑上下文
李宏毅transformer笔记_第2张图片如果考虑一个window不能解决,需要考虑整个sequence,window的长度不能无限大来盖住整个sequence?

self_attention可以考虑一整个sequence
李宏毅transformer笔记_第3张图片self-attention可以叠加。

根据a1找出sequence中跟a1的相关性,用α表示两个向量关联的程度
α的计算方法:
![在这里插入图片描述](https://img-blog.csdnimg.cn/0d40480fc66b46618ee8184edac74e03.png
李宏毅transformer笔记_第4张图片其中α1,2为attention score
注意,q1也会跟自己计算关联性(很重要)。

接下来,会做一个softmax,α得到一排α’
李宏毅transformer笔记_第5张图片不一定用softmax,比较常见。
根据α,已经得出向量之间的关联性。

下一步,要根据α’提取出其中重要的信息
李宏毅transformer笔记_第6张图片以上做的事情就是实现下图,从a得到b
李宏毅transformer笔记_第7张图片然后,从矩阵乘法的角度理解
李宏毅transformer笔记_第8张图片李宏毅transformer笔记_第9张图片最后,输入是I,输出是O
需要学习的矩阵只有Wq、Wk、Wv
李宏毅transformer笔记_第10张图片多头注意力
下图为两个head的情况
李宏毅transformer笔记_第11张图片李宏毅transformer笔记_第12张图片
但是,所有位置的距离都是一样的,self-attention中就缺少了相对位置的信息,所以需要位置编码。
给每个位置一个专属的vector ei,将其加到ai上面。
李宏毅transformer笔记_第13张图片self-attention vs CNN
CNN是一种简化的特殊的self-attention,receptive filed是人工决定的
self-attention中是学习得到的

sequence-to-sequence

输入一个sequence,输出一个sequence,输出的长度由模型决定。
李宏毅transformer笔记_第14张图片硬解:QA、语法剖析、多标签分类

encoder

给一排向量,输出另一排向量
李宏毅transformer笔记_第15张图片残差residual connection
layer normalization
fully connection
才得到一份block的输出
李宏毅transformer笔记_第16张图片

decoder

先给decoder一个begin,经过一个softmax得到一个输出,之后将begin和上一个输出作为decoder的输入,以此循环。encoder也会给decoder一个输入。(所以有可能会一步错步步错)
李宏毅transformer笔记_第17张图片encoder中的b1是根据a1跟其他所有ai的信息共同决定的。decoder中的mask,在产生b1的时候只能考虑a1的信息,产生b2的时候只能考虑a1和a2的信息,产生b3的时候只能考虑a1、a2、a3的信息。
李宏毅transformer笔记_第18张图片为什么要masked?
decoder运行的时候是一个一个的输入和输出,结果是先输入a1,再输入a2,所以在求b2的时候还没有输入b3和b4的信息。

怎样决定decoder输出的长度?什么时候停止?
要有一个特殊的符号end来表示结束(也可以跟begin用一个)
李宏毅transformer笔记_第19张图片non-autoregressive(NAT)
NAT比AT速度更快,可以控制输出长度,但是效果差
李宏毅transformer笔记_第20张图片怎么确定NAT的输入长度
①用一个分类器,读入encoder,输出decoder的长度
②输出长度上限,寻找end符号,后面的舍掉

cross attention:连接decoder和encoder
李宏毅transformer笔记_第21张图片李宏毅transformer笔记_第22张图片 李宏毅transformer笔记_第23张图片训练
希望每次训练得到的ground truth跟distribution越接近越好
李宏毅transformer笔记_第24张图片每个输出都有cross entropy,希望cross entropy的总和越小越好。
在训练的时候,会给decoder输入正确答案。
李宏毅transformer笔记_第25张图片 exposure bias
训练的时候decoder输入都是正确的,在测试的时候可能结果很离谱,所以在训练的时候就给decoder一些错误的输入,称为scheduled sampling。

你可能感兴趣的:(深度学习,transformer,深度学习,人工智能)