注意力机制

https://blog.csdn.net/benzhujie1245com/article/details/117173090

一、注意力机制

1、注意力机制

关注重点,找出重点,发现更多细节信息,抑制无用信息

1.1公式理解

在这里插入图片描述
例子:以淘宝为例

在这里插入图片描述
QKt就是多个查询和多个物品向量来计算相似性 转置是便于相乘,得到一个相似性的实数值
softmax转为概率权重
根号下dk是指 推到梯度值,

1.2 注意力机制的实现过程和代码

https://zhuanlan.zhihu.com/p/48508221
https://www.bilibili.com/video/BV1kT4y1v7RH/?spm_id_from=pageDriver&vd_source=a402747bd6c153bdb2defee02a9cb617
例如计算单词 thinking和machines的相似性

在这里插入图片描述q1*k1的转置 得到一个数
在这里插入图片描述
在这里插入图片描述

2 向量运算

可以直接乘
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
可以在github上下载代码,transformer
temperature就是根号下dk

3 自注意力机制

1、注意力机制和子注意力机制的区别
例子,汉译英
在这里插入图片描述
没有用注意力的情况,各个权重一样,就不合理了
使用注意力机制的情况
在这里插入图片描述
自注意力机制
注意力机制的q\k\v是分布在两侧的
自注意力机制将注意力机制包含在里面,qkv全在source部分

4 多头注意力机制

多头注意力机制: matmul为乘法,scale为除以根号下dk,mask为掩膜,softmax不必多说,matmul最后这个为公式中最后乘以v
多头注意力机制 :为多个层各自分别操作,然后进行连接
在这里插入图片描述
不同的头提取的信息不同
多头注意力机制的情况是多个单层的
在这里插入图片描述
在这里插入图片描述

代码实现
设置截取长度,p指的是不足的填充p,超出的不要
src_len:截取长度
s指的是开始,e指的结束
d_model:表示每一个字用多少维度的向量来表示
d_k,d_v表示维度
n_heads:表示有几个头
http://t.csdn.cn/d41Fy

在这里插入图片描述
torch.Size([1,5,4])
1指的是只有一个例子
5指的是我喜欢你p这五个字符
4每一个字符使用1行4列表示

二、 新课程学习

课程地址

https://www.bilibili.com/video/BV1Di4y1c7Zm/?spm_id_from=333.337.search-card.all.click&vd_source=a402747bd6c153bdb2defee02a9cb617

结构详解

1.1 整体架构

tansformer是什么:
看三个图,越来越详细
在这里插入图片描述
在这里插入图片描述
encoder结构完全相同,参数不相同,在独立训练
decoder结构完全相同,参数不相同,在独立训练

在这里插入图片描述
在这里插入图片描述

1.2 encoder

首先,放encoder图
在这里插入图片描述

第一部分:
1,Embedding
2、位置嵌入
Embedding:按照字切分,每个字分为512维度的字向量,
在这里插入图片描述
位置编码
对于RNN的所有编码共享一套参数,U是一样的
在这里插入图片描述
在偶数和奇数位置使用不同的三角函数
在这里插入图片描述
接下来将embedding和位置编码后的相加
在这里插入图片描述
位置编码的作用:线性组合意味着位置向量中蕴含了相对位置信息

残差和LayerNorm

x的结果和z的结果作为残差结果相加,进行layerNorm
在这里插入图片描述残差:
在这里插入图片描述
为什么使用layer normalization而不是BN,
BN的效果差,所以不用

LN针对每一个样本的同一维度进行操作,例如小明,小李,小红等的体重进行处理
在这里插入图片描述

前馈神经网络 feed forward

FeedForward的输入是什么呢?是Multi-Head Attention的输出做了残差连接和Norm之后得数据,然后FeedForward做了两次线性线性变换,为的是更加深入的提取特征。

所以FeedForward的作用是:通过线性变换,先将数据映射到高纬度的空间再映射到低纬度的空间,提取了更深层次的特征
在这里插入图片描述

Decoder

在这里插入图片描述
第一层:mask是啥
需要对当前单词和之后的单词做掩膜,抹掉不能看
如果能看的话就会出现每个词都对预测的有贡献

第二层:怎么交互的
在这里插入图片描述
encoder中生成的是KV矩阵,decoder中生成q矩阵,注意:交互就是三者进行的交互,分别于decoder中的每一个进行交互
在这里插入图片描述

softmax函数

softmax函数,又称归一化指数函数。它是二分类函数sigmoid在多分类上的推广,目的是将多分类的结果以概率的形式展现出来
在这里插入图片描述

encoder代码

https://www.bilibili.com/video/BV1dR4y1E7aL/?spm_id_from=333.999.0.0&vd_source=a402747bd6c153bdb2defee02a9cb617

应用
1、机器翻译类应用,endcoder和decoder共同使用
2、只是用encoder端,文本分类BERT和图片分类VIT
3、只是用decoder端,生成类模型

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

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值