AutoEncoding与AutoRegressive:区别,联系和应用

news2024/11/19 17:30:57

关于AutoEncoding(AE)和AutoRegressive(AR)

前几天看了Ilya在Simons上做的关于Generative Model的演讲,介绍了OpenAI现在做的一些AutoRegressive的工作,昨天又看到LeCun宣称Auto-Regressive LLMs are doomed。平时看的文章也常常提到自监督学习里的两种范式AutoEncoding和AutoRegressive,之前也只是简单的理解为GPT系列属于AutoRegressive,Bert系列属于AutoEncoding。遂决定写一篇文章详细记录一下这两者的区别和联系

encoder-decoder 架构

在此之前,我们需要了解编码器-解码器架构的发展,因为每种这两种架构类型都与这种思维方式相关。

编码器-解码器体系结构由两个部分组成,编码器解码器(显然🤣)。

简要的说,编码器的作用是将输入数据转换为潜在表示或特征向量。它接受输入数据,如图像、文本或音频等,然后对其进行处理和编码,最终生成一个固定长度的向量表示。编码器的设计目标是提取输入数据的关键特征,捕捉数据中的重要信息,并将其编码为潜在空间中的表示。这个潜在表示通常具有较高的维度,可以看作是输入数据的抽象表示。编码器的输出可以用于后续任务,如重构、分类、聚类等。

值得一提的是,对于编码过后的向量,实际上我们不能轻易理解他为啥是这样表示的,因为没有涉及语义,这个映射是学习出来的

而解码器的作用是将潜在表示或特征向量转换回原始数据的形式。它接受编码器生成的潜在表示,并将其解码为与输入数据相匹配的形式。解码器的设计目标是通过逆向操作重建原始数据,尽可能地恢复输入数据的细节和结构。解码器在生成过程中可以根据需要与外部信息进行交互,例如生成图像的像素值或语言模型中的下一个词语。解码器的输出通常是重构的数据或生成的数据样本

总的来说,编码器将输入数据转换为高维空间中的潜在表示,而解码器将潜在表示转换回原始数据的形式。相当于一个进行概括然后加密,一个用来解密
在这里插入图片描述

如果同时训练编码器和解码器,我们就创建了所谓的sequence2sequence模型。如果我们只训练一个部分,我们会得到一个自回归(AutoRegressive)或一个自动编码(AutoEncoding)模型

sequence2sequence

顺便提一下,Sequence-to-Sequence是一种能够摄取特定类型的序列并输出另一种序列的架构。

Transformer实际上就是一种sequence2sequence模型,下面就是那张非常非常非常有名的Transformer结构图
在这里插入图片描述
在Transformer中,编码器段确保将输入转换为抽象的高维中间表示。解码器段采用此表示形式,提供有关输入和目标序列的上下文,并确保可以为源语言中的序列预测目标语言中的适当序列

自回归模型

为什么要AR模型

自然语言处理中的任务之一是语言的生成,或者更正式的说是自然语言生成(NLG)。使用sequence2sequence模型生成文本是不太容易的,因为在预测的时候我们通常无法获得完整的目标序列。实际上只是在做基于过去输入的next word prediction。或者换句话说,我们使用的是过去预测的单词来预测现在的单词。

为了解决这些问题,提出了自回归(Autoregressive,AR)架构。在 AR 架构中,生成过程变成了逐个元素的生成,即从左到右生成序列中的每个元素,而不是一次性生成整个序列。这样的架构允许模型在生成过程中根据已生成的部分来动态调整下一个元素的预测,减少累积错误的风险。
在这里插入图片描述

训练AR模型

采用AR方法,就是从左到右逐个生成单词的过程。在这种方法中,生成第i个单词时,只能依赖于它之前的第1到第(i-1)个单词,而不能看到后面的单词。这种逐步生成的方式保持了模型的自回归性质,每个生成的单词都是基于前面已生成的单词的结果。

适用的任务
  • 语言建模(主要):AR模型可以用于语言建模,即根据前面的单词或字符预测下一个单词或字符。比如可以聊天的ChatGPT

  • 时间序列预测:例如股票价格预测、天气预测、交通流量预测等。通过分析过去的观测值,AR模型可以预测未来的观测值。

  • 机器翻译:AR模型可以用于机器翻译任务,将源语言的序列翻译成目标语言的序列。在这种情况下,AR模型可以根据源语言的部分序列来逐步生成目标语言的序列。

自编码模型

为什么用AE模型

自回归模型在进行语言建模(即自然语言生成)时非常有效。然而,并非所有任务都适用于自回归模型,比如自然语言理解。

一个很重要的原因是。自然语言生成任务和自回归模型不一定需要对语言进行深入理解,只要能够成功生成文本即可。

如果想要让模型所谓的理解自然语言输入,然后比较好的泛化到下游任务上,这个时候自编码模型就比较能够发挥作用(这里只是我的个人理解),一个典型的例子就是Bert。因为自动编码器的目的是通过训练网络忽略信号“噪声”来学习一组数据的表示(编码),通常用于降维。相当于与归约侧一起,学习重建侧,其中自动编码器尝试从归约编码生成尽可能接近其原始输入的表示从某种意义上来说就是对于输入的自然语言有了一定程度上的理解。

在Hugging Face上的定义是:自动编码模型是通过以某种方式损坏输入标记并尝试重建原始句子来预训练的。

如何训练AE模型

在这里插入图片描述

以bert为例,他的整个架构是一个典型的Transformer模型,用于语言模型的预训练阶段采用了自编码器(AE)方法。换句话说,训练的时候在输入句子中,除了被掩码(Mask)的单词外,任意两个未被掩码的单词之间是可见的,但被掩码的单词之间相互独立且不可见。当要预测一个被掩码的单词时,所有其他被掩码的单词不起作用,但未被掩码的所有单词都可以参与当前单词的预测。

适用的任务
  • 特征提取:自编码器可以用作特征提取器,将高维输入数据转换为低维表示。这些低维表示可以用于其他机器学习任务,如分类、聚类、降维等。

  • 数据去噪:自编码器可以通过学习从损坏或噪声数据中重构原始数据的能力来进行数据去噪。在训练过程中,自编码器被要求将损坏或噪声数据作为输入,并尽可能准确地重构原始数据。

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

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

相关文章

ES6新特性:变量的解构赋值

文章目录 1 数组的解构赋值1.1 基本用法1.2 交换变量的值1.3 注意事项 2 对象的解构赋值2.1 基本用法2.2 属性重命名2.3 注意事项 ES6允许按照一定模式,从数组和对象中提取值,对变量进行赋值,这被称为解构(Destructuring&#xff…

【Flutter】自定义分段选择器Slider

【Flutter】ZFJ自定义分段选择器Slider 前言 在开发一个APP的时候,需要用到一个分段选择器,系统的不满足就自己自定义了一个; 可以自定义节点的数量、自定义节点的大小、自定义滑竿的粗细,自定义气泡的有无等等… 基本上满足你…

Docker实战之二

一、前言 前一篇 Docker实战之一 我们介绍了Dokcer 镜像和容器基本概念,这一节我们来具体制作一个镜像文件并进行快速部署,这个镜像文件是我们的测试环境,主要包含JDK1.8、Nginx、Git、Node、Gradle,基础镜像为CentOS&#xff0c…

进击的零跑:拿巨头的钱,把中国车打进欧洲市场

作者 | 张祥威 编辑 | 德新 造车新势力中,零跑属于不惹事,独自在角落低调发育的这一类。偶尔高调门喊一声要干掉特斯拉,围观的人也是笑一笑不当回事儿,于是又回去默默卖车。 声量一般,卖车还行。 行业里每次晒数据&…

开发实践|三步搞定爆款直播间小游戏

直播间小游戏引爆社交新潮流 近年来,直播行业迅速发展,特别是在抖音平台,直播间的吸引力已远超传统的短视频内容。而在这波直播风潮中,有一种玩法让我格外留意——直播间小游戏。经常刷抖音的朋友应该在直播间看到过这样的场景&a…

SIT3491ISO具有隔离功能,256 节点,全双工 RS422/RS485 芯片

SIT3491ISO 是一款电容隔离的全双工 RS-422/485 收发器,总线端口 ESD 保护能力 HBM 达到 15kV 以上,功能完全满足 EIA-422 以及 TIA/EIA-485 标准要求的 RS-422/485 收发器。 SIT3491ISO 包括一个驱动器和一个接收器,两者均…

为什么 Python 适合初学者?如何开始学习 Python?

与其他编程语言相比较,Python有着更为简单的语法,所以学习Python对于很多刚进入编程领域的初学者来说是一个很好的选择。 Python还是一门应用领域很广的编程语言,这也就意味着你可以在各种各样的工作和领域中使用它。 跟很多刚进入技术领域…

C++in/out输入输出流[IO流]

文章目录 1. C语言的输入与输出2.C的IO流2.1流的概念2.2CIO流2.3刷题常见while(cin >> str)重载强制类型转换运算符模拟while(cin >> str) 2.4C标准IO流2.5C文件IO流1.ifstream 1. C语言的输入与输出 C语言用到最频繁的输入输出方式就是scanf ()与printf()。 scanf…

jquery中定义的动态生成的标签元素,点击事件该方法未定义Uncaught ReferenceError: goHere is not defined

如下图: 在点击动态生成的弹窗里的html中的企业列表标签时(该标签绑定了点击事件-goHere), 会提示:Uncaught ReferenceError: goHere is not defined 生成的html代码: // 自定义content function showContent(a) {if (a != undefined) {return `<div class="…

Centos7 安装和配置 Redis 5 教程

在Centos上安装Redis 5&#xff0c;如果是 Centos8&#xff0c;那么 yum 仓库中默认的 redis 版本就是 5&#xff0c;直接 yum install 即可。但如果是 Centos7&#xff0c;yum 仓库中默认的 redis 版本是 3 系列&#xff0c;比较老&#xff1a; 通过 yum list | grep redis 命…

全民拼购模式:无论成败皆有所得

什么是全民拼购模式&#xff1f; 全民拼购模式是一种基于社交电商的新型模式&#xff0c;它通过拼团、拼购等方式&#xff0c;让消费者享受更优惠的价格和更便捷的购物体验。这种模式的出现&#xff0c;不仅为电商平台注入了新的活力&#xff0c;也成为了消费者追求高性价比商…

物联网AI MicroPython传感器学习 之 LCD1602液晶屏

学物联网&#xff0c;来万物简单IoT物联网&#xff01;&#xff01; 一、产品简介 LCD1602 字符型液晶显示模块是专门用于显示字母、数字、符号等的点阵型液晶显示模块。分4位和8位数据传输方式。提供5x7点阵游标的显示模式。提供显示数据缓冲区 DDRAM、字符发生器CGROM和字符…

双十一某宝、某东活动脚本

一、前言 双十一马上就快开始了&#xff0c;各大网购平台的优惠活动开展的如火如荼&#xff0c;羊毛党们也是摩拳擦掌&#xff0c;蠢蠢欲动。为了提高效率&#xff0c;自动化脚本应运而生&#xff0c;今天&#xff0c;小编为大家带来的就是这么三款自动化点击软件。主要是针对…

protobuf对象与JSON相互转换

除了之前的 protobuf-java依赖之外&#xff0c;还需要引入 protobuf-java-uti 依赖&#xff1a; <!-- https://mvnrepository.com/artifact/com.google.protobuf/protobuf-java --><dependency><groupId>com.google.protobuf</groupId><artifactId&…

linux可视化运维工具

今天推荐两个linux可视化的运维工具Cockpit和orion-ops Cockpit Cockpit是CentOS 8默认内置的一个基于Web的可视化管理工具。它提供了对一系列常见命令行管理操作的图形化支持&#xff0c;包括用户管理、防火墙管理、服务器资源监控等等。方便易用的Cockpit号称是适用于所有人…

一文解决:Swagger API 未授权访问漏洞问题

Swagger 是一个用于设计、构建、文档化和使用 RESTful 风格的 Web 服务的开源软件框架。它通过提供一个交互式文档页面&#xff0c;让开发者可以更方便地查看和测试 API 接口。然而&#xff0c;在一些情况下&#xff0c;未经授权的访问可能会导致安全漏洞。本文将介绍如何解决 …

基于SpringBoot + Vue的学生成绩管理系统的设计与实现源码及搭建视频

基于SpringBoot Vue的学生成绩管理系统的设计与实现 引言 1.1目的 该文档的目的是描述学生成绩管理系统的概要设计&#xff0c;主要内容包括系统功能简介、系统结构设计、模块设计和界面设计等。 本文档的预期读者包括&#xff1a;产品设计者、编程人员、系统用户。 1.2 范围…

高品质工地建筑模板,防水耐用,易脱模

欢迎选购我们的产品&#xff1a;高品质工地建筑模板。作为一家专业厂家&#xff0c;我们提供适用于高层建筑的建筑模板&#xff0c;具有出色的防水耐用性能&#xff0c;且不易开胶。1. 高品质工地建筑模板&#xff1a;我们的建筑模板经过精心设计和制作&#xff0c;以确保其高品…

Python 中多态性的示例和类的继承多态性

单词 “多态” 意味着 “多种形式”&#xff0c;在编程中&#xff0c;它指的是具有相同名称的方法/函数/操作符&#xff0c;可以在许多不同的对象或类上执行。 函数多态性 一个示例是 Python 中的 len() 函数&#xff0c;它可以用于不同的对象。 字符串 对于字符串&#xf…

新的iLeakage攻击从Apple Safari窃取电子邮件和密码

图片 导语&#xff1a;学术研究人员开发出一种新的推测性侧信道攻击&#xff0c;名为iLeakage&#xff0c;可在所有最新的Apple设备上运行&#xff0c;并从Safari浏览器中提取敏感信息。 攻击概述 iLeakage是一种新型的推测性执行攻击&#xff0c;针对的是Apple Silicon CPU和…