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

文章目录

    • 来源
    • 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.hqwc.cn/news/14424.html

如若内容造成侵权/违法违规/事实不符,请联系编程知识网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

ARM异常处理详解

前言: 学习一门处理器最重要的就是掌握该处理器的指令集和异常处理。 异常概念: 处理器在正常执行程序时可能会遇到一些不正常的事件发生,这时处理器就要将当前的程序暂停下来转去处理这个异常的事件,异常处理后再返回到被异常打…

Windows下PaddleOCR用NCNN部署

1.所用到的ncnn格式的模型文件 要问这些模型哪里来的,请看下面提示信息: 2.查看字典函数读取方法 char* readKeysFromAssets() {std::ifstream ifs("./model/paddleocr_keys.txt");if (!ifs.is_open()){return 0;}ifs.seekg(0, std::ios_base::end);int …

以太网数据链路层相关技术(六)

目录 一、概述 二、MAC地址 2.1 概述 2.2 MAC地址的意义 三、共享介质型网络与非共享介质网络 四、VLAN技术 一、概述 在各设备之间的数据传输时,物理层和数据链路层是必不可少的。其中,物理层的通信媒介包括双绞线电缆、同轴电缆、光纤、电波以及…

1763_gcc编译c语言makefile自动生成工具的Perl实现_Linux

全部学习汇总: GreyZhang/g_makefile: Learn makefile from all kinds of tutorials on the web. Happy hacking and lets find an common way so we may dont need to touch makefile code any more! (github.com) 其实,调试完这个之后觉得之前Windows上…

docker环境部署postgres版本nacos

1、docker安装postgres 执行命令:docker pull postgres 拉取最新版postgres 2、查看postgres镜像是否安装成功: docker imags(查看镜像),可以看到已经拉取到了最新版本 的postgres镜像 3、编辑一个docker-compose.yml文件,账号是postgres&a…

DynaSLAM 2018论文翻译

Dynaslam:动态场景下的跟踪、建图和图像修复 摘要-场景刚性假设是SLAM算法的典型特征。这种强假设限制了大多数视觉SLAM系统在人口稠密的现实环境中的使用,而这些环境是服务机器人或自动驾驶汽车等几个相关应用的目标。 在本文中,我们提出了一个基于ORB…

【网络安全带你练爬虫-100练】第11练:xpath快速定位提取数据

目录 一、目标1:使用etree解析数据 二、目标2:使用xpath爬取指定数据 三、目标3:提取指定数据 四、网络安全小圈子 一、目标1:使用etree解析数据 其余的不用过多介绍,前面的练习都给大家已经过了一遍 def get_page…

Skywalking高级使用

Skywalking高级使用 RPC调用监控Mysql调用监控Skywalking常用插件获取追踪ID过滤指定的端点告警功能Skywalking原理Open Tracing介绍 RPC调用监控 Skywalking(6.5.0)支持的RPC框架有以下几种: (1) Dubbo 2.5.4 -> 2.6.0 (2) Dubbox 2.8.4 (3) Apache Dubbo 2.7.…

Windows mingw64 最简易 安装配置

其实挺简单一件事 很多教程都搞复杂了 自己写一个 只需要两步 1. 下载压缩包并解压 2. 配置环境变量 (1). GitHub 下载地址 Releases niXman/mingw-builds-binaries GitHub 如果GitHub下载太慢可以来这里加速 或者用地址2 GitHub Proxy 代理加速 (ghproxy.com) (2). 下…

Vue3的使用--002

Vue3包含vue2的语法,学习vue3就行。 前提要求, 安装大于node.js15.0。 创建Vue 项目 : npm init Vuelastest : 这一执行将会安装并执行create-vue, 他是Vue 官方的脚手架工具。你将会看到一些Typescript 和测试支持之类的可选功能提示&…

VTK STL 体积 表面积测量 最短路径 读取中文路径

目录 开发环境: vtkMassProperties 三、中文路径 数据读取 开发环境: 系统:Win10 VTK:8.2.0 Qt:5.12.4 一、结构化对象 体积 面积 vtkMassProperties VTK 计算体积和面积的主要类 vtkMassProperties vtkSm…

ArcGis Pro如何通过C#进行插件开发?

文章目录 0.引言1.开发工具准备2.VS(C#)创建ArcGIS Pro模块加载项3.编译并使用ArcGis Pro插件 0.引言 ArcGIS Pro插件(Add-ins)可以让用户更加容易的自定义和扩展ArcGIS Pro应用程序,它创建一系列自定义工具提供了一个…