DALLE2,就是输入一个文本,通过CLIP把文本转换为文本特征,然后再通过文本特征生成对应的图像特征。(prior部分)
接下来将图像特征输入扩散模型里,生成一个图片。(decoder部分)

它能实现用语言更改图片内容(比如“把椅子上的玩具消除”),就是因为通过文本的改变,文本特征也会改变,从而最终影响到生成的图片也会改变。

其实也可以注意到,如果采用最暴力的方法,直接从文本到最终图像进行映射,也是可以实现的。为什么作者非要搞个二阶段,非要去生成中间这个图像特征呢?
因为作者试过,这样的话能够保证生成图片更具有多样性


生成模型的发展:
GAN: 左右互搏。
**优点: **非常逼真,而且发展到现在,有时候不需要很多的数据就能生成很好的效果了。
**缺点: **由于是同时训练两个模型,训练难度大,很容易就训练坍塌了。
而且GAN虽然逼真,但是它最后生成的图往往很相似,缺少多样性。
最后,GAN训练完之后,中间部分就像一个黑箱,你也不知道它遵循了什么分布。这一点就远不如后续AE系列、扩散模型等这些在数学上能解释的模型优雅。

**AE: Auto-Encoder。**它就是输入一张图片,然后通过encoder转换成特征,再通过decoder把特征还原回图片。由于是自己编码自己,自己解码自己,所以叫自编码器。

**DAE: Denoising Auto-Encoder。**它就是在AE的基础上,加了一个噪声。AE是输入一张图片X,然后进行后续工作,最后试图让生成的结果接近原来的X;DAE就是给X加入噪声,变成Xc,然后一样进行后续操作,最后还是试图让生成的结果接近X。
虽然只是简单地加个噪声,但是这个改动对AE的效果提升很好。说明实际上图片的像素这些信息里面其实有很多的冗余信息,即使我们去做了扰动,模型依然能从中提取出图像的核心逻辑。
后来的何恺明的MAE: masked auto encoder的思路和这个有异曲同工之妙。

虽然上面几种AE都很巧妙,但是它们都没有用来做生成,而是基本都是采用中间那个特征,去做目标检测、分割这种任务。
为什么呢?因为这几种AE,中间的特征都是确定的,不是一个分布,你无法去采样,然后作为输入去生成新图。

**VAE: Variational Auto-Encoder。**这个就解决了这个问题,它encoder要生成的不是一个特征,而是一个高斯分布。
我们知道高斯分布可以用方差和均值来表示,所以直接在encoder后面加一个全连接层,让它预测这个高斯分布的两个参数就好了。
然后根据这个高斯分布,采样其中一个作为输入,再通过decoder还原出X。
现在,VAE就可以用来做生成了。因为你训练好这个模型以后,完全可以把前面的encoder丢掉,直接从高斯分布里采样一个输入,让decoder生成图片。

**VQVAE: Vector Quantinised VAE。**就是把VAE做量化。所谓量化,类比我们生活中的声音信号、图片信号,其实都是经过采样转换为量化信号来处理的。
这里就是它会有一个code book,这个地方存了KxD的特征空间。然后前面encoder生成的HxD的特征f传进来,它会把这H个特征去跟code book里一个个做比较,看它和哪个最接近,就把它换为哪一个。这样的话,最终生成一个新的特征fa。这个特征就是比较可控的了,因为它的全部内容都是从code book里面来的,所以优化起来就更容易。
那其实我们可以看到,这里code book之后,原本的分布又变成确定的了,所以它其实更像AE而不是VAE。如果我们想用它来做生成,我们还得再单独训练一个prior网络,来实现随机性。
这也就是后来DALLE2使用CLIP来作为这个prior网络。

扩散模型 前向扩散就是给一个图片不断地加噪声,加得足够多时,它本身就变成一个噪声了。于是我们再训练一个模型,把这个噪声还原回最初的图片,这样的话,以后直接加一个高斯噪声,就能够做生成任务了。
传统扩散模型的预测过程是通过Xt预测Xt-1,也就是通过图去预测图,一次预测一张图太难了。DDPM简化了这个问题,它改为通过图去预测中间那个噪声。更简化来说,一个高斯噪声其实就只需要均值和方差,实际上实验发现,只预测均值,方差设为固定值,就已经有很不错的效果了。所以预测一张图直接简化为预测一个数,所以DDPM效果特别好。

生成式模型的发展历程相关推荐

  1. 一文读懂CTR预估模型的发展历程

    如果觉得我的算法分享对你有帮助,欢迎关注我的微信公众号" 圆圆的算法笔记",更多算法笔记和世间万物的学习记录- 1. 背景 CTR预估是搜索.推荐.广告等领域基础且重要的任务,主要 ...

  2. 词嵌入模型的发展历程

    本文意在梳理如何用向量表示单词来让单词变得可计算的这一nlp问题的发展历程. 自然语言处理(Natural Language Processing),曾经也叫做"Computational ...

  3. 【TransformerCNNTiDE】从CNN到ViT,再从ViT到TiDE,回顾近十年顶刊和会议发表的关于Attention自注意力、Conv卷积机制以及最新诞生的TiDE模型的发展历程

    目录 一.CV中的Transformer介绍 二.Attention机制增强CNN 前言: 1. Attention Augmented Convolutional Networks(ICCV 201 ...

  4. 水质模型发展历程以及水质模拟软件介绍

    水质模型的发展历程 摘自:高维参数水质模型参数不确定性分析方法研究_梁识栋 地表水体水质模型最早是在 1925 年,由 Streeter 和 Phelps 提出的 S-P 模型[9],至今水质模型的发 ...

  5. AI近十年盘点:纵览AI发展历程,探寻AI未来走向

    编者按:当我们回顾过去十年的人工智能发展历程时,可以看到一场现在还正在进行的变革,对我们的工作方式.商业运营模式和人际交往行为都产生了深远的影响.从2013年的AlexNet到变分自编码器,再到最近的 ...

  6. 一文看尽SOTA生成式模型:9大类别21个模型全回顾!

    来源:新智元 极市平台 本文约3800字,建议阅读5分钟本文总结了2022年发布的21个生成式模型,一次看明白生成式模型的发展脉络! 过去的两年时间里,AI界的大型生成模型发布呈井喷之势,尤其是Sta ...

  7. 「基于模型的系统工程」的发展历程

    节选自<「基于模型的系统工程」的发展历程>,因篇幅有限,完整报告文末领取. 当下,人们热衷于讨论基于计算机的建模.模型.数据库和敏捷设计方法.然而,很少有人会耐心地审视和理解大量的技术创新 ...

  8. 简析NFT交易平台的发展历程及4F评估模型

    早在 2016-2018 年,以 OpenSea,MakersPlace,SuperRare 为代表的第一批 NFT 交易市场横空出世.在那时,有一部分交易平台使用了邀请制,只有受邀的艺术家才可以进行 ...

  9. 人工智能概述、人工智能发展历程、人工智能主要分支、机器学习工作流程、完整机器学习项目的流程、机器学习算法分类、独立同分布、模型评估、深度学习简介

    日萌社 人工智能AI:Keras PyTorch MXNet TensorFlow PaddlePaddle 深度学习实战(不定时更新) 1.1 人工智能概述 1 人工智能应用场景 2 人工智能小案例 ...

最新文章

  1. 【Python基础】Matplotlib 实操干货,38个案例带你从入门到进阶!
  2. 常见的反爬手段和解决思路
  3. 大学生python实验心得体会_大学生实验心得体会精选例文【三篇】
  4. c语言选择夹答案,单片机串口通讯制作说明
  5. 【Git、GitHub、GitLab】五 git中裸仓库.git下的内容
  6. 网页结构的简介和Xpath语法的入门教程
  7. 任务七:实现常见的技术产品官网的页面架构及样式布局
  8. 36-高级特性之自定义类(1)
  9. 【转】Perl、PHP、Python、Java和Ruby的比较
  10. vrep小车模型搭建
  11. 2022年各省高考查分时间、入口汇总
  12. with admin option和with grant option的区别与用法
  13. 如何使用启动盘启动计算机,电脑重装系统怎么设置用U盘启动盘引导?
  14. H264和aac 封装成为ts,并生成m3u8
  15. 云原生 - 负载均衡(SLB)多可用区
  16. 【Typora图床设置】Typora图片上传和阿里云OSS对象存储
  17. micro-app 微前端脚手架搭建
  18. 用vb.net制作贪吃蛇游戏
  19. Redis 服务配置 redis.conf 配置文件详解
  20. 365赚钱宝养猫小程序程序源码下载

热门文章

  1. js深拷贝可以这样做
  2. 2018CCPC吉林赛区 hdu6555~hdu6566
  3. Object类的equals方法
  4. 关于C语言里面struct的相关知识
  5. Gradle 项目配置阿里云仓库
  6. HashMap源码阅读笔记
  7. MySQL权限授权认证详解
  8. Oracle数据库版本
  9. 【高等代数】线性空间-知识点总结
  10. 买菜App综合服务水平排行:盒马、多点、每日优鲜排前三