【DASOU视频记录】Transformer从零详细解读

news2024/11/24 17:54:27

文章目录

    • 来源
    • transformer的全局理解
    • 位置编码
    • 多头注意力机制
    • 残差
    • Batch Normal
    • Layer Normal
    • Decoder

来源

b站链接

transformer的全局理解

输入中文,输出英文
在这里插入图片描述细化容易理解的结构,就是先编码,再解码
在这里插入图片描述进一步细化的结构,就是多个编码器和多个解码器,每个器件的结构一样,但是具体的参数可以不同,参数是独立训练的
在这里插入图片描述transformer的具体结构和上面类似
在这里插入图片描述

位置编码

分为两部分:

  1. embedding
  2. 位置嵌入

多个字,每个字对应一个512维的向量
在这里插入图片描述

RNN是共享一套W、U、V参数的,所以只能等处理完“我”,才能接下来处理“爱”/“你”,时序的。
而transformer并行处理,则需要位置编码告诉网络,“我爱你”三个字之间的位置关系
在这里插入图片描述原文的位置编码公式
在这里插入图片描述将embedding词向量和位置编码相加
在这里插入图片描述有用的原因
在这里插入图片描述

多头注意力机制

在这里插入图片描述原文的公式
在这里插入图片描述可视化例子如图所示,要关注的内容是query,也就是本文中的婴儿,接着,字是k。q和k点乘可以得到相似度。通过qk相乘得到每个部分,最后乘v,权重,得到最终的关注程度
在这里插入图片描述

如何获取QKV,获得了单词向量之后,将其于qkv大小一个矩阵相乘
在这里插入图片描述

除以 d k \sqrt{d_k} dk ,可以控制方差为一,除以这个是为了防止softmax之后的值太小导致梯度消失

在这里插入图片描述
实际使用矩阵

在这里插入图片描述

多头指的是用多套qkv,也就是会让网络关注到不同子空间的信息

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

残差

在这里插入图片描述残差的意义:传播后的梯度往往因为连乘而消失,加入残差就加入了1,所以可以缓解梯度消失的问题。
在这里插入图片描述

Batch Normal

首先了解一下BN和LN的区别:

  • BN 对不同输入样本在同一个神经元上的值进行归一化
  • LN 对单个输入样本在同一层的所有神经元的值进行归一化

在NLP中,BN的效果差,所以不用,一般使用LN
在CV中,BN是对一行计算,都是身高特征、都是体重特征等,对一类的特征做归一化是合理的。
在这里插入图片描述
BN优点

  1. 解决内部协变量偏移
  2. 缓解了梯度饱和问题(如果使用sigmoid激活函数的话),加快收敛。

BN缺点

  1. batch_size较小的时候,效果差。
    因为BN是用batch_size个样本的均值和方差来模拟所有样本的均值和方差。
  2. BN在RNN中效果比较差。
    因为RNN是动态输入的,对于20长度的词,后面空白部分的batch_size就变成1了。
    在这里插入图片描述

Layer Normal

LayerNorm单独对一个样本的所有单词做缩放可以起到效果。

如下图,LN是认为“我爱中国共产党”,这句话具有同样的语义信息;但是BN认为 “我-今”、“爱-天”这样一对对的具有同样的语义信息,这显然是不合理的
在这里插入图片描述
之后就是归一化的向量通过一个前馈神经网络。
在这里插入图片描述整体重新过一遍就是,首先输入,然后输入映射到高纬的embedding,接着加入位置编码,然后加入多头注意力机制,位置编码和多头注意力结果融合,输入归一化,接着进行前馈神经网络,再次归一化。
在这里插入图片描述

在这里插入图片描述

Decoder

解码主要分为两步,第一步是mask的多头注意力机制,第二步是进行交互。
在这里插入图片描述第一步中,需要对当前单词和之后的单词做mask
在这里插入图片描述也就是在下图中,因为测试中是不知道后面的词的,所以也要在训练的时候把后面的词隐藏掉。
在这里插入图片描述交互方面
每个encoder的结果要和每个decoder的结果做交互
在这里插入图片描述具体来说,就是encoder的k、v矩阵和decoder的q矩阵做交互

在这里插入图片描述

通过DASOU的视频,对transformer整体概念和各个知识点都又了一个直观上的概念,接着有助于继续看其他视频,进行更加深度的学习。(本来一开始看霹雳吧的视频,就是没看懂,一上来直接qkv,直接给我干懵了,哈哈哈哈

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/716574.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

Python_闭包

目录 1.概念介绍 2.闭包初探 3.闭包陷阱 4.闭包的应用 4.1 潜在的问题 5.闭包的实现 闭包并不只是一个python中的概念,在函数式编程语言中应用较为广泛。理解python中的闭包一方面是能够正确的使用闭包,另一方面可以好好体会和思考闭包的设计思想。…

面试又问到:工作中发现的最有价值的bug?答不好offer要飞了...

目录:导读 前言一、Python编程入门到精通二、接口自动化项目实战三、Web自动化项目实战四、App自动化项目实战五、一线大厂简历六、测试开发DevOps体系七、常用自动化测试工具八、JMeter性能测试九、总结(尾部小惊喜) 前言 这个问题&#xf…

SpringBoot--超时熔断器

需求背景 如果一个服务中有很多涉及需要服务间熔断的地方,就会出现N多下述代码: 1.N个fegnClient接口 FeignClient(name "hello-world-service", fallback HelloWorldFallback.class) public interface HelloWorldService {GetMapping(&q…

gma 2 教程(一)概述:3. 探索 GMA

组织方式 gma 整体按照库-模块-类/函数-(方法/属性/子类)的思路构建,详细思路如下所示: 整体架构 gma内主要模块与功能对应关系见下表: 模块名中文名对应主要功能io输入输出栅格/矢量数据输入输出模块crs坐标系统坐…

vim的使用方法及相关按键

目录 一、安装vim 二、vim的使用 1.打开vim 2.vim的四种模式使用 (1)命令模式(快捷键的使用) (2)编辑模式 (3)末行模式 (4)可视化模式 一、安装vim …

022:vue中tree结构数据变成扁平化table结构数据的示例

第022个 查看专栏目录: VUE — element UI vue在使用element UI tree的时候,有的时候是要做逆向处理的,即将树形结构的数据转化为table结构的数据,即扁平化的json数据。 如何处理呢? 效果图 原始tree结构数据: let newdata= [ {

redis pipeline

redis 执行多条连续的命令的时候为了减少网络开销RTT,可以使用pipeline技术。 pipeline 与 原生批命令(mset, mget) 对比: 原生批命令是原子性,pipeline是非原子性 (原子性概念:一个事务是一个不可分割的最小工作单位,要么都成功要么都失败…

基于Anime2Sketch算法那将图片转成素描

1.下载源码地址 https://github.com/Mukosame/Anime2Sketch下载项目依赖包,下载模型权重文件 运行看效果 python test.py --datarootE:\01_hjz\datas\00-hjz\pictures --load_size512调整自定义测试图片路径 """Test script for anime-to-sketch…

基于Java+Vue前后端分离网上书城系统设计实现(源码+lw+部署文档+讲解等)

博主介绍:✌全网粉丝30W,csdn特邀作者、博客专家、CSDN新星计划导师、Java领域优质创作者,博客之星、掘金/华为云/阿里云/InfoQ等平台优质作者、专注于Java技术领域和毕业项目实战✌ 🍅文末获取源码联系🍅 👇🏻 精彩专…

ChatGPT+低代码,好用到飞起?

ChatGPT 凭借短短 2 个月,月活用户突破 1 亿,成为史上用户增长速度最快的消费级应用程序。ChatGPT 的爆火,在全球范围内掀起了一场关于 AI 技术革命的狂潮,AIGC 也迅速成为科技圈最火赛道。 更有国际咨询机构预测,203…

IIS安装配置和简单网站部署流程

IIS安装和网站配置 环境:win10 注意:这是在win10下部署iis,开发环境下部署,开发测试,非windows server IIS简介 Internet Information Services,简称IIS,是微软提供基于windows的互联网信息服务&#x…

微信小程序使用第三方组件wxParse加载富文本html

微信小程序使用第三方组件wxParse加载富文本html 微信小程序微信小程序加载富文本html微信小程序富文本第三方组件wxParsewxParse富文本html wxParse简介 wxParse 是一个微信小程序富文本解析组件,支持支持Html及markdown转wxml。 wxParse gitHub地址&#xff1…

亿发软件:玩具制造行业批发ERP系统解决方案,赋能传统制造商数字化

我国长期以来被公认为玩具制造大国,受益于其制造基础设施和成本优势。此外,可支配收入的增加和用户生活方式的改变增加了国内外对玩具的需求。然而,行业也面临着挑战和转型。随着数字技术的出现和用户偏好的变化,玩具ERP系统在确保…

TCP三次握手和自连接的条件和缺点

详解三次握手 为什么 SYN 段不携带数据却要消耗一个序列号呢? 记住: • 不占用序列号的段是不需要确认的,比如纯 ACK 包 • SYN 段需要对方的确认,需要占用一个序列号 • 凡是消耗序列号的 TCP 报文段,一定需要对端确认…

旅游宣传软文怎么写吸引人?纯干货

世界那么大,我想去看看,旅游是一种非常放松解压的方式,在旅行中放飞自我,在旅行中寻找自我,一个景点的客流量很大程度取决于其宣传效果,旅游宣传软文就是一种通过文字来吸引人们前往旅游目的地的宣传手段。…

嵌入式系统中详解 Modbus 通信协议(清晰易懂)

本文总结关于 Modbus 相关的知识,浅显易懂,旨在对 Modbus 有一个很直观的了解。如有错误,欢迎修改意见和建议。 什么是协议 在了解什么是Modbus之前,我们先来看下什么是协议。 协议是一个汉语词汇,读音为xi y&#…

Nftables栈溢出漏洞(CVE-2022-1015)复现

背景介绍 Nftables Nftables 是一个基于内核的包过滤框架,用于 Linux 操作系统中的网络安全和防火墙功能。nftables 的设计目标是提供一种更简单、更灵活和更高效的方式来管理网络数据包的流量。 钩子点(Hook Point) 钩子点的作用是拦截数…

Linux环境下配置安装RocketMQ

1.下载 官网下载:下载链接 根据需要下载自己需要的版本、本文使用下载的是:4.7.0版本 2.安装 创建目录,使用ftp工具上传下载的包到上面创建的目录下。 cd /usr/local mkdir rocketmq-all-4.7.0注意:rocketmq 需要 Linux 上安装JDK&…

7、卷积神经网络:基础部件+LeNet

1、图像卷积 1. 互相关运算 严格来说,卷积层是个错误的叫法,因为它所表达的运算其实是互相关运算(cross-correlation),而不是卷积运算。在卷积层中,输入张量和核张量通过(互相关运算)产生输出张量。 首先…

【运维工程师学习】安装ubuntu20.04并配置SSH

【运维工程师学习】安装ubuntu20.04 1、镜像获取2、创建虚拟机3、开始安装4、配置SSH(1) 查看本地ssh版本(2) 安装ssh(3) 查看ssh运行状态(4) 设置开机自动启动(5) 重启(6) 安装net-tools(7) 查看ip5、SSH连接 1、镜像获取 https://next.itellyou.cn/Original/#cbpProduct?ID…