生成模型 | 从 VAE 到 Diffusion Model (上)

news2024/9/20 1:04:07

在这里插入图片描述

文章目录

  • 一,GAN(对抗式生成网络)
  • 二,Auto-Encoder(AE) 和 Denoising Auto-Encoder (DAE)
  • 三,VAE
  • 四,VQ-VAE (Vector Quantized Variational Autoencoder)
    • VQ-VAE 2
    • 小总结:
  • 五,DALL-E (OpenAI) (2021.02)

一,GAN(对抗式生成网络)

  • 生成器: 给定一个随机噪声,生成比较真实的图像
  • 判别器:给一个生成的图像和真实的图像,让判别器去判断,哪个是真图片,哪个是假图片
  • 判别器和生成器会不断提升自身的能力,互相较量。 DEEP FAKE 火爆 大家可以试一试这个基于GAN的应用。
  • 缺点:
    • GAN的 训练不够稳定,因为他要同时训练两个网络,所以就有一个平衡的问题。训练不好的话,模型就坍塌 了
    • GAN 主要的目标就是“真实”, 所以他的 创造性不好。他的多样性来自于刚开始的随机噪声。他 不是一个概率模型,他的生成是隐式的,是通过一个网络去完成的,所以你不知道他做了什么,遵循什么分布,在数学上不优雅。
      在这里插入图片描述

二,Auto-Encoder(AE) 和 Denoising Auto-Encoder (DAE)

  • 自己重建自己:给定一个图片, 输入到一个Encoder 里面, 然后得到一个维度小很多的 特征,然后过一个 Decoder 解码器,最后得到一个图像。我们的目标函数呢,就是重建这个图像,所以是自己重建自己,自回归模型

  • 中间那个特征维度很小,所以也叫bottleneck

  • 主要目的是学习bottleneck特征的,把这个特征去做分类,分割,检测这些任务。并不是用来做生成的,他这里学到的不是一个概率分布。我们没法对他进行采样。

  • Denoising Auto-Encoder: 把输入的原始图片进行打乱 ,重建原始的图片。会让训练的模型更加的稳健。

AE 和 DAE 主要的目的是去学bottlenck的特征,用这个特征去做 下游任务,并不是用来做生成的。

Encoder- Decoder这个结构很好,如何用这个结构做图像生成呢? VAE来了。

在这里插入图片描述

三,VAE

VAE 学习的不是 特征了,而是一个分布, 作者假设这个 分布是一个高斯分布,这个分布就可以用 (均值,方差) 来表示

具体来说:当我们从编码器得到特征之后,我们在后面加 FC 层,用它去预测 均值 和 方差 , 然后就可以用下面的公式,采样一个 z 出来,这样VAE就可以做生成了,这个 z 就是一个可以从高斯分布中随机抽样出的一个样本

从贝叶斯概率的角度来看, VAE 学的是一个概率分布,他从分布里去抽样,所以他生成图片的多样性 比GAN好很多

缺点: VAE 不好把图片的尺寸做大,而且 z 的分布也不是很好学
在这里插入图片描述
在这里插入图片描述

四,VQ-VAE (Vector Quantized Variational Autoencoder)

DALL-E的第一版模型就是 在VQ-VAE的基础上做的.

把VAE量化 离散 了。

  • 为什么离散VAE呢? VAE 不好把图片的尺寸做大,而且 z 的分布也不是很好学
  • 取而代之的是,不去做分布的推测,而是 用一个codebook去代替了。
    • codebook可以理解为聚类的中心,codebook的大小一般为KXD(8192x512), 也就是8192个聚类中心
  • 输入一个图片进入编码器得到一个特征图,把特征图里面的向量 和 codebook 里面的向量做对比,看他和哪个聚类中心最接近,然后就把聚类中心这个编码 存到 Z 这个矩阵里, 一旦做好了聚类的分配,我们就不需要之前的特征图了,取而代之的是,把Z 中index 对应的codebook的特征拿出来,变成一个新的特征图 ,也就是一个量化后的特征 (quantized feature), 这个量化后的特征就非常可控了,他是从codebook里面来的,而不是一个随机的东西。所以优化起来相对容易。
  • 然后通过解码器重构一张图片。
这里的codebook有点像 AE 里面的 bottlenet那块的特征,是拿去做high level 的任务的,也就是做分类,检测。 如果想让他做生成,我们还需要单独 再 训练一个prior 网络。

在这里插入图片描述

在视觉这边 BEIT 把 DALL-E训练好的 codebook 拿过去,然后把图片全都量化成这样子的特征图,拿这个去做Ground Truth,自监督的训练一个视觉网络。

  • 缺点:VQ-VAE 学习的是一个固定的codebook,就意味着他没有办法像 VAE 这样随机采样,生成对应的图片

VQ-VAE 2

  • 把模型变成层级式的,不仅做局部的建模,也做了全局的建模,还加上了attention,模型表达能力变强了
  • 同时,他还根据codebook 又去学了一个prior,
    • 作者这里训练了一个 pixelCNN 当作这个 prior 网络, 从而能够利用这个训练好的codebook来做图像的生成。 pixcelCNN 是一个自回归模型

小总结:

对于VQ-VAE来说,先训练了一个codebook, 然后又训练一个pixcelCNN去做生成。
pixcelCNN 是一个自回归模型,还有什么模型是自回归模型吗? GPT

在这里插入图片描述

五,DALL-E (OpenAI) (2021.02)

  • OpenAI 把pixcelCNN 换成了GPT。既然 language 那边做的又那么好,为什么不想个办法,用文本来引导图像生成呢?所以就有了DALL-E
  • 把文本特征和图像特征直接连接起来,就变成了一个有1280token的序列
  • 然后把序列给到GPT,随机把token做一下mask,然后GPT去自回归的还原这个mask token
  • 推理的时候,提供text,变成text embedding, 然后GPT 把文本特征 用自回归的方式 把图片生成出来

在这里插入图片描述

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

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

相关文章

Google speech command 数据集获取

🏆本文收录于「Bug调优」专栏,主要记录项目实战过程中的Bug之前因后果及提供真实有效的解决方案,希望能够助你一臂之力,帮你早日登顶实现财富自由🚀;同时,欢迎大家关注&&收藏&&…

Java学习【接口的使用实例,浅克隆与深克隆】

Java学习【接口的使用实例&#xff0c;浅拷贝与深拷贝】 Comparable接口String类型比较多个对象的比较 Comparator接口Cloneable接口浅拷贝深拷贝 Comparable接口 当我们想要比较两个基本数据类型的大小时直接用 > , < , 就可以了&#xff0c;那么如果是自定义的类要根…

为什么我们应该放弃定义敏感数据?

个人数据与人以及其他个人数据深深地交织在一起&#xff0c;它就像一幅巨大的挂毯&#xff0c;而这些线是无法轻易拆开的。尝试定义敏感数据就像徒劳地试图从挂毯中找出不同的线头一样&#xff0c;线头与其他线头交织在一起&#xff0c;一旦开始拆线&#xff0c;整个挂毯就会散…

IP地址概述和配置

一.IP地址的概述 在计算机网络中&#xff0c;连接的网络设备和计算机都有唯一的地址&#xff0c;以此作为该计算机在internet中的唯一标识。 二.IP地址的定义 IP地址&#xff08;internet protocol Address&#xff0c;网络协议地址&#xff09;是用于表示网络节点的逻辑地址…

黄石首家Pearson VUE国际认证考试中心落户湖北理工学院

Pearson VUE 作为 Pearson 集团的专门从事计算机化考试服务的公司&#xff0c;到目前为止&#xff0c;已在全世界165 个国家授权了 4400 多个考试中心以及超过 230 家 PVUE 自有考试中心&#xff0c;其中在中国的有三百多个授权考点和 4 个自有考试中心。Pearson VUE 以其技术和…

虚拟列表 vue-virtual-scroller 的使用

npm 详情&#xff1a;vue-virtual-scroller - npm (npmjs.com) 这里我使用的是RecycleScroller。 App.vue <template><RecycleScrollerclass"scroller":items"items":item-size"54"v-slot"{ item }"><list-item :it…

『光谷云智慧大屏』数字智慧型 案例赏析

设计背景 随着数字化转型的不断深入&#xff0c;智慧大屏在云数据处理中心扮演着越来越重要的角色。大屏采用先进技术&#xff0c;构建了一个直观且互动的实时数据监控系统。它不仅提高了数据处理的效率&#xff0c;还为数据中心的智能化管理和运营提供了强有力的支持&#xf…

智慧工地势在必行,可以减少管理的无序状态,效率倍增。

智慧工地的建设对于提高工地管理效率和减少无序状态具有重要意义。智慧工地通过引入先进的信息技术和智能化设备&#xff0c;可以实现以下方面的优势&#xff1a; 1. 实时监测和管理&#xff1a; 智慧工地可以通过传感器、监控摄像头等设备对施工现场的各种参数和情况进行实时…

RGMII接口及时序详解

文章目录 一、RGMII接口介绍二、MAC和PHY1.关系2.MAC和PHY的交互3.MAC为什么要配置PHY4.如何配置&#xff08;1&#xff09;原理&#xff08;2&#xff09;PHY地址的确定&#xff08;3&#xff09;寄存器地址及配置数据 三、88E1111中PHY的时序1.接收端时序&#xff08;1&#…

Windows安全应急--应急排查的一些方法

前言&#xff1a; 非法BC植入网站安全应急&#xff0c; 在安全应急中&#xff0c; 总会需要大大小小的问题&#xff0c; 就像成长一样。 检测工具尽量使用轻量级的。。 本次演示环境 Windows Server 2008 问题排查步骤&#xff1a; 先判断服务器有没有被Rootkit 查看登录…

将联表查询到的数据按1000一批次存入数据库-模板

idea模板&#xff1a; /*** ${Shitilei}信息 服务层实现。** author admin*/ Service RequiredArgsConstructor public class Operate${Shitilei}Service {private final ${Shitilei}Mapper ${shitilei}Mapper;private final RegionUtil util;/*** ${shitilei}表* return 操作结…

【抽代复习笔记】18-置换练习题(2)及两个重要定理

最近一直忙于学校的事情&#xff0c;好久没更新了&#xff0c;实在抱歉。接下来几期大概也会更得慢一些&#xff0c;望见谅。 练习4&#xff1a;写出4次对称群S4中所有置换。 解&#xff1a;由上一篇笔记结尾的定理我们知道&#xff0c;4次对称群的阶&#xff08;也就是所含元…

SAP-有历史业务情况下的物料批次切换前提条件和方案建议

转载自&#xff1a;SAP-有历史业务情况下的物料批次切换前提条件和方案建议 - 知乎 (zhihu.com) 在SAP中&#xff0c;物料是否启用批次管理主要是通过物料上的“批次管理”字段进行控制&#xff0c;但物料批次管理涉及库存很多业务节点的控制&#xff0c;因此一旦有业务的发生&…

超市生鲜如何持续盈利?

生鲜经营是现代超市功能配置中不可缺少的组成部分&#xff0c;通过生鲜区经营及其效果可以反映出超市业态发展的成熟化程度。做好了可以达到集客和盈利的目的&#xff0c;做得不好&#xff0c;也很容易成为超市中的亏损&#xff0c;更难指望顾客经常光顾。 超市生鲜区生存和发展…

QT creator centralwidget前面有个禁止符号

centralwidget前面有个禁止符号&#xff1a;表示分拆布局 在主窗口空白处&#xff0c;右键&#xff0c;选择布局即可选择不同的布局方式&#xff0c;表示对窗口内所有控件部件进行布局&#xff0c;不如垂直布局。

Android模块化项目搭建和模块之间跳转传值(2)

一、前言 这是一篇关于Android模块化的项目搭建和配置&#xff0c;没有看过我第一部分的同学如果不清楚整个流程的&#xff0c;可以回头看一下&#xff0c;有利于你更加快速的掌握和使用。 二、引入ARouter 模块化顾名思义就是将项目按模块的方式进行开发&#xff0c;加大了…

C++小病毒

C小病毒&#xff08;注&#xff1a;对电脑无过大伤害&#xff09; 短短行&#xff0c;创造奇迹&#xff01; 把这个文件命名为virus.exe就可以使用了。 #include<bits/stdc.h> #include<windows.h> using namespace std; int main() {HWND hwnd GetForegroundW…

一图看懂 | 蓝卓新材料行业解决方案

小到芯片、手机、智能手表&#xff0c;大到智能装备、新能源汽车、光伏电池板&#xff0c;新材料的运用不可缺少。作为未来产业的“基石”&#xff0c;新材料行业有力支撑了航空航天、电子信息、新能源等战略性新兴产业的发展壮大。 七大行业特点&#xff0c;五大应用场景&…

【WEEK13】 【DAY3】Shiro第三部分【中文版】

2024.5.22 Wednesday 接上文【WEEK13】 【DAY2】Shiro第二部分【中文版】 目录 15.4.登录拦截15.4.1.修改ShiroConfig.java15.4.2.新建login.html页面15.4.3.修改MyController.java15.4.4.再次修改ShiroConfig.java15.4.5.重启 15.5.用户认证15.5.1.修改MyController.java15.5.…

【css】引入背景图时候,路径写入@会报错

看报错信息 我的写法 解决办法 在前面加个~