【Transformer】深入理解Transformer模型2——深入认识理解(下)

前言

Transformer模型出自论文:《Attention is All You Need》 2017年

近年来,在自然语言处理领域和图像处理领域,Transformer模型都受到了极为广泛的关注,很多模型中都用到了Transformer或者是Transformer模型的变体,而且对于很多任务,使用加了Transformer的模型可以获得更好的效果,这也证明了Transformer模型的有效性。

由于Transformer模型内容较多,想要深入理解该模型并不容易,所以我分了大概3~4篇博客来介绍Transformer模型,第一篇(也就是本篇博客)主要介绍Transformer模型的整体架构,对模型有一个初步的认识和了解;第二篇是看了b站李宏毅老师的Transformer模型讲解之后,做的知识总结(内容比较多,可能会分成两篇博客);第三篇从代码的角度来理解Transformer模型。

目前我只完成了前两篇论文,地址如下,之后完成第三篇会进行更新。

第一篇:【Transformer】深入理解Transformer模型1——初步认识了解-CSDN博客

第二篇:【Transformer】深入理解Transformer模型2——深入认识理解(上)-CSDN博客

第三篇:【Transformer】深入理解Transformer模型2——深入认识理解(下)-CSDN博客

第四篇:


深入认识理解(下)

Transformer  就是Sequence-to-Sequence(Seq2Seq):输入一个sequence,输出也是一个sequence(输出sequence的长度由机器自己决定)

AT和NAT的比较:(AT和NAT都是Decoder的一种,其中NAT表示Non-Autoregressive)

Decoder和Encoder是怎么互动的?

seq2seq训练的一些tips:

1、copy机制:

即:有些东西不需要模型生成,模型可以直接复制。例如聊天机器人、摘要生成等任务。

2、Beam Search

对于答案唯一的任务(如语音识别任务),Beam Search就比较有效果,而对于答案不唯一,需要机器有一点创造力的任务,Beam Search的效果就不是很好。

3、Scheduled Sampling

原本训练时Decoder看到的输入都是正确的,现在要加入一些错误的案例,即在训练时使Decoder看到的输入中有一部分是错误的。但这种方法会导致模型性能有所下降。

评价指标:

1、PPL(Perplexity)

PPL是nlp领域衡量语言模型好坏的指标,它主要是根据每个词来估计一句话出现的概率,并用句子长度作normalize。公式:

其中,S表示sentence,N表示句子长度,P(wi)是第i个词的概率。第一个词就是p(w1|w0),而w0是BEGIN,表示句子的起始,是个占位符。这个式子可以这样理解:PPL越小,p(wi)越大,我们期望的sentence出现的概率就越高。(PPL越小,模型越好

PPL的影响因素:

(1)训练数据集越大,PPL会下降得更低,1百万数据集和10万数据集训练效果是很不一样的。

(2)数据中的标点会对模型的PPL产生很大影响,一个句号能让PPL波动几十,标点的预测总是不稳定的。

(3)预测语句中的“的、了”等词也对PPL有很大影响,可能“我借你的书”比“我借你书”的指标小几十,但从语义上分析有没有这些停用词并不能完全代表句子生成的好坏。

2、BLEU和ROUGE

BLEU和ROUGE是机器翻译任务中两个常用的评价指标,BLEU根据精确率(Precision)衡量翻译的质量,而ROUGE则根据召回率(Recall)衡量翻译的质量。

BLEU(Bilingual Evaluation Understudy):BLEU是一种用于评估机器翻译结果质量的指标。它主要侧重于衡量机器翻译输出与参考翻译之间的相似程度,着重于句子的准确性和精确匹配。BLEU通过计算N-gram(连续N个词)的匹配程度来估计机器翻译的精确度(Precision)。

ROUGE(Recall-Oriented Understudy for Gisting Evaluation):ROUGE是一种用于评估文本摘要(或其它NLP任务)质量的指标。与BLEU不同,ROUGE主要关注机器生成的摘要中是否捕捉到了参考摘要的信息,着重于涵盖参考摘要的内容和信息的完整性。ROUGE通过计算N-gram的共现情况来评估机器生成的摘要的召回率(Recall)。

简言之,BLEU侧重于衡量翻译的准确性和精确匹配程度,更偏向于Precision,而ROUGE侧重于衡量摘要的信息完整性和涵盖成都,更偏向于Recall。这两个指标在不同的任务和应用场景中都有其重要性,因此在评估nlp模型时,经常会同时使用它们来综合考虑模型的表现。

几个问题详解

1、自注意力机制中为什么要除以

如果有没太看明白的,想深入了解的可以参考这篇博客:

https://blog.csdn.net/qq_44846512/article/details/114364559

2、为什么要使用层归一化?

神经网络中,每一层的计算结果会导致上层的输入分布发生变化。因此,在层数较多的模型中,高层的输入往往会变化巨大,导致上层参数需要根据底层输入数据的分布不断进行调整,而且更高层的参数会对底层输入非常敏感。

为了解决以上问题,采用了层归一化(layer normalization),对每一层的输入进行归一化操作,即计算该层输入的平均值和标准差,将输入的每个维度标准化。

3、残差网络(residual network)

将一个网络层的输出与输入相加的方法来自残差网络,目的是降低计算导数时链式法则路径的平均长度


以上就是剩下的看视频学习的知识总结,还有我看视频时想到的问题的相关解答,希望能够帮助到大家~

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

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

相关文章

【LeetCode每日一题】1185.一周中的第几天(模拟+调用库函数:三种方法)

2023-12-30 文章目录 一周中的第几天方法一:模拟思路步骤 方法二:调用库函数方法三:调用库函数 一周中的第几天 ​ 提示:给出的日期一定是在 1971 到 2100 年之间的有效日期。 方法一:模拟 思路 1.可以根据1970年的…

多输入多输出 | MATLAB实现SSA-CNN麻雀算法优化卷积神经网络多输入多输出预测

多输入多输出 | MATLAB实现SSA-CNN麻雀算法优化卷积神经网络多输入多输出预测 目录 多输入多输出 | MATLAB实现SSA-CNN麻雀算法优化卷积神经网络多输入多输出预测预测效果基本介绍模型背景程序设计参考资料 预测效果 基本介绍 MATLAB实现SSA-CNN麻雀算法优化卷积神经网络多输入…

1.2.0 IGP高级特性之FRR

理论部分参考文档:Segment Routing TI-LFA FRR保护技术 - 华为 一、快速重路由技术 FRR(Fast Reroute)快速重路由 实现备份链路的快速切换,也可以与BFD联动实现对故障的快速感知。 随着网络的不断发展,VoIP和在线视频等业务对实时性的要求越…

海康visionmaster-Group 循环:获取 Group 循环数 据结果的方法

如何获取 Group 循环的所有数据结果? 解答 在 Group 中使用数据集合模块,然后在 Group 的输出设置订阅数据集合模块相关结果,最后在二次开发中获取 Group 的数据结果。如下图所示,参数 out1 为 Group 订阅的数据集合,在…

Vue2中使用echarts,并从后端获取数据同步

一、安装echarts npm install echarts -S 二、导入echarts 在script中导入&#xff0c;比如&#xff1a; import * as echarts from "echarts"; 三、查找要用的示例 比如柱状图 四、初始化并挂载 <template><div id"total-orders-chart" s…

07-C++ 异常

异常 1. 概念 异常事件&#xff08;如&#xff1a;除 0 溢出&#xff0c;数组下标越界&#xff0c;所要读取的文件不存在,空指针&#xff0c;内存不足等等&#xff09; 在C 语言对错误的处理是两种方法&#xff1a; 一是使用整型的 返回值标识错误&#xff1a;二是使用 errno…

分享一个学习Typescript最全的Github网站

一个专注研究Typescript的网站&#xff0c;&#x1f396;&#x1f396;&#x1f396;在这里你可以全面深入学习Typescript相关知识,通过动画方式讲解TS&#xff0c;还有很多常见问题解答。你还可以挑战相应的题目&#xff0c;快来学习吧 我就懒一点&#xff0c;直接原滋原味的…

Django学习3——靓号管理

目录 靓号管理 表结构和数据 根据表结构的需求&#xff0c;在models.py中创建类&#xff08;由类生成数据库中的表&#xff09; 在数据库生成表 自己在数据模拟创建一些数据&#xff1a; 靓号列表 新建靓号 编辑靓号 删除靓号 搜索靓号 靓号管理 表结构和数据 根…

Dirichlet Process (徐亦达老师)狄利克雷过程

混合高斯模型的例子 混合高斯模型 混合高斯模型&#xff08;Mixture of Gaussians&#xff0c;简称GMM&#xff09;是一种概率模型&#xff0c;用于对复杂的数据分布进行建模。它是由多个高斯分布组合而成的混合模型&#xff0c;每个高斯分布&#xff08;称为组件&#xff09;…

安全加固指南:如何更改 SSH 服务器的默认端口号

在 Linux 系统中修改 SSH 服务的默认端口号是一项重要的安全措施&#xff0c;它可以帮助增强系统的安全性。这个过程相对简单&#xff0c;但必须由具有管理员权限的用户来执行。下面&#xff0c;我将向大家介绍如何安全地更改 SSH 端口的具体步骤。 1 备份 SSH 配置文件 在修改…

nodejs+vue网上书城图书销售商城系统io69w

功能介绍 该系统将采用B/S结构模式&#xff0c;使用Vue和ElementUI框架搭建前端页面&#xff0c;后端使用Nodejs来搭建服务器&#xff0c;并使用MySQL&#xff0c;通过axios完成前后端的交互 系统的主要功能包括首页、个人中心、用户管理、图书类型管理、图书分类管理、图书信…

IntelliJ IDEA [警告] pom的依赖中出现警告Provides transitive vulnerable dependency

文章目录 1. 现象2. 为什么出现警告3. 如何对待呢4. 解决5. 解决的好处总结 1. 现象 在我们的工程 pom.xml 中的依赖中&#xff0c;所依赖的 spring-boot-starter-web 出现了警告。 依赖内容 <dependency><groupId>org.springframework.boot</groupId><…