当前位置: 首页 > news >正文

Transformer学习笔记

Transformer学习笔记

  • 1. 参考
  • 2. 模型图
  • 3.encoder部分
    • 3.1 Positional Encoding
    • 3.2 Muti-Head Attention
    • 3.3 ADD--残差连接
    • 3.4 Norm标准化
    • 3.5 单个Transformer Encoder流程图
  • 4.decoder部分
    • 4.1 mask Muti-Head Attention
    • 4.2 Muti-Head Attention
  • 5 多个Transformer Encoder和多个Transformer Decoder连接方式

1. 参考

李沐 动手学深度学习 PyTorch版
Transformer论文
李宏毅《机器学习》
Batch Norm详解之原理
李沐 Transformer论文逐段精读【论文精读】
Transformer、GPT、BERT,预训练语言模型的前世今生

2. 模型图

在这里插入图片描述

3.encoder部分

3.1 Positional Encoding

为了使模型利用序列的顺序,注入一些关于序列中标记的相对或绝对位置的信息。为此,我们在中的输入嵌入中添加“位置编码

3.2 Muti-Head Attention

首先先是用了Attention机制,key和value是等长的,具体的之前提到过,就不在多解释。

  • 注意力机制,自注意力机制学习笔记

在这里插入图片描述
关于dk\sqrt{ d~k~ }d k 的解释:
当dk不大时,除或者不除都没什么影响。对于dk的大值,点积的幅度变大,softmax后最大的将更靠近1,最小的将更靠近0,也就是两极化严重,这样算梯度时梯度变化会过小。

Muti-Head:
作者对此的解释是与其做单个的自注意力函数,不如将q,k,v都投影到低维h次,然后再做h次的注意力函数,将得到h个结果contact一起,为了恢复原样再次进行一次线性变化。
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述

这样操作的原因是希望在h次投影机会中能够学到不同的取法能够适用于不同模式所需要的相似函数。

3.3 ADD–残差连接

这里加入了一个残差连接,论文原文中的公式为 LayerNorm(X + SubLayer(X))。至于残差连接的作用可以查阅下面文章

  • resnet中的残差连接,你确定真的看懂了?

3.4 Norm标准化

Transformer里面用的是layerNorm而不是batchNorm,下面是batchNorm和layerNorm区别。假设只考虑二维输入情况下

  • batchNorm,将不同batch的同一特征进行均值为0方差为1标准化(也可以均值为x,方差为y,这是可学习的)

在这里插入图片描述

  • layerNorm则对应同一样本来进行变换
    在这里插入图片描述
    拓展到batch,seq,feature上后,batchNorm是对不同batch,不同的seq,同一feature进行Norm,蓝色部分
    而layerNorm是对不同seq,不同的feature,同一样本进行Norm(黄色)在这里插入图片描述
    而之所以用layerNorm而不是batchNorm,解释原因是
    每个样本seq长度不一定都是相同的,可能如下
    在这里插入图片描述
    而且如果突然遇到特别长的seq,则之前的全局的均值和方差就不太适用,反观layerNorm,他是对每个样本自己来计算均值和方差
    在这里插入图片描述

还有一种解释是layerNorm在梯度方面表现的比batchNorm较好,这里李沐老师没有细说。

3.5 单个Transformer Encoder流程图

在这里插入图片描述

4.decoder部分

4.1 mask Muti-Head Attention

mask主要是为了避免在t时间时看到t+1后的东西,比如输出预测的时候,我们是按照上一个输出来预测下一个输出,这个输出之后的东西在实际情况下是不可知的。而attention机制要求看到全局数据,于是这里加了mask,实际上是将那些不能见的数据换成一个非常大的负数,这些数在进入softmax指数运算时会趋向0。
在这里插入图片描述

4.2 Muti-Head Attention

decoder的 Attention不是self Attention了,是cross Attention,key和value来自编码器的输出,query来自decoder中的mask Muti-Head Attention的输出。
在这里插入图片描述

5 多个Transformer Encoder和多个Transformer Decoder连接方式

这里的连接方式有很多种,原论文用的是方式(a)
在这里插入图片描述

http://www.lryc.cn/news/19199.html

相关文章:

  • vue-cli引入wangEditor、Element,封装可上传附件的富文本编辑器组件(附源代码直接应用,菜单可调整)
  • 移动办公时代,数智化平台如何赋能企业管理升级?
  • 2023“拼夕夕”为什么可以凭借简单的拼团做这么大?
  • sqlmap工具
  • 高/低压供配电系统设计——安科瑞变电站电力监控系统的应用
  • Tapdata 和 Databend 数仓数据同步实战
  • 单核CPU, 1G内存,也能做JVM调优吗?
  • 《计算机应用研究》投稿经历和时间节点
  • mars3d获取视窗的范围
  • 《高性能MySQL》读书笔记(上)
  • 05-代理模式
  • RocketMQ源码分析之消费队列、Index索引文件存储结构与存储机制-上篇
  • 基于Java的浏览器的设计与实现毕业设计
  • 手把手教你使用vite打包自己的js代码包并推送到npm
  • Tomcat源码分析-关于tomcat热加载的一些思考
  • DataWhale 大数据处理技术组队学习task4
  • Oracle 12C以上统计信息收集CDB、PDB执行时间不一致问题
  • 用Python获取弹幕的两种方式(一种简单但量少,另一量大管饱)
  • 算法训练营 day55 动态规划 买卖股票问题系列3
  • 电商共享购模式,消费增值返利,app开发
  • 机房信息牌系统
  • 金测评 手感更细腻的游戏手柄,双模加持兼容更出色,雷柏V600S上手
  • Windows10 下测试 Intel SGX 功能
  • Tina_Linux_功耗管理_开发指南
  • golang编译dll失败问题解决
  • Convolutional Neural Networks for Sentence Classification
  • 基于SpringBoot的共享汽车管理系统
  • TCP三次握手
  • 未来土地利用模拟FLUS模型
  • 压力传感器MPX5700D/MPX5700GP/MPX5700AP产品概述、特征