生成模型VAE、GAN和基于流的模型详细对比

在Ian Goodfellow和其他研究人员在一篇论文中介绍生成对抗网络两年后,Yann LeCun称对抗训练是“过去十年里ML最有趣的想法”。尽管GANs很有趣,也很有前途,但它只是生成模型家族的一部分,是从完全不同的角度解决传统AI问题,在本文中我们将对比常见的三种生成模型。

生成算法

当我们想到机器学习时,首先想到的可能是鉴别算法。判别模型是根据输入数据的特征对其标签或类别进行预测,是所有分类和预测解决方案的核心。与这些模型相比生成算法帮助我们讲述关于数据的故事并提供数据是如何生成的可能解释,与判别算法所做的将特征映射到标签不同,生成模型试图预测给定标签的特征。

区别模型定义的标签y和特征x之间的关系,生成模型回答“你如何得到y”的问题。而生成模型模型则是P(Observation/Cause),然后使用贝叶斯定理计算P(Cause/Observation)。通过这种方式,他们可以捕获p(x|y), x给定y的概率,或者给定标签或类别的特征的概率。所以实际上,生成算法也是可以用作分类器的,这可能是因为它们对各个类的分布进行了建模。

生成算法有很多,但属于深度生成模型类别的最流行的模型是变分自动编码器(VAE)、gan和基于流的模型。

VAE

变分自编码器(VAE)是一种生成模型,它“提供潜在空间中观察结果的概率描述”。简单地说,这意味着vae将潜在属性存储为概率分布。

变分自编码器(Kingma & Welling, 2014)或VAE的思想深深植根于变分贝叶斯和图形模型方法。

☞☞☞AI 智能聊天, 问答助手, AI 智能搜索, 免费无限量使用 DeepSeek R1 模型☜☜☜

图片

标准的自动编码器包括2个相似的网络,一个编码器和一个解码器。编码器接受输入并将其转换为更小的表示形式,解码器可以使用该表示形式将其转换回原始输入。它们将输入转换到的潜在空间以及它们的编码向量所在的空间可能不是连续。这对于生成模型来说是一个问题,因为我们都希望从潜在空间中随机采样,或者从连续潜在空间中生成输入图像的变化。

而变分自编码器具有连续的潜在空间,这样可以使随机采样和插值更加方便。为了实现这一点,编码器的隐藏节点不输出编码向量,而是输出两个大小相同的向量:一个均值向量和一个标准差向量。每一个隐藏的节点都认为自己是高斯分布的。这里的均值和标准差向量的第i个元素对应第i个随机变量的均值和标准差值。我们从这个分布向量中采样,解码器从输入向量的概率分布中随机抽样。这个过程就是随机生成。这意味着即使对于相同的输入,当平均值和标准差保持不变时,实际的编码在每一次传递中都会有所不同。

图片

自编码器的损失是最小化重构损失(输出与输入的相似程度)和潜在损失(隐藏节点与正态分布的接近程度)。潜在损失越小,可以编码的信息就越少,这样重构损失就会增加,所以在潜在损失和重建损失之间是需要进行进行权衡的。当潜在损耗较小时,生成的图像与训练的的图像会过于相似,效果较差。在重构损失小的情况下,训练时的重构图像效果较好,但生成的新图像与重构图像相差较大,所以需要找到一个好的平衡。

VAE可以处理各种类型的数据,序列的和非序列的,连续的或离散的,甚至有标签的或无标签的,这使它们成为非常强大的生成工具。

但是VAE的一个主要缺点是它们生成的输出模糊。正如Dosovitskiy和Brox所指出的,VAE模型往往产生不现实的、模糊的样本。这是由数据分布恢复和损失函数计算的方式造成的。Zhao等人在2017年的一篇论文中建议修改VAEs,不使用变分贝叶斯方法来提高输出质量。

图片

生成对抗的网络

生成对抗网络(GANs)是一种基于深度学习的生成模型,能够生成新内容。GAN架构在2014年Ian Goodfellow等人题为“生成对抗网络”的论文中首次被描述。

GANs采用监督学习方法,使用两个子模型:生成新示例的生成器模型和试图将示例分类为真实或假(生成的)的鉴别器模型。

生成器:用于从问题域生成新的似是而非例子的模型。

鉴频器:用于将示例分类为真实的(来自领域)或假的(生成的)的模型。

这两个模型作为竞争对手进行训练。生成器直接产生样本数据。它的对手鉴别器,试图区分从训练数据中提取的样本和从生成器中提取的样本。这个竞争过程在训练中持续进行,直到鉴别器模型有一半以上的时间无法判断真假,这意味着生成器模型正在生成非常逼真的数据。

图片

当鉴别器成功地鉴别出真假样本时,它会得到奖励它的参数保持不变。如果生成器判断错误则受到惩罚,更新其参数。在理想情况下,每当鉴别器不能分辨出差异并预测“不确定”(例如,50%的真假)时,生成器则能从输入域生成完美的副本。

可灵大模型 可灵大模型

可灵大模型(Kling)是由快手大模型团队自研打造的视频生成大模型

可灵大模型 214 查看详情 可灵大模型

但是这里每个模型都可以压倒另一个。如果鉴别器太好,它将返回非常接近0或1的值,生成器则难以获得更新的梯度。如果生成器太好,它就会利用鉴别器的弱点导致漏报。所以这两个神经网络必须具有通过各自的学习速率达到的相似的“技能水平”,这也是我们常说的GAN难以训练的原因之一。

生成器模型

生成器取一个固定长度的随机向量作为输入,在定义域内生成一个样本。这个向量是从高斯分布中随机抽取的。经过训练后,这个多维向量空间中的点将对应于问题域中的点,形成数据分布的压缩表示,这一步类似于VAE,这个向量空间被称为潜在空间,或由潜在变量组成的向量空间。GAN的生成器将平均选定的潜在空间中的点。从潜在空间中提取的新点可以作为输入提供给生成器模型,并用于生成新的和不同的输出示例。训练结束后,保留生成器模型,用于生成新的样本。

鉴别器模型

鉴别器模型将一个示例作为输入(来自训练数据集的真实样本或由生成器模型生成),并预测一个二进制类标签为real或fake(已生成)。鉴别器是一个正常的(并且很容易理解的)分类模型。

训练过程结束后,鉴别器被丢弃,因为我们感兴趣的是生成器。当然鉴别器也可用于其他目的使用

GANs可以产生可行的样本但最初版GAN也有缺点:

图像是由一些任意的噪声产生的。当生成具有特定特征的图片时,不能确定什么初始噪声值将生成该图片,而是需要搜索整个分布。GAN只区别于“真实”和“虚假”图像。但是没有约束说“猫”的照片必须看起来像“猫”。因此,它可能导致生成的图像中没有实际的对象,但样式看起来却很相似。GANs需要很长时间来训练。一个GAN在单个GPU上可能需要几个小时,而单个CPU可能需要一天以上的时间。

基于流的模型

基于流的生成模型是精确的对数似然模型,有易处理的采样和潜在变量推理。基于流的模型将一堆可逆变换应用于来自先验的样本,以便可以计算观察的精确对数似然。与前两种算法不同,该模型显式地学习数据分布,因此损失函数是负对数似然。

图片

在非线性独立分量分析中,流模型f被构造为一个将高维随机变量x映射到标准高斯潜变量z=f(x)的可逆变换。流模型设计的关键思想是它可以是任意的双射函数,并且可以通过叠加各个简单的可逆变换来形成。总结来说:流模型f是由组成一系列的可逆流动作为f(x) =f1◦···◦fL(x),与每个fi有一个可处理的逆和可处理的雅可比矩阵行列式。

基于流的模型有两大类:带有标准化流模型和带有试图增强基本模型性能的自回归流的模型。

标准化流模型

对于许多机器学习问题来说,能够进行良好的密度估计是必不可少的。但是它在本质上是复杂的:当我们需要在深度学习模型中进行反向传播时,嵌入的概率分布需要足够简单,这样才可以有效地计算导数。传统的解决方案是在潜变量生成模型中使用高斯分布,尽管大多数现实世界的分布要复杂得多。标准化流(NF)模型,如RealNVP或Glow,提供了一个健壮的分布近似。他们通过应用一系列可逆变换函数将一个简单的分布转化为一个复杂的分布。通过一系列的变换,根据变量变换定理,可以反复地用新变量替换原变量,最后得到最终目标变量的概率分布。

自回归流的模型

当标准化流中的流动变换被框定为一个自回归模型,其中向量变量中的每个维度都处于先前维度的条件下,流模型的这种变化称为自回归流。与具有标准化流程的模型相比,它向前迈进了一步。

常用的自回归流模型是用于图像生成的PixelCNN和用于一维音频信号的WaveNet。它们都由一堆因果卷积组成——卷积运算考虑到顺序:在特定时间戳的预测只使用过去观察到的数据。在PixelCNN中,因果卷积由一个带掩码的积核执行。而WaveNet将输出通过几个时间戳转移到未来时间。

图片

基于流的模型在概念上对复杂分布的建模是非常友好的,但与最先进的自回归模型相比,它受到密度估计性能问题的限制。尽管流模型最初可能会替代GANs产生良好的输出,但它们之间的训练计算成本存在显著差距,基于流的模型生成相同分辨率的图像所需时间是GANs的几倍。

总结

每一种算法在准确性和效率方面都有其优点和局限性。虽然GANs和基于流程的模型通常生成比VAE更好或更接近真实的图像,但后者比基于流程的模型更具有更快时间和更好的参数效率,下面就是三个模型的对比总结:

图片

可以看到GAN因为并行所以它的效率很高,但它并不可逆。相反,流模型是可逆的但是效率却不高,而vae是可逆并且高效的,但不能并行计算。我们可以根据这些特性,在实际使用时根据产出、训练过程和效率之间进行权衡选择。

以上就是生成模型VAE、GAN和基于流的模型详细对比的详细内容,更多请关注创想鸟其它相关文章!

版权声明:本文内容由互联网用户自发贡献,该文观点仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。
如发现本站有涉嫌抄袭侵权/违法违规的内容, 请发送邮件至 chuangxiangniao@163.com 举报,一经查实,本站将立刻删除。
发布者:程序猿,转转请注明出处:https://www.chuangxiangniao.com/p/567969.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
教你怎么在Sublime3中设置自己的代码片段
上一篇 2025年11月10日 04:26:44
linux系统一般用来干嘛
下一篇 2025年11月10日 04:26:52

相关推荐

  • 人工智能如何为 C 语言代码提供安全增强功能?

    人工智能通过提供以下功能来提升 c 代码安全性:静态分析:识别潜在安全漏洞(例如缓冲区溢出);动态分析:监控代码执行并检测异常行为;模糊测试:生成随机输入以测试代码的异常行为;自动化修复:建议修复措施或自动生成补丁程序。 人工智能赋能 C 代码:提升安全性 人工智能 (AI) 在 C 代码安全方面发…

    2026年5月10日
    100
  • ChromaDB向量嵌入的有效持久化策略

    本文详细介绍了如何利用langchain中chromadb的`persist_directory`功能,高效地持久化存储向量嵌入。通过将生成的嵌入数据保存到本地磁盘,可以有效避免重复计算,显著提升工作流程效率。教程将涵盖持久化chromadb实例的创建与后续加载的完整过程。 在处理大规模文本数据并生…

    2026年5月10日
    000
  • DeAgentAI(AIA)币是什么?值得投资吗?DeAgentAI上线指南、价格预测及路线图介绍

    目录 DeAgentAI (AIA) 上市:关键细节和交易时间表关键上市信息DeAgentAI(AIA)价格预测:上市后DeAgentAI (AIA) 是什么:解释DeAgentAI (AIA) 为何脱颖而出?DeAgentAI (AIA) 生态系统:其运作方式认识 DeAgentAI (AIA) …

    2026年5月10日
    000
  • 使用C++构建机器学习模型:初学者入门指南

    使用 c++++ 构建机器学习模型的初学者指南。首先安装编译器和线性代数库,创建数据集,建立线性回归模型,优化模型权重以训练模型,然后使用模型预测目标值。实战案例演示了使用房屋面积和价格数据集预测房屋价格。 使用 C++ 构建机器学习模型:初学者入门指南 简介 利用机器学习构建强大的预测模型对于解决…

    2026年5月10日
    000
  • typescript用来干嘛_typescript的作用

    TypeScript 是一种用于构建大型复杂应用程序的开源编程语言,它扩展了 JavaScript 的功能,具有以下作用:类型系统:编译时检查类型错误,提高代码可靠性。面向对象编程特性:支持类、接口、抽象类,增强代码组织性和维护性。模块系统:分解程序为可重用模块,提升可维护性和可扩展性。全面的类型推…

    2026年5月10日
    000
  • C++ 框架如何支持人工智能模型的持续改进和维护?

    C++ 框架助力持续改进和维护 AI 模型 简介 训练和部署 AI 模型是一项持续的过程,需要不断改进和维护。C++ 框架提供了强大的工具和特性,以支持这些活动。 持续改进 立即学习“C++免费学习笔记(深入)”; 数据收集和特 征工 程 C++ 框架如 TensorFlow 和 PyTorch 提…

    2026年5月10日
    000
  • C++框架在人工智能领域的应用

    c++++ 框架在 ai 领域应用广泛,提供速度、效率和灵活性的优势。流行的 ai c++ 框架包括 tensorflow、pytorch、caffe2、mxnet 和 theano。这些框架用于开发图像分类、自然语言处理和机器学习等应用程序。 C++ 框架在人工智能领域的应用 C++ 以其速度、效…

    2026年5月10日
    000
  • 人工智能助力 C 代码集成和 DevOps实践

    通过将人工智能 (ai) 集成到 c 代码集成和 devops 实践中,可以提高效率和质量:代码审查: ai 工具可以分析代码并识别潜在问题,评估质量指标,例如可读性、可维护性和安全风险。(实战案例:codescene)测试自动化: ai 算法可以生成测试用例并执行测试,提高测试覆盖率。(实战案例:…

    2026年5月10日
    000
  • Holoworld AI(HOLO)是什么币?怎么买?未来能涨到多少

    Holoworld AI(HOLO)是AI驱动虚拟社交平台的原生代币,用于生态内功能与激励。用户可通过中心化平台(如用USDT交易)或去中心化平台获取HOLO,需注意合约地址准确性与网络手续费。其市场表现受项目团队、技术进展、代币经济模型、市场环境及社区活跃度等多重因素影响,且所有数字资产交易均伴随…

    2026年5月10日
    200
  • 如何运用人工智能提升 C 代码可维护性?

    如何运用人工智能提升 C 代码可维护性 在 C 编程中,可维护性是至关重要的,它可以确保代码易于理解、修改和调试。人工智能 (AI) 可以成为提升 C 代码可维护性的强大工具。 1. 代码生成和重构 AI 可以用于生成新的代码或重构现有代码,使其更易于维护。例如,代码生成器可以根据指定规范自动生成代…

    2026年5月10日
    000
  • 使用C++实现机器学习算法:常见挑战及解决方案

    c++++ 中机器学习算法面临的常见挑战包括内存管理、多线程、性能优化和可维护性。解决方案包括使用智能指针、现代线程库、simd 指令和第三方库,并遵循代码风格指南和使用自动化工具。实践案例展示了如何利用 eigen 库实现线性回归算法,有效地管理内存和使用高性能矩阵操作。 C++ 机器学习算法:常…

    2026年5月10日
    000
  • Solana基金会主席 Lily 上海演讲:万物皆可代币化

    在 2025 年 10 月 23 日至 27 日举行的第 11 届全球区块链峰会期间,Solana 基金会主席 Lily Liu 在上海区块链国际周上发表了主题演讲,阐述了“万物皆可代币化”的愿景,并分享了 Solana 在全球金融基础设施建设方面的战略布局。 Solana 的愿景:万物皆可代币化 …

    2026年5月10日
    000
  • html搜索框如何跳转_实现HTML搜索框跳转搜索结果【结果】

    HTML搜索框跳转失败多因表单action或参数错误,可通过五种方法解决:一、百度用form提交至https://www.baidu.com/s?q=关键词;二、Google类似,action为https://www.google.com/search;三、JavaScript拼接必应URL并loc…

    2025年12月23日
    400
  • 从OpenAI API JSON响应中高效提取生成文本内容

    本教程详细指导开发者如何从openai api返回的json格式响应中准确提取生成的文本。通过利用`json.parse()`方法解析响应字符串,并访问`choices[0].text`属性,可以安全、高效地获取核心文本内容,从而避免直接字符串操作的潜在问题,确保api数据处理的健壮性。 OpenA…

    2025年12月23日
    500
  • HTML语义化未来趋势有哪些_HTML语义化在Web发展中的趋势与展望

    HTML语义化正朝着智能、高效、包容发展,深度融合结构化数据与ARIA属性,提升机器理解;2. 组件化趋势推动可复用语义结构普及,Web Components实现自定义语义标签;3. 语义化助力性能优化与可访问性,支持懒加载与内容优先级划分;4. AI工具将自动生成语义化代码并辅助检测,降低实践门槛…

    2025年12月23日
    300
  • 如何用HTML插入标签云组件_HTML CSS3变换与随机颜色生成算法

    使用HTML构建标签结构,CSS3添加旋转与过渡效果,JavaScript生成随机HSL颜色并设置字体大小,实现动态交互的标签云组件。 要在网页中实现一个动态的标签云组件,结合 HTML、CSS3 变换和随机颜色生成算法,可以按照以下步骤操作。这个组件不仅能提升页面视觉效果,还能通过色彩和旋转增加交…

    2025年12月23日
    000
  • HTML数据如何用于机器学习 HTML数据预处理的特征工程方法

    首先解析HTML提取文本与元信息,再从结构、文本、样式三方面构建特征:1. 用BeautifulSoup等工具解析HTML,提取标题、正文、链接及属性;2. 统计标签频率、DOM深度、路径模式等结构特征;3. 清洗文本并采用TF-IDF或词嵌入向量化;4. 提取class、id、样式、脚本等交互与视…

    2025年12月23日
    000
  • 如何在Go Gin应用中集成前端JavaScript模块(如Sentry)

    本文探讨了在Go Gin框架下,通过HTML模板服务前端页面时,如何有效集成JavaScript模块(如Sentry)。针对浏览器不直接支持Node.js模块导入语法的问题,文章详细阐述了利用CDN引入Sentry SDK的解决方案,并提供了具体的代码示例,帮助开发者实现前端错误监控功能,避免了复杂…

    2025年12月23日
    100
  • HTML数据如何实现数据智能 HTML数据智能分析的技术架构

    实现HTML数据智能分析需构建包含采集、解析、存储、分析与可视化的闭环系统,首先通过爬虫技术获取网页数据并进行清洗标准化,接着利用DOM树分析与NLP技术提取结构化信息,随后将数据存入合适数据库或数据仓库并建立元数据管理机制,进而应用AI模型开展分类、情感分析、趋势预测与知识图谱构建等智能分析,最终…

    2025年12月23日
    100
  • html官网浏览入口_html网站设计免费平台

    html官网浏览入口在https://www.codepen.io,该平台支持实时预览代码、创建Pen项目、Fork开源示例,可添加外部资源,具备点赞评论收藏等社区互动功能,设有挑战活动与作品集分类,开放API接口,界面简洁适合初学者,在线编写无需配置环境,支持多种预处理器和响应式测试。 html官…

    2025年12月23日
    000

发表回复

登录后才能评论
关注微信