生成模型概述

news2024/11/17 18:27:02

文章目录

  • 生成模型概述
    • 一、生成模型类型
    • 二、生成对抗网络(GANs)
    • 三、自回归模型(Autoregressive Models)
    • 四、扩散模型(Diffusion Models)
    • 五、流模型(Flow-based Models)
    • 参考

生成模型概述

一、生成模型类型

  生成模型是深度学习领域的一类模型,它们的目标是学习如何生成数据的分布,从而能够生成新的、与真实数据类似的样本。

  以下是一些主要的生成模型:

  • 生成对抗网络(GANs):
    GAN由两个部分组成:生成器(生成新数据)和判别器(区分真实数据和生成的数据)。这两部分在训练过程中相互竞争,提高彼此的性能。
    应用:图像生成、艺术创作、数据增强、风格迁移等。

  • 自回归模型(Autoregressive Models):
    如Transformer在自然语言处理领域的应用。这些模型预测序列中的下一个元素,基于前面的元素。
    应用:文本生成、机器翻译等。

  • 扩散模型(Diffusion Models):
    这类模型通过将数据转化为噪声,然后再逆过程中重建原始数据,来生成新的数据样本。
    应用:高质量图像生成、文本到图像生成等。

  • 流模型(Flow-based Models):
    如RealNVP和Glow,这些模型通过可逆的神经网络变换实现从数据空间到潜在空间的映射。
    应用:图像生成、数据去噪、概率建模等。

  • 变分自编码器(VAEs):

    VAE是一种基于贝叶斯推理的生成模型,它通过编码器将数据映射到潜在空间,然后通过解码器从潜在空间重构数据。
    应用:图像生成、图像去噪、推荐系统等。

  • 循环神经网络(RNNs)及其变体(如LSTM、GRU):

    RNN及其变体特别擅长处理序列数据,可以用于生成文本、音乐等序列数据。
    应用:文本生成、语音合成、音乐创作等。

  其中,较为常见的方法主要为:生成对抗网络(GANs),自回归模型(Autoregressive Models),扩散模型(Diffusion Models)和Flow-base model。

二、生成对抗网络(GANs)

生成对抗网络的基本原理可以看左侧的示意图。

在这里插入图片描述
  2014 年,Ian J.Goodfellow 提出了 GAN,它是由一个生成器 G 和一个判别器 D 组成。生成网络产生「假」数据,并试图欺骗判别网络;训练的时候,判别网络对生成数据进行真伪鉴别,试图正确识别所有「假」数据。在训练迭代的过程中,两个网络持续地进化和对抗,直到达到平衡状态,判别网络无法再识别「假」数据。

  推理的时候,只要保留生成器 G 就行了,输入一个随机噪声 vector,生成一张图像。

  右侧是一个经典的 AttnGAN 的框架,是一个引入了 attention 结构(使得图片生成局部能够和文本描述更加匹配)、并且从粗粒度到细粒度 coarse to fine 进行生成的框架,在当时还是取得了不错的生成效果。

  GAN 的优势是在一些窄分布(比如人脸)数据集上效果很好,采样速度快,方便嵌入到一些实时应用里面去。

  缺点是比较难训练、不稳定,而且有 Mode Collapse(模式崩塌)等问题。

三、自回归模型(Autoregressive Models)

  第二种方法是自回归方式,自回归方式在自然语言中用的比较多,像大家听到最多的比如 GPT 系列。

在这里插入图片描述

  这个方法比较出名的就是 VQGAN,还有就是 openai 的 dall-e。

  VQGAN 是将类似的思路拓展到了视觉生成领域。他主要包括两个步骤:

  第一步:将原始的 RGB 图像通过 vqvae 或者 vqgan 离散压缩成一系列的 视觉 code,这些视觉 code 可以利用一个训练得到的 decoder 恢复出原始的图像信息,当然会损失一些细节,但整体恢复质量还是 OK 的,特别是加了 GAN loss 的。

  第二步:利用 transformer 或者 GPT,来按照一定的顺序,逐个的去预测每个视觉 code,当所有 code 都预测完了之后,就可以用第一步训练好的 Decoder 来生成对应的图像。因为每个 code 预测过程是有随机采样的,因此可以生成多样性比较高的不同图像。

四、扩散模型(Diffusion Models)

  扩散模型也就是我们目前大多数文生图模型所采用的技术。

  扩散模型也分为两个过程,一个是前向过程,通过向原始数据不断加入高斯噪声来破坏训练数据,最终加噪声到一定步数之后,原始数据信息就完全被破坏,无限接近与一个纯噪声。另外一个过程是反向过程,通过深度网络来去噪,来学习恢复数据。

  训练完成之后,我们可以通过输入随机噪声,传递给去噪过程来生成数据。这就是 DDPM 的基本原理。

  图中是 DALLE2 的一个基本框架,他的整个 pipeline 稍微有些复杂,输入文本,经过一个多模态的 CLIP 模型的文本编码器,学习一个 prior 网络,生成 clip 图像编码,然后 decoder 到 64*64 小图,再经过两个超分网络到 256*256,再到 1024*1024。

在这里插入图片描述

五、流模型(Flow-based Models)

OpenAI 曾经根据 GLOW 做过一些 Demo,Demo 网址:Glow: Better reversible generative models (openai.com)我们在这里给出 Demo的一些功能和简单的原理。

  flow model 原理参考本人的另一篇博客:生成模型-流模型(Flow)

人脸混合:将一个人脸通过 G 逆输出成 z1,另一个人脸通过 G 逆输出成 z2,然后 z1 与 z2 取平均,平均值再通过 G,就可以得到混合后的人脸:

在这里插入图片描述

参考

常见的生成模型有哪些?_生成模型科普-CSDN博客

https://github.com/datawhalechina/sora-tutorial/tree/main/docs

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

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

相关文章

RIPGeo代码理解(六)main.py(运行模型进行训练和测试)

​代码链接:RIPGeo代码实现 ├── preprocess.py # 预处理数据集并为模型运行执行IP聚类 ├── main.py # 运行模型进行训练和测试 ├── test.py #加载检查点,然后测试 一、导入各种模块和数据库 import torch.nnfrom lib.utils import * import argparse i…

Http中Host,Referer,Origin和Access-Control-Allow-Origin

Http中Host,Referer,Origin和Access-Control-Allow-Origin 文章目录 Http中Host,Referer,Origin和Access-Control-Allow-OriginHost定义特性作用 Referer定义特性作用 Origin定义特性作用 Access-Control-Allow-Origin定义特性作用…

登录与注册功能(简单版)(4)注册时使用Session校验图片验证码

目录 1、需求及实现流程分析 2、实现 1)新建register.jsp 2)导入CheckCodeUtil工具类 3)新建CheckCodeServlet 4)修改RegisterServlet 5)启动访问 1、需求及实现流程分析 验证码的作用:防止机器自动…

Maven,pom.xml,查找 子jar包

在IDEA打开pom.xml&#xff0c;会看到这里&#xff1a; 然后如果有需要&#xff0c;把相关的 子jar包 去掉 <dependency><groupId>XXX</groupId><artifactId>XXX</artifactId><exclusions><exclusion><artifactId>xxx</a…

[java基础揉碎]代码块

目录 基本介绍: 基本语法: 代码块的好处: 1)相当于另外一种形式的构造器(对构造器的补充机制)&#xff0c;可以做初始化的操作 2)场景:如果多个构造器中都有重复的语句&#xff0c;可以抽取到初始化块中&#xff0c;提高代码的重用性 如下: 代码块的注意事项和使用细节: …

详细安装步骤:vue.js 三种方式安装(vue-cli)

Vue.js&#xff08;读音 /vjuː/, 类似于 view&#xff09;是一个构建数据驱动的 web 界面的渐进式框架。Vue.js 的目标是通过尽可能简单的 API 实现响应的数据绑定和组合的视图组件。它不仅易于上手&#xff0c;还便于与第三方库或既有项目整合。 三种 Vue.js 的安装方法&…

探索设计模式的魅力:精准、快速、便捷:游标尺模式在软件设计中的三大优势

​&#x1f308; 个人主页&#xff1a;danci_ &#x1f525; 系列专栏&#xff1a;《设计模式》 &#x1f4aa;&#x1f3fb; 制定明确可量化的目标&#xff0c;并且坚持默默的做事。 精准、快速、便捷&#xff1a;游标尺模式在软件设计中的三大优势 文章目录 一、案例场景&…

化工企业能源在线监测管理系统,智能节能助力生产

化工企业能源消耗量极大&#xff0c;其节能的空间也相对较大&#xff0c;所以需要控制能耗强度&#xff0c;保持更高的能源利用率。 化工企业能源消耗现状 1、能源管理方面 计量能源消耗时&#xff0c;计量器具存在问题&#xff0c;未能对能耗情况实施完全计量&#xff0c;有…

【电气安全】ASCP电气防火限流式保护器/末端回路线路保护

为什么要使用电气防火限流式保护器&#xff1f; 应急管理部消防救援局统计&#xff0c;在造成电气火灾事故的原因中&#xff0c;最为主要的当为末端线路短路&#xff0c;在电气火灾事故中占比高达70%以上。如何效预防末端线路短路引发的电气火灾事故&#xff1f; 现阶段最为常…

逆向爬虫技术的进阶应用与实战技巧

前言 在互联网的海洋中&#xff0c;数据是无价的财富。爬虫技术作为获取这些数据的重要手段&#xff0c;一直备受关注。然而&#xff0c;随着网站反爬虫机制的日益完善&#xff0c;简单的爬虫程序已经很难满足我们的需求。因此&#xff0c;掌握爬虫逆向技术&#xff0c;突破反爬…

【C语言】编译链接

1、宏&#xff08;***&#xff09; 1.1#define定义宏 #define 机制包括了一个规定&#xff0c;允许把参数替换到文本中&#xff0c;这种实现通常称为宏&#xff08;macro&#xff09;或定义 宏&#xff08;define macro&#xff09;。 注意&#xff1a;用于对数值表达式进行求…

React中 类组件 与 函数组件 的区别

类组件 与 函数组件 的区别 1. 类组件2. 函数组件HookuseStateuseEffectuseCallbackuseMemouseContextuseRef 3. 函数组件与类组件的区别3.1 表面差异3.2 最大不同原因 1. 类组件 在React中&#xff0c;类组件就是基于ES6语法&#xff0c;通过继承 React.component 得到的组件…

Linux相关命令(2)

1、W &#xff1a;主要是查看当前登录的用户 在上面这个截图里面呢&#xff0c; 第一列 user &#xff0c;代表登录的用户&#xff0c; 第二列&#xff0c; tty 代表用户登录的终端号&#xff0c;因为在 linux 中并不是只有一个终端的&#xff0c; pts/2 代表是图形界面的第…

01-DBA自学课-安装部署MySQL

一、安装包下载 1&#xff0c;登录官网 MySQL :: MySQL Downloads 2&#xff0c;点击社区版下载 3&#xff0c;找到社区服务版 4&#xff0c;点击“档案”Archives 就是找到历史版本&#xff1b; 5&#xff0c;选择版本进行下载 本次学习&#xff0c;我们使用MySQL-8.0.26版本…

Redis入门到实战-第五弹

Redis实战热身Hashes篇 完整命令参考官网 官网地址 声明: 由于操作系统, 版本更新等原因, 文章所列内容不一定100%复现, 还要以官方信息为准 https://redis.io/Redis概述 Redis是一个开源的&#xff08;采用BSD许可证&#xff09;&#xff0c;用作数据库、缓存、消息代理和…

【Delphi JCL库文件解剖 1】库文件的大体脉络

JCL库是一个开源的Delphi库文件,下载到它很容易,可是想能灵活运用它却并不容易。下面是这个库文件的大体文件脉络,咱们要分析的核心还是在 source 源代码文件。 bin - 示例应用程序可执行文件的常见位置 docs - 读…

qt 实现 轮播图效果,且还有 手动 上一页和下一页 已解决

QT中有 轮播图的需求&#xff0c;按照正常html版本 。只需要配置数组就能搞定&#xff0c;但是c qt版本 应该用什么了。 第一想到的是采用定时器。 // 定时器初始化{m_pTime new QTimer(this);m_pTime->start(4 * 1000);//启动定时器并设置播放时间间隔m_pAutoFlag true;/…

001 高并发内存池_项目简介

​&#x1f308;个人主页&#xff1a;Fan_558 &#x1f525; 系列专栏&#xff1a;高并发内存池 &#x1f339;关注我&#x1f4aa;&#x1f3fb;带你学更多知识 文章目录 前言一、项目简介二、所需知识储备与难度三、什么是内存池四、内存池主要解决的问题 小结 前言 话不多…

MySQL中的数据备份

1. 逻辑备份 备份的是建表、建库、插入等操作所执行SQL语句&#xff0c;适用于中小型数据库&#xff0c;效率相对较低。 本质&#xff1a;导出的是SQL语句文件 优点&#xff1a;不论是什么存储引擎&#xff0c;都可以用mysqldump备成SQL语句 缺点&#xff1a;速度较慢&…

centos7 linux下yum安装redis

安装redis 检查是否有redis yum 源 yum install redis下载fedora的epel仓库 yum install epel-release安装redis数据库 yum install redis安装完毕后&#xff0c;使用下面的命令启动redis服务 # 启动redis service redis start# 停止redis service redis stop# 查看redis运…