Transformer学习笔记(二)

一、文本嵌入层Embedding

1、作用:

        无论是源文本嵌入还是目标文本嵌入,都是为了将文本中词汇的数字表示转变为向量表示,希望在这样的高维空间捕捉词汇间的关系。

二、位置编码器Positional Encoding

1、作用:

        因为在Transformer的编码器结构中,并没有针对词汇位置信息的处理,因此需要在Embedding层后加入位置编码器,将词汇位置不同可能会产生不同的语义的信息加入到词嵌入张量中,以弥补位置信息的缺失。

2、作用:

        正弦波和余弦波的值域范围都是1到-1,这又很好的控制了嵌入数值的大小,有利于梯度的快速计算。

三、掩码张量

1、什么是掩码张量:

        掩代表遮掩,码就是张量中的数值,它的尺寸不定,里面一般只有1和0的元素,代表位置被遮掩或者不遮掩,因此它的作用就是让另外一个张量中的一些数值被遮掩,也可以说被替换,它的表现形式是一个张量。

2、掩码张量的作用:

        在Transformer中,掩码张量的主要作用在应用attention时,有一些生成的attention张量中的值计算有可能已知了未来信息而得到的,未来信息被看到是因为训练时会把整个输出结果都一次性进行Embedding,但是理论上解码器的输出却不是一次就能产生最终结果的,而是一次次通过上一次结果综合得出的,因此,未来的信息可能提前利用,所以,我们会进行遮掩。

四、注意力机制

1、什么是注意力:

        我们观察事物时,之所以能够快速判断一种事物,是因为我们大脑能够很快把注意力放在事物最具有辨识度的部分从而做出判断,而并非是从头到尾的观察。正是基于这样的理论,就产生了注意力机制。

2、什么是注意力计算规则:

        它需要三个指定的输入,Q(query)K(key)V(value),然后通过公式得到注意力的计算结果,这个结果代表query在key和value作用下的表示,而这个具体的计算规则有很多种。常用的计算规则:

3、什么是注意力机制:

        注意力机制是注意力计算规则能够应用的深度学习网络的载体,除了注意力计算规则外,还包括一些必要的全连接层以及相关张量处理,使其与应用网络融为一体,使用自注意力计算规则的注意力机制称为自注意力机制。注意力机制表示图:

五、多头注意力机制

1、什么是多头注意力机制:

        从多头注意力的结构图种,貌似这个所谓的多个头就是指多组线性变换层,其实并不是,只有使用了一组线性变化层,即三个变换张量对QKV分别进行线性变换,这些变换不会改变原有张量的尺寸,因此每个变换矩阵都是方阵,得到输出结果后,多头的作用才开始显现,每个头开始从词义层面分割输出的张量,也就是每个头都想获得一组QKV进行注意力机制的计算,但是句子中的每个词的表示只获得一部分,也就是只分割了最后一维的词嵌入向量,这就是所谓的多头,将每个头的获得的输入送到注意力机制中,就形成多头注意力机制。

2、多头注意力机制结构图

3、多头注意力机制的作用:

        这种结构设计能让每个注意力机制去优化每个词汇的不同特征部分,从而均衡同一种注意力机制可能产生的偏差,让词义拥有来自更多元的表达,实验表明可以从而提升模型效果。

六、前馈全连接层

1、什么是前馈全连接层:

        在Transformer中前馈全连接层就是具有两层线性层的全连接网络。

2、前馈全连接层的作用:

        考虑注意力机制可能对复杂过程的拟合程度不够,通过增加两层网络来增强模型的能力。

七、规范化层

1、规范化层的作用:

        它是所有深层网络模型都需要的标准网络层,因为随着网络层数的增加,通过多层计算后参数可能开始出现过大或者过小的情况,这样可能会导致学习过程出现异常,模型可能收敛非常的慢,因此都会在一定层后接规范化层进行数值的规范化,使其特征数值在合理范围内。

八、子层连接结构

1、什么是子层连接结构:

        如图所示,输入到每个子层以及规范化层的过程中,还使用了残差连接,因为我们把这一部分结构整体叫做子层连接,在每个编码器层中,都有两个子层,这两个子层加上周围的连接结构就形成了两个子层连接结构。

九、编码器层

1、编码器层的作用:

        作为编码器层的组成单元,每个编码器层完成一次对输入的特征提取过程,即编码过程。

编码器层构成图:

十、编码器

1、编码器的作用:

        编码器用于对输入进行指定的特征提取过程,也称为编码,由N个编码器层堆叠而成。

十一、解码器层

1、解码器部分:

由N个解码器层堆叠而成

每个解码器层由三个子层连接结构组成

第一个子层连接结构包括一个多头自注意力子层和规范化层以及一个残差连接

第二个子层连接结构包括一个多头注意力子层和规范化层以及一个残差连接

第三个子层连接结构包括一个前馈全连接子层和规范化层以及一个残差连接

2、解码器层作用:

        作为解码器的组成单元,每个解码器层根据给定的输入向目标方向进行特征提取操作,即解码过程

十二、解码器

1、解码器作用:

        根据编码器的结果以及上一次预测的结果,对下一次可能出现的值进行特征表示

十三、输出部分

1、输出部分包含线性层、softmax层:

十四、模型基本测试运行

1、copy任务介绍

        任务描述:针对数字序列进行学习,学习的最终目标是使输出与输入相同。

        任务意义:copy任务在模型基础测试中具有重要意义,因为copy操作对于模型来讲是一条明显规律,因此模型能否在短时间内,小数据集中学会它,可以帮助我们断定模型所有过程是否正常,是否已具备学习能力。

2、使用copy任务进行模型基本测试的四部曲:

        第一步:构建数据集生成器

        第二步:获得Transformer模型及其优化器和损失函数

        第三步:运行模型进行训练和评估

        第四步:使用模型进行贪婪解码

3、Transformer模型及其优化器和损失函数

使用adam优化器,交叉熵损失函数

4、贪婪解码

        每次预测选择概率最大的输出

十五、使用Transformer构建语言模型

什么是语言模型:

        以一个符合语言规律的序列为输入,模型将利用序列间关系特征,输出一个在所有词汇上的概率分布,这样的模型称为语言模型

语言模型能解决哪些问题:

        可以完成机器翻译、文本生成;

        可以判断输入的序列是否为一句完整的话;

        训练目标是预测下一个词。

训练模型的五个步骤:

1、导入必备的工具包:语料包括用于情感分析、问题分类、翻译

2、导入wikiText2数据集并进行基本处理:600篇短文、208万左右的词汇

3、构建用于模型输入的批次化数据:batchify用于将文本数据映射成连续数字并转换成指定的样式;get_batch用于获得每个批次合理大小的源数据和目标数据。

4、构建训练和评估函数:交叉熵损失函数,Adam或者SGD优化器

5、进行训练和评估(包括验证和测试)

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

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

相关文章

将 OpenCV 与 Eclipse 结合使用(插件 CDT)

返回:OpenCV系列文章目录(持续更新中......) 上一篇:将OpenCV与gcc和CMake结合使用 下一篇:OpenCV4.9.0在windows系统下的安装 警告: 本教程可以包含过时的信息。 先决条件 两种方式,一种…

数据治理之数据标准管理及实践方法

什么是数据标准?提到数据标准大家肯定会想到我们公司也有相关的产品设计的标准、质量检验的标准、安全环保的标准,对于金融企业的话,还有市场监管相关的一些标准。些标准其实都不是我们要讲的数据标准,以上的标准最多只能被称作规…

OpenCV系列文章目录(持续更新中......)

引言: OpenCV是一个开源的计算机视觉库,由英特尔公司开发并开源的一组跨平台的C函数和少量的C函数组成,用于实时图像处理、计算机视觉和机器学习等应用领域。OpenCV可以在包括Windows、Linux、macOS等各种操作系统平台上使用,具…

OPENCV(0-1之0.2)

OPENCV-0.2 学习安排图像基础像素访问和修改像素值 色彩空间转换RGB到灰度的转换RGB到HSV的转换 图像操作裁剪缩放旋转和翻转 图像滤波平滑和模糊图像边缘检测 图像变换仿射变换透视变换 总结 官方文档 学习安排 图像基础 像素:了解像素的概念,包括像素…

大厂面试--是否熟悉Node, 主要做过哪些业务,平时用过什么包?

什么是Node ​ Node是一个让Javascript运行在服务端的开发平台,它让Javascript成为了与PHP、Python、Perl、Ruby等服务器语言平起平坐的脚本语言。目前Nodejs已发展成一个成熟的开发平台,吸引了许多开发者。有许多大型高流量网站都采用Nodejs进行开发&a…

Linux——程序地址空间

我们先来看这样一段代码&#xff1a; #include <stdio.h> #include <unistd.h> #include <stdlib.h>int g_val 0;int main() {pid_t id fork();if(id < 0){perror("fork");return 0;}else if(id 0){ //child,子进程肯定先跑完&#xff0c;也…

牛客网-SQL大厂面试题-2.平均播放进度大于60%的视频类别

题目&#xff1a;平均播放进度大于60%的视频类别 DROP TABLE IF EXISTS tb_user_video_log, tb_video_info; CREATE TABLE tb_user_video_log (id INT PRIMARY KEY AUTO_INCREMENT COMMENT 自增ID,uid INT NOT NULL COMMENT 用户ID,video_id INT NOT NULL COMMENT 视频ID,start…

单片机LED灯闪烁

延时函数计算&#xff08;相关代码生成&#xff09;&#xff1a; #include "reg52.h" #include <INTRINS.H> void Delay500ms() //11.0592MHz {unsigned char i, j, k;_nop_();_nop_();i 22;j 3;k 227;do{do{while (--k);} while (--j);} while (--i); }vo…

Elasticsearch实战:索引阻塞 —— 数据保护的终极武器

文章目录 1、索引阻塞的种类2、什么时候使用阻塞&#xff1f;场景1&#xff1a;进行系统维护场景。场景2&#xff1a;保护数据不被随意更改场景。场景3&#xff1a;优化资源使用的场景。场景4&#xff1a;遵守安全规则场景。 3、添加索引阻塞API4、解除设置 API5、小结6、参考 …

网络编程:包头分析

一、以太网头 以太网中封装了源mac地址以及目的mac地址&#xff0c;还有ip类型&#xff0c;以太网又称为mac头 0X0800 只接收发往本机的mac的ipv4类型的数据帧 0X0806 只接收发往本机的ARP类型的数据帧 0x8035 只接受发往本机的RARP类型的数据帧 0X0003 接收发往本机的MAC所…

Android分区存储到底该怎么做

文章目录 一、Android存储结构二、什么是分区存储&#xff1f;三、私有目录和公有目录三、存储权限和分区存储有什么关系&#xff1f;四、我们应该该怎么做适配&#xff1f;4.1、利用File进行操作4.2、使用MediaStore操作数据库 一、Android存储结构 Android存储分为内部存储和…

好就业三种专业#信息安全#云计算#网络工程

一、信息安全专业 根据2021年网络安全宣传周白皮书的观察结果&#xff0c;网络安全产业对于人才的需求正以高速增长的趋势呈现&#xff0c;当前网络安全行业存在着巨大的人才缺口&#xff0c;平均供求比例约为1:2。这一现象导致了资深人才的储备不足&#xff0c;并且新人才的培…

Python通过Ctypes调用C++类,实测有效

文章目录 前言创建vs dll工程添加外部库编辑代码编译测试参考 前言 在软件开发中&#xff0c;有时候需要Python与C相结合&#xff0c;以充分发挥两者的优势 。Python作为一种高级编程语言&#xff0c;具有简洁易读的特点&#xff0c;适用于快速开发和原型设计。而C则是一种性能…

活动图高阶讲解-03

1 00:00:00,000 --> 00:00:06,260 刚才我们讲了活动图的历史 2 00:00:06,260 --> 00:00:11,460 那我们来看这个活动图 3 00:00:11,460 --> 00:00:15,260 如果用来建模的话怎么用 4 00:00:15,260 --> 00:00:20,100 按照我们前面讲的软件方法的工作流 5 00:00:20…

网络工程师之路由交换技术篇

网络工程师之路由交换技术篇 路由交换之技术篇ARPICMPBPDUIPv6IP编址MAC其他技术点参考 以下均为个人笔记&#xff0c;摘录到csdn做备份 路由交换之技术篇 ARP Operation Code指定了ARP报文的类型&#xff0c; 包括ARP request 和ARP reply&#xff1b;取值为1或者2 &#x…

1.3抽象数据类型的表现和实现

1、实例 &#xff1a; #include<stdio.h> #include<stdio.h> #include<string.h> #pragma warning(disable:4996) ADT Complex{D {r1,r2 | r1,r2 都是实数}S {<r1&#xff0c;r2> | r1是实部&#xff0c;r2是虚部}assign(&C, v1, v2)初始条件:空…

解决谷歌浏览器最新chrome94版本CORS跨域问题

项目场景&#xff1a; 谷歌浏览器升级到chrome94版本出现CORS跨域问题 问题描述 解决谷歌浏览器最新chrome94版本CORS跨域问题。 CORS跨域问题&#xff1a; 升级谷歌浏览器最新chrome94版本后&#xff0c;提示Access to XMLHttpRequest at ‘http://localhost:xxxx/api’ fro…

MISC:常见编码

一、字符编码 1.ASCII码 使用指定7位或8位二进制数组合表示128-256种可能。 常⻅考点&#xff1a;解题过程中给出十进制或十六进制的连续数值。 进制转换工具&#xff1a; ASCII text,Hex,Binary,Decimal,Base64 converter (rapidtables.com) 2.Base64编码 ASCII编码以8个比特…

【Datawhale组队学习:Sora原理与技术实战】使用KAN-TTS合成女生沪语音频

Sambert-Hifigan模型介绍 拼接法和参数法是两种Text-To-Speech(TTS)技术路线。近年来参数TTS系统获得了广泛的应用&#xff0c;故此处仅涉及参数法。 参数TTS系统可分为两大模块&#xff1a;前端和后端。 前端包含文本正则、分词、多音字预测、文本转音素和韵律预测等模块&am…

Vue组件中引入jQuery

两种在vue中引入jQuery的方式 1、普通html中使用jQuery 将jQuer的文件导入到项目中&#xff0c;然后直接使用<script src"jQuery.js"></script>即可。 <script src"jQuery.js"></script> 2、vue组件中使用jQuery 安装依赖 c…