transformer总结笔记

1.输入先经过一个全连接的嵌入层,变成一个维度设定好的向量,经过编码器/解码器,每个向量都会由自注意力机制经过一个线性投影层(多头自注意力会将向量的维度拆分,每个头注意一部分的维度,最后将每个头的输出再合并)产生为3个向量,即querry(查询)、key(和查询相乘得到相似度)、value。每个querry去乘所有的key,分别得到和其他key的相似度(向量的点乘代表cos),之后将所有的value进行加权和,权重由querry和key的相似度决定(将querry和所有key点乘(当维度过大时,可以除以一个根号维度,防止softmax值过于接近0和1),最后通通经过一个softmax即可得到权重),最后过一个全连接层+relu非线性变换,就得到了一个自注意力层的输出。
2.解码器先输入begin(特殊符号向量),一个一个向量输出,且每一个输出的向量都会作为输入,做自注意力时当前的输入无法看到之后的输出,分类需要用一个特殊向量表示结束,否则解码器会一直持续输出。为什么要masked?因为解码器实际上是在做预测任务,如果能够看到之后的输出,就相当于是作弊了,会导致模型崩塌(学到的就不是预测任务想要的时序性,而是单纯的映射)。
encoder主要学习的是一个全局的特征,decoder主要学习的是序列信息下的预测

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值