李宏毅2021春季机器学习课程笔记7: Seq2seq & Transformer

Transformer神经网络学习笔记——Seq2Seq模型和Transformer 此外,decoder首先处理的方式是masked multi-head attention,它和传统的self-attention的区别是某一向量对应的输出只会考虑之前序列的输入。而未来的数据虽然存在,但对decoder处理的当前时间点的数据来说是“不存在”的,而这种“预测”的输出模式这也是masked multi-head attention能输出长度不定的数据的基础。这种的问题就是上一位的输出可能是错误的,而这会导致接下来的输出连锁地出现错误,这也是autoregressive的缺点。 阅读详情

1. Seq2seq

对于seq2seq的问题,有时我们并不知道输出的长度是多少,这时候我们需要机器自己决定输出的长度
比如把语音的英文数据直接输出为对应的中文文字(长度与格式都不一样),我猜这就是呢篇paper叫做Transformer的原因
在这里插入图片描述
在NLP领域很多问题都可以看作成Q&A的问题,这时就转化成立一个对话的seq2seq的问题,但一般会针对各个问题有针对性的进行相关处理最适合的模型。
在这里插入图片描述
我们可以对于文字的语法解析问题也强行转化成一个seq2seq的问题
在这里插入图片描述
我们对于multi-label的问题也可以转化成一个seq2seq的问题
在这里插入图片描述
对于object Detection的问题也可以用seq2seq的模型来硬解在这里插入图片描述

2. Encoder

一般seq2seq的问题都由Encoder和Decoder组成,Encoder处理输入序列,结果给Decoder决定输出
Encoder做的事情就是对输入的一组向量,输出一组相同长度的向量,这点很多模型都可以做到(比如RNN或CNN),在Transformer中就使用了Self-attention。
在这里插入图片描述

2.1 Block

首先,整体的Encoder会分成很多block,最终得到输出,每一个block里面还有很多个layer
在这里插入图片描述
其中每一个Block的结构又被分为一层注意力层和全连接层,
在这里插入图片描述
在transformer,在attention层后还多了一个类似残差网络(residual)的设计,将输入加到了输出中,之后再做了一次layer Normalization(对于同一个feature不同的dimension计算平均值和标准差,进行normalization),这时得到的是全连接的输入,然后对全连接的输出在进行残差操作
在这里插入图片描述
在transformer的block中,输入还加了Positional Encoding(Self-attention中有讲过,位置信息的vector),其中的Attention用的也是Multi-Head Attention,之后再过一个正向网络,Add & Norm就是残差+标准化
这个复杂的block在BERT中也有用到
在这里插入图片描述

2. Decoder

Decoder有两种,比较常见的是Autoregressive(AT),这里用语音辨识作为例子

2.1 Autoregressive(AT)

对于Encoder给出的输入,Decoder要首先给一个BEGIN的特殊符号(用独热码表示),代表开始
然后Decoder会softmax后输出一个向量,这个向量的长度是输出语言单词或词汇种类的个数,这个向量是一个distribution,然后数值最大的值就是第一个输出,如下图就是“机”字,然后这个“机”字就成了下一个输入。
在这里插入图片描述
反复进行这个操作,就得到“机器学习”四个输出
在这里插入图片描述
在transformer中Decoder的结构如下

在这里插入图片描述
通过比较我们可以发现,Encoder和Decoder大概结构类似,只有中间部分不相同,还有Masked Attention在这里插入图片描述
Masked Self-attention相比于Self-attention,每一个输入只能考虑之前输入的咨询,即下图中每个输入左边的输入,而不是考虑全部的输入
因为decoder的步骤中,我们是一个输出成为下一个输入所以决定了这样特殊的Attention结构。

在这里插入图片描述
为了让机器自己学习什么时候结束输出,我们还确定了一个结束符号END,有时候会用跟BEGIN一样的符号表示(因为只会出现两次)

在这里插入图片描述

2.2 Non-autoregressive(NAT)

相比于AT一次一个字产生的形式m,NAT一次产生一整个句子,给多少个START就输出多少个字,这样就得确定输入多少个START标识符的数量
在这里插入图片描述
有几种确定输出数量常见的作法:

  1. 训练一个Classifier,它的输入是Encoder的输出,输出是应该所求的输出数量
  2. 给N个START,假定输出不会超过一个N值,看什么地方输出END,END右边的舍弃

优点:

  1. NAT一次就产生整个句子,比AT的速度快
  2. 能够控制输出的长度,比如语音合成时,将Classifer的输出除2,那么讲话速度就会变两倍快,反之亦然

但是NAT的效果一般不如AT,因为会遇到Multi-modality的问题等等,所以现在很多研究在试图提升NAT的效果。

2.3 Cross attention

连接Encoder和Decoder之间的桥梁叫做Cross attention

在这里插入图片描述
Cross attention的具体结构如下,其中 q q q来自Decoder
在这里插入图片描述
每一次Decoder运作的过程都类似,考虑到了Encoder产生的所有输出
在这里插入图片描述
也有人尝试用Encoder中间层与Decoder中间层做一些Cross Attention等连接方式
在这里插入图片描述

4. Training

我们希望每一个输出的distribution和Ground truth的cross entropy越小越好,最后还有一个结束符的cross entropy
在这里插入图片描述
在训练的时候我们会给Decoder 正确答案作为输入,这叫做Teacher Forcing
在这里插入图片描述

4.1 Copy Mechanism

有很多时候Decoder并不需要自己产生输出,而是可以从输入的东西里复制一些东西(如聊天机器人)
在这里插入图片描述
在做摘要的时候也会需要用这样的功能
在这里插入图片描述
在这里插入图片描述

4.2 Guided Attention

在语音辨识和语音合成中会使用,要求机器在做attention时有固定的模式,比如固定从左到右进行attention
在这里插入图片描述

4.3 Beam Search

在进行输出时,一般会找分数最高的作为输出叫做Greedy Decoding
但有时候我们会先选择一些较差的,但之后的结果反而比较好
所以我们用Beam Search找一些较好的路径
在这里插入图片描述
这种方法有时候好用有时候效果很差 :)
在语言辨识这种输出结果确定的情况下,Beam Search会较好用
在需要机器发挥一些创造力的情况时,Beam Search比较没有帮助
在这里插入图片描述

4.4 Cross entropy & BLEU score

训练用的是Cross entropy但最后测试的是BLEU score,所以之间存在差距
当不知道怎么优化时,用reinforcement learning(RL)硬做!
在这里插入图片描述

4.5 Scheduled Sampling

如果在训练的Decoder一直看到的是完全正确的数据,那么在测试的时候如果出现一步错误,就会步步错
所以从直觉性上我们给Decoder加入一些错误的数据
在这里插入图片描述
这种方法叫做Scheduled Sampling
在这里插入图片描述

为什么说Transformer可以代替seq2seq? 是一篇Google提出的将Attention思想发挥到极致的论文。这篇论文中提出一个全新的模型,叫 Transformer,抛弃了以往深度学习任务里面使用到的 CNN 和 RNN。目前大热的Bert就是基于Transformer构建的,这个模型广泛应用于NLP领域,例如机器翻译,问答系统,文本摘要和语音识别等等方向。 阅读详情

相关推荐

深入理解Transformer的笔记记录(精简版本)----Seq2Seq → Seq2Seq with Attention

比如,图书馆(source)里有很多书(value),为了方便查找,我们给书做了编号(key)。当我们想要了解漫威(query)的时候,我们就可以看看那些动漫、电影、甚至二战(美国队长)相关的书籍。可以看到,将Source中的构成元素想象成是由一系列的数据对构成,此时给定Target中的某个元素Query,通过计算Query和各个Key的相似性或者相关性,得到每个Key对应Value的权重系数,然后对Value进行加权求和,即得到了最终的Attention数值。

1357

自然语言处理: seq2seq与Transformer

1.背景介绍 自然语言处理(NLP)是人工智能的一个重要分支,旨在让计算机理解、生成和处理人类语言。自然语言处理的一个重要任务是机器翻译,即将一种自然语言翻译成另一种自然语言。在过去的几年中, seq2seq 和 Transformer 模型在这方面取得了显著的进展。 seq2seq 模型是基于循环神经网络(RNN)和 attention 机制的,而 Transformer 模型则是基于自注意...

AI天才研究院 1599

李宏毅2021机器学习深度学习课程:从笔记到实战的完整刷课指南

机器学习与深度学习是人工智能领域的两大核心方向,其底层原理涉及神经网络、反向传播、注意力机制等关键技术。理解这些概念不仅能帮助开发者构建高效的模型,还能在图像识别、自然语言处理、生成任务等场景中灵活应用。以李宏毅2021机器学习课程为例,其内容覆盖从基础回归到Transformer、BERT等主流架构,配合HW1至HW14的实战作业,能够帮助学习者系统掌握从数据预处理、模型训练到环境配置的完整工程流程。针对Ubuntu等常见开发环境,本文还提供了驱动、CUDA与PyTorch的安装避坑建议,为初学者和期末复

weixin_32238157的博客 295

Transformer前置知识:Seq2Seq模型

Seq2Seq模型可以生成输入文本的简短摘要。编码器对输入文本进行编码,解码器生成一个较短的摘要。Seq2Seq模型是将一个序列转换为另一个序列的强大工具,广泛应用于各种自然语言处理任务。通过编码器和解码器的组合,Seq2Seq模型能够处理复杂的序列到序列转换任务。引入注意力机制进一步提升了Seq2Seq模型的性能,使其在长序列处理和各种实际应用中表现出色。使用TensorFlow和PyTorch等框架可以方便地实现和训练Seq2Seq模型,为各种实际任务提供解决方案。

Jeremy程序员 2192

Transformer:深入Seq2Seq模型与自注意力机制

本文还有配套的精品资源,点击获取 简介:Transformer模型通过自注意力机制革新了序列到序列的学习,显著提升了NLP任务性能。它的自注意力机制允许模型同时考虑序列中所有元素的关系,提高了计算效率。编码器和解码器的堆叠架构,结合位置编码和多头注意力,使Transformer在机器翻译、文本生成等NLP任务上取得了突破性进展。 1. Transformer模型定义与...

weixin_42601134的博客 1122

【从0到1搞懂大模型】transformer先导:seq2seq、注意力机制、残差网络等(6)

可以发现上面的 Seq2Seq 方式只是将编码器的最后一个节点的结果进行了输出,但是对于一个序列长度特别长的特征来说,这种方式无疑将会遗忘大量的前面时间片的特征。每个单词(而不是一个字母,也不是一句话)是一个输出,为了满足自然语言的特征,单词与单词之间,是有关联的,不是相互独立的。即输入虽然没有序列,但输出是有序列的。即多个输入,如“我”、“打”、“你”,如果时序关系不同,其含义也是不相同的,即为不同的输入,也就需要有不同的输出。输入与输出,都是有多个独立单元组成的序列,但输入和输出单元的个数是相同的。

weixin_41168304的博客 1123

李宏毅2021春季机器学习课程笔记6:Self-attention

如果神经网络输出是一个序列并且长度不一致时,比如输入是一个句子,把句子里面的没一个词汇都表示成一个向量(vector),呢么model的输入就是一个vector set,并且每次的输入长度都不一样。

An_dy_code的博客 3830

SQL注入绕过information_schema:实战技法与替代路径详解

SQL注入是Web安全领域的核心漏洞类型,其原理是通过构造恶意SQL语句,干扰应用程序与数据库的正常交互逻辑,从而窃取或篡改数据。在渗透测试与CTF竞赛中,绕过常见防护措施是提升技术能力的关键。当标准的信息收集方式受阻时,例如无法访问information_schema数据库,攻击者需要掌握替代的元数据获取方法。这些技术价值在于模拟真实环境中日益严密的防御体系,锻炼在受限条件下的系统性信息收集思维。典型的应用场景包括存在WAF过滤、权限限制或编码干扰的实战环境。本文将围绕SQL注入这一核心,深入探讨如何利用

weixin_33980459的博客 430

《(强推)李宏毅 2021/2022 春机器学习课程》学习笔记

啥都会一点的研究生(课程版权归台大李宏毅老师,经授权转载):155 个分 P,总时长约,混合 2021 / 2022 两年春季课程:中文圈最负盛名的机器学习入门课,覆盖"基础 → CNN → Transformer → GAN → BERT → 异常检测 → 可解释性 → 对抗攻击 → 领域自适应 → 强化学习 → 网络压缩 → 终身学习 → 元学习"完整知识版图。本笔记整理(你给的链接是整套合集,不是单集)。⚠️。

bamoom的博客 156

STM32HAL库学习笔记九——LCD显示

本文不会对驱动编写做特别详细的描述,以记录CubeMX的部署流程为主。

weixin_44762233的博客 6919

uniapp: err = err.replace(this._UNI_INPUT_DIR_REG, ‘UNI_TypeError: err.replace is not a function问题修复

问题:uniapp的依赖包出现了问题,需要升级解决办法:升级uniapp依赖包,下载"semver"和”@dcloudio/uni-i18n“两个包,本地锁定postcss为7版本,就解决了。

py_boy的博客 1453

数据分析-深度学习 Day4

参考下图,我们再来看一下,下图中的每一行都是一个样本资料,图中给了batch=3的情况,假设我们对 z1 做了微小的改动,那本来是只会影响到 a1 的输出,然后由于做了Feature Normalization, μ 和 σ 都会发生相应的变化,这会间接影响到每个 ai 的输出,因此,在做了Feature Normalization之后,每个输入都变得相互关联了,这样的话,我们将所有输入资料和网络看做是一个。

weixin_43902376的博客 323

混合动作空间在强化学习中的创新应用:PDQN与MPDQN算法解析

本文深入解析了强化学习中处理混合动作空间的PDQN与MPDQN算法。针对既有离散选择又有连续调节的复杂决策场景,PDQN通过参数化深度Q网络,巧妙结合DQN与DDPG进行交替优化;MPDQN则进一步改进,为每个离散动作提供专属参数评估以减少干扰。文章通过游戏、自动驾驶等实例阐述了其应用价值与面临的挑战。

efc123456的博客 864

诸神缄默不语-个人技术博文与视频目录

诸神缄默不语的优快云博文目录

诸神缄默不语的博客 1万+

骑砍2霸主MOD开发(9)-游戏大地图(MapScene)

Settlement类型由town,castle,castle_village,village,hideout五种类型组成,通过对GameEntity中添加tag实现类型的加载.大地图中军团(MobileParty)的移动速度,AI寻路,食物消耗等均和当前MobileParty所处地形有关,地形统一被定义为TerrainType,类型有森林,荒漠等.MapScene.Read("Main_map", ref sceneInitializationData, "") 装载Main_map大地图。

骑砍战团&霸主MOD开发 1624

多维时空数据介绍(4)多维栅格数据构建

上图中包含了经度、纬度和时间三个维度,其变量为经度、纬度、时间以及降雨量,对应的变量单位为东经多少度、北纬多少度、阳历1895-1-1日开始多少天以及每年降雨多少毫升,其中经度数值4个、纬度数值3个、时间数值2个都是一维的数据,而降雨量是一个包含经度、纬度、时间的三维数组,数值有4*3*2=24个。在GeoScene 中NetCDF数据可以用做多种多维时空数据的数据源,进行创建、可视化和分析,它可以是多维栅格数据、时空立方体,还可以是体元图层,区别在于其所要表示的内容和目的。变量又分为坐标变量和属性变量。

你好,我是小张同学! 1288

详细介绍Seq2Seq、Attention、Transformer !!

本文将从Seq2Seq工作原理、Attention工作原理、Transformer工作原理三个方面,详细介绍Encoder-Decoder工作原理。Encoder-Decoder工作原理1、Seq2Seq工作原理输入一个序列,输出另一个序列。在2014年,Cho等人首次在循环神经网络(RNN)中提出了Seq2Seq(序列到序列)模型。与传统的统计翻译模型相比,Seq2Seq模型极大地简化了序列转换任务的处理流程。核心思想。

不要给自己设限,尝试更多可能(思所向 皆可往) 4024

云原生之容器编排实践-在K8S集群中使用Registry2搭建私有镜像仓库

基于前面搭建的3节点 Kubernetes 集群,今天我们使用 Registry2 搭建私有镜像仓库,这在镜像安全性以及离线环境下运维等方面具有重要意义。作为测试环境,本次使用 Registry2 搭建了私有镜像仓库,实际生产环境建议使用 Harbor;创建了一个 local-storage 的 StorageClass ,并使用本地磁盘的方式创建使用 PV ,实际建议使用 NFS 。

Heartsuit的博客 2463

Transformer总结(二):架构介绍(从seq2seq谈到Transformer架构)

由seq2seq谈到编码器解码器架构,再向其中引入注意力机制,探讨Bahdanau Attention的局限性,介绍Transformer整体的架构,借助动图理解处理流程,辨析解码器训练阶段和预测阶段的差异

qq_52441682的博客 1529

ICC2: place阶段的clock network delay

设置了set_clock_latency之后,即便没长tree,也会有反标值,显示为clock network delay(ideal)和设置的clock latency值,需要注意的是同时设置set_clock_latency和set_clock_latency -source,clock network delay(ideal)值是二者叠加的。我正在「拾陆楼」和朋友们讨论有趣的话题,你⼀起来吧?

m0_61544122的博客 317

SAP B1中文培訓教材_SDK

公司内部培训资料,对开发工具 ,DIAPI, UIAPI,Add-ON有详细解说

Transformer与seq2seq

Transformer与seq2seq Transformer模型的架构与seq2seq模型相似,Transformer同样基于编码器-解码器架构,其区别主要在于以下三点: Transformer blocks:将seq2seq模型重的循环网络替换为了Transformer Blocks,该模块包含一个多头注意力层(Multi-head Attention Layers)以及两个position-...

mayou32215201的博客 4620

ET2012新版免狗免安装绿色软件

ET2012新版免狗免安祖昂绿色软件。,新界面,新视觉,

Transformer、Attention与seq2seq model

一、什么是seq2seq,以及它和Attention机制有什么关系 seq2seq是一种NLP常见的框架——这种框架不要求输入和输出序列是维度是一样的。许多NLP task的输入输出维度不统一,比如机器翻译、图像的图注生成、摘要生成、自动问答等。seq2seq框架大多包含encoder和decoder。 Attention机制只是一种思想——即,人在理解一件事物并作出判断的时候,并不是概览了整...

谁谓荼苦,其甘如荠 1878

Statistics and Machine Learning Toolbox

Statistics and Machine Learning Toolbox(带书签),MATLAB统计学习工具

jdk-8u144-linux-x64.tar.gz.

该资源为搭建Linux系统Java环境用,资源的后缀为tar.gz格式的压缩包

Transformer

Transformer 就是一个Sequence-to-sequence (Seq2seq) 的model。 Sequence-to-sequence 的model就是 input是一个sequence,由机器自己决定output的长度 有什么的应用是Seq2seq的model呢? 举例来说一个很好的应用,就是语音辨识 输入是声音讯号,输出是语音辨识的结果 输入和输出的长度,当然是有一些关系,但是却没有绝对的关系,有机器自己决定要输出多少字。 还有机器翻译,和语音翻译 你可能会说,有了语音辨识和机器翻译

与或 1169

【AI绘图学习笔记】transformer

让我们来总结一下transformer的整个结构。首先transformer用于解决seq2seq的问题,seq2seq可以让机器自行决定输出的seq的长度,因此会表现出一些特殊的性质,尤其是当我们对seq2seq的model进行硬train的时候,机器竟然也能做到较好的效果。transformer的整个结构就是input→Encoder→Decoder→output→Decoder→endinput→En。

milu_ELK的博客 2127

深度学习09 -Transformer2 - 理论篇

参考文档:详解Transformer 1、开局来一张Transformer的整体结构图 2、结构图每步分析 1、Encoder 1、Input Embedding 就是对输入的数据进行向量化编码,可能是one-hot等等 2、Positional Encoding 主要目的是对输入数据的位置有一个确定的前后关系 因为在Self-Attention中,没有考虑到前后位置关系,而是直接从总体进行学习的,因此此处需要加一个可以前后位置关系的表示,在论文中使用的是以下方法: (1)使用了偶数位置用sin,奇数位

weixin_42673117的博客 495

Tensorflow2.0之理解语言的 Transformer 模型

项目介绍 我们将训练一个 Transformer 模型 用于将葡萄牙语翻译成英语。在此之前,建议先了解有关文本生成和注意力机制的相关内容。 Transformer 模型的核心思想是自注意力机制(self-attention)——能注意输入序列的不同位置以计算该序列的表示的能力。Transformer 创建了多层自注意力层(self-attetion layers)组成的堆栈,下文的按比缩放的点积注...

cocofisher的博客 9917
上一篇: 李宏毅2021春季机器学习课程笔记6:Self-attention
下一篇: 【数据集处理】生成voc格式数据集
Andy in boots
博客等级 码龄7年 73粉丝 69原创
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

当前余额3.43元 前往充值 >
需支付:10.00元
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付元
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值