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

在这里插入图片描述

文章目录

  • 一,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 把文本特征 用自回归的方式 把图片生成出来

在这里插入图片描述

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

如若内容造成侵权/违法违规/事实不符,请联系我们进行投诉反馈qq邮箱809451989@qq.com,一经查实,立即删除!

相关文章

翻译《The Old New Thing》- How do I mark a shortcut file as requiring elevation?

How do I mark a shortcut file as requiring elevation? - The Old New Thing (microsoft.com)https://devblogs.microsoft.com/oldnewthing/20071219-00/?p24103 Raymond Chen 2007年12月19日 如何将快捷方式标记为需要提升权限 简要 文章介绍了如何通过设置SLDF_RUNAS_US…

Window Linux 权限提升

#基础点: 0、为什么我们要学习权限提升转移技术: 简单来说就是达到目的过程中需要用到它 心里要想着我是谁 我在哪 我要去哪里 1、具体有哪些权限需要我们了解掌握的: 后台权限,数据库权限,Web权限,用户权…

基于Netty实现WebSocket服务端

本文基于Netty实现WebSocket服务端,实现和客户端的交互通信,客户端基于JavaScript实现。 在【WebSocket简介-CSDN博客】中,我们知道WebSocket是基于Http协议的升级,而Netty提供了Http和WebSocket Frame的编解码器和Handler&#…

Access to image at ‘xxx‘ from origin ‘xxx‘ has been blocked by CORS policy解决方案

如图所示,控制台出现下面的报错: 但是正常加载了图片 这个错误表明你尝试从某个源(origin)加载阿里云上的图片时,浏览器因为CORS(跨源资源共享)策略阻止了这次请求。尽管图片能正常显示&#x…

Midjourney应用场景、特点、生成图片带来影响

Midjourney是一个基于GPT-3.5系列接口开发的免费AI机器人,旨在提供多领域的智能对话服务。本文主要介绍Midjourney的应用场景、功能特点、图片生成后可以做什么? 一、Midjourney应用场景 Midjourney的应用场景相当广泛,以下是一些主要的适用…

迈威通信TSN工业自动化系统解决方案助力智能制造实现确定性服务

工业4.0时代,IT与OT的融合已成为制造企业数字化转型的关键。然而,传统OT网络与IT网络的差异给融合带来了重重挑战。例如,当传送带通过PROFINET协议与HMI通讯时,兼容性问题凸显;硬件实时运动控制采用EtherCAT协议,机械臂…

基于GIS的各类地图样式作品的欣赏,真的不一般。

GIS(地理信息系统)提供了丰富的地图数据,为地图可视化开发提供了基础数据。在GIS的基础上,您可以根据需求和目的,采用不同的可视化样式来展示地图数据。 以下是一些常见的地图可视化样式: 点状标记&#x…

Nat Hum Behav | 人类前额叶皮层非空间注意力的因果相位依赖性控制

摘要 非空间注意力是一种基本的认知机制,它使个体能够将意识的焦点从无关刺激转向与行为目标相关的感觉信息上。有人提出了一种关于注意力是由前额叶皮层中缓慢兴奋性波动的持续相位所调节的假设,但这一假设存在争议且尚未达成共识。在这里,…

angr使用学习

首先我是直接在kali中安装的,也是边练边学的。 嗯,要在纯净python环境,所以是在 virtualenv 虚拟环境里,也不是特别会用这个,按照教程一步步做的 source venv/bin/activate 进入了对应环境 退出是 deactivate en,ipy…

精准控制,无缝集成:EC-Master与LxWin的EtherCAT主站解决方案

在今天,越来越多的制造业客户选择自动化智能化转型,自动化智能化促进了人机交互、数据互通与自动化控制的发展。随着工业4.0和智能制造的推进,对高速、低时延、高性能的需求在自动化控制领域日益增长。 在这一背景下,EtherCAT&am…

C++相关概念和易错语法(14)(初始化注意事项、vector、编译器向上查找规则)

1.当我们在代码中想要终止运行的话,我们可以采用Ctrl C或Ctrl Z,其中^C代表杀进程,^Z设置结束2.编码表:我们目前比较熟悉的是ASCII码编码方式,但是我们发现平时使用的汉字无法通过ASCII编码,除此之外&…

1个逗号,提升Python代码质量

有些时候,我们会在Python代码中看到列表或其他科迭代对象的结尾会存在一个逗号: 而且编辑器和解释器都容许这种逗号的存在,它就叫作拖尾逗号。 通常是为了在频繁地增减数组元素的时候同时保证语法的正确,且拖尾逗号不占用数组的长…

气膜建筑:寿命、优势与应用—轻空间

近年来,气膜建筑因其独特的结构和众多优势,逐渐成为建筑领域的热门选择。气膜建筑使用寿命长,且在建造速度、成本、安全性、节能环保和舒适性等方面具有显著优势。轻空间将详细探讨气膜建筑的使用寿命、主要优势及其在不同领域的广泛应用。 气…

【从C++到Java一周速成】章节10:封装、继承、方法的重写、多态

章节10:封装、继承、方法的重写、多态 【1】封装1.高内聚,低耦合2.代码层面的体现 【2】继承【3】方法的重写【4】多态 【1】封装 1.高内聚,低耦合 高内聚:类的内部数据操作细节自己完成,不允许外部干涉;…

JSX语法看这一篇就够了-02

JSX and React 是相互独立的两种开发语言,它们经常一起使用,但也可以单独使用它们中的任意一个,JSX 是JavaScript 语言的扩展,而 React 则是一个 JavaScript 的库。 概述简介 JSX简介 JSX全称 javascriptXML,是Faceb…

cmake编译redis6.0源码总结

1配置clion使用cygwin模拟linux环境,先下载cygwin后配置 2导入源码,配置cmake文件 由于redis是基于Linux上的Makefile,所以Windows上需要配置CMakeLists.txt使用cmake工具编译运行。github上已经有人尝试编写CMakeLists.txt文件&#xff0c…

软件测评的重要性

软件测评的必要性体现在多个方面,以下是其主要原因: 质量保障:软件测评的首要目标是确保软件的质量。通过系统的测试,可以发现软件中的缺陷、错误或不符合需求的地方,从而及时进行修复和改进。这有助于保证软件在实际…

怎么录制直播视频教程?一看就会的方法分享

随着网络直播的兴起,无论是教学、会议还是娱乐,直播视频已成为人们日常生活和工作中不可或缺的一部分。录制直播视频教程不仅可以帮助我们回顾和分享精彩瞬间,还能为观众提供便捷的学习资源。可是怎么录制直播视频教程呢?本文将介…

轻松同步:将照片从三星手机传输到iPad的简便方法

概括 想要在新 iPad 上查看三星照片吗?但是,如果您不知道如何将照片从三星手机传输到 iPad,则无法在 iPad 上查看图片。为此,本文分享了 7 个有用的方法,以便您可以使用它们在不同操作系统之间轻松发送照片。现在&…

炫酷gdb

在VS里面调试很方便对吧?(F5直接调试,F10逐过程调试--不进函数,F11逐语句调试--进函数,F9创建断点),那在Linux中怎么调试呢? 我们需要用到一个工具:gdb 我们知道VS中程…