文本生成图像简述4——扩散模型、自回归模型、生成对抗网络的对比调研

news2025/7/19 3:44:14

基于近年来图像处理和语言理解方面的技术突破,融合图像和文本处理的多模态任务获得了广泛的关注并取得了显著成功。

文本生成图像(text-to-image)是图像和文本处理的多模态任务的一项子任务,其根据给定文本生成符合描述的真实图像,具有巨大的应用潜力,如视觉推理图像编辑视频游戏动画制作计算机辅助设计

目前,各种各样的模型已经开发用于文本到图像的生成,模型主要可以分为三大类:扩散模型(Diffusion Model)自回归模型(Autoregressive Model)生成对抗网络模型(Generative Adversarial Networks),下面梳理一些近几年重要的模型并对比这三种方法的优劣:

一、基本原理

1.1、扩散模型(Diffusion Model)

扩散模型是一类生成模型,其通过迭代去噪过程将高斯噪声转换为已知数据分布的样本,生成的图片具有较好的多样性和写实性。
在这里插入图片描述
扩散过程逐步向原始图像添加高斯噪声,是一个固定的马尔科夫链过程,最后图像也被渐进变换为一个高斯噪声。而逆向过程则通过去噪一步步恢复原始图像,从而实现图像的生成。

随机输入一张高斯噪声显然不能按照人的意愿生成我们想要的内容,我们需要将一些具体的指导融入扩散模型中去,如:Classifier Guidance、Semantic Diffusion Guidance、Classifier-Free Guidance
在这里插入图片描述
扩散模型在实现文本生成图像上大概有以下策略

  1. 使用外部模型(分类器 or 广义的判别器)的输出作为引导条件来指导扩散模型的去噪过程,从而得到我们想要的输出;
  2. 直接把我们想要的引导条件 condition 也作为模型输入的一部分,从而让扩散模型见到这个条件后就可以直接生成我们想要的内容。

这两种想法可以将普通扩散模型改进为引导扩散模型(Guided Diffusion),并对生成的图像进行一定程度上的细粒度控制。

1.2、自回归模型(Autoregressive Model)

自回归模型模型利用其强大的注意力机制已成为序列相关建模的范例,受GPT模型在自然语言建模中的成功启发,图像GPT(iGPT)通过将展平图像序列视为离散标记,采用Transformer进行自回归图像生成。生成图像的合理性表明,Transformer模型能够模拟像素和高级属性(纹理、语义和比例)之间的空间关系。Transformer整体主要分为Encoder和Decoder两大部分,利用多头自注意力机制进行编码和解码。
在这里插入图片描述
自回归模型在实现文本生成图像上大概有以下策略

  1. 和VQ-VAE(矢量量化变分自动编码器)进行结合,首先将文本部分转换成token,利用的是已经比较成熟的SentencePiece模型;然后将图像部分通过一个离散化的AE(Auto-Encoder)转换为token,将文本token和图像token拼接到一起,之后输入到GPT模型中学习生成图像。
  2. 和CLIP结合。首先对于一幅没有文本标签的图像,使用 CLIP 的图像编码器,在语言-视觉(language-vision)联合嵌入空间中提取图像的 embedding。接着,将图像转换为 VQGAN 码本空间(codebook space)中的一系列离散标记(token)。最后,再训练一个自回归 Transformer,用它来将图像标记从 Transformer 的语言-视觉统一表示中映射出对应图像。经过这样的训练后,面对一串文本描述,Transformer 就可以根据从 CLIP 的文本编码器中提取的文本嵌入(text embedding)生成对应的图像标记(image tokens)了。
    在这里插入图片描述

1.3、生成对抗网络模型(Generative Adversarial Networks)

生成对抗网络包含一个生成模型和一个判别模型。其中,生成模型负责捕捉样本数据的分布,而判别模型一般情况下是一个二分类器,判别输入是真实数据还是生成的样本。整个训练过程都是两者不断地进行相互博弈和优化。生成器不断得生成图像的分布不断接近真实图像分布,来达到欺骗判别器的目的,提高判别器的判别能力。判别器对真实图像和生成图像进行判别,来提高生成器的生成能力。

生成对抗网络实现文本生成图像主要分为三大部分:文本编码器、生成器和鉴别器。文本编码器由RNN或者Bi-LSTM组成,生成器可以做成堆叠结构或者单阶段生成结构,主要用于在满足文本信息语义的基础上生成图像,鉴别器用于鉴别生成器生成的图像是否为真和是否符合文本语义。

生成对抗网络模型在实现文本生成图像上主要有以下策略

  1. 多阶段生成网络。由树状结构堆叠的多个生成器(G)和多个鉴别器(D)组成。从低分辨率到高分辨率的图像是从树的不同分支生成的。在每个分支上,生成器捕获该尺度的图像分布,鉴别器分辨来自该尺度样本的真假。对生成器进行联合训练以逼近多个分布,并且以交替方式对生成器和鉴别器进行训练。
  2. 单级生成网络。抛弃了堆叠结构,只使用一个生成器、一个鉴别器、一个预训练过的文本编码器。使用一系列包含仿射变换的UPBlock块学习文本与图像之间的映射关系,由文本生成图像特征。

在这里插入图片描述

二、三种框架的对比

2.1、图像质量

在生成图像的质量上:扩散模型最好,自回归模型和生成对抗网络其次:

模型名模型类型FID分数
KNN-Diffusion扩散模型16.66
Stable Diffusion扩散模型12.63
GLIDE扩散模型12.24
DALL-E 2扩散模型10.39
Imagen扩散模型7.27
Re-Imagen扩散模型6.88
DALL-E自回归模型28
CogView自回归模型27.1
CogView2自回归模型24.0
Parti自回归模型7.23
StackGAN++生成对抗网络81.59
AttnGAN生成对抗网络35.49
DM-GAN生成对抗网络32.64
DF-GAN生成对抗网络21.42
SSA-GAN生成对抗网络19.37

2.2、参数量

在参数量的比较上,自回归模型和扩散模型参数量达到了十亿级别,属于自回归模型的Parti甚至达到了百亿级别的参数量,而生成对抗网络的模型参数量一般在千万级别,明显轻巧便捷。

模型名模型类型参数量(大概)
GLIDE扩散模型35亿
DALLE-2扩散模型35亿
Imagen扩散模型34亿
Re-Imagen扩散模型36亿
DALLE自回归模型120亿
Cogview自回归模型40亿
Cogview2自回归模型60亿
Parti自回归模型200亿
DFGAN生成对抗网络0.19亿

2.3、易扩展性

在易扩展度的比较上,由于训练的计算成本小,且开源模型较多,生成对抗网络在文本生成图像的任务上仍然有很大的优势。而扩散模型和自回归模型的开源量较少,目前大多数都是大型公司(谷歌、Meta等)在研究,大型通用模型对设备的要求较高,在单张A100 GPU下,DALL-E需要18万小时,拥有200亿参数的 Parti 更是需要超过100万小时,成本高昂。

个人总结来说:

扩散模型自回归模型生成对抗网络
图像质量良+
参数量
易扩展性
优势原因逐渐添加/去除噪声的性质,只学习大规模的结构,不引入归纳偏差更大的batch size、更多的隐藏层、Transformer的多头自注意力机制生成器和判别器动态对抗的特点,避免了马尔科夫链式的学习机制,无需在学习过程中进行推断
优点更好的可解释性,生成的质量高生成质量较高,生成分布更加均匀采样速度很快,灵活的设计框架
缺点大量扩散步骤导致采样速度慢需要将图像转为token进行自回归预测,采样速度慢可解释性差,容易模式崩溃

三、生成性网络的三难困境

目前的生成式学习框架还不能同时满足三个关键要求,包括(i)高质量样本,(ii)模式覆盖和样本多样性,(iii)快速和低廉的计算成本。而这些要求往往是它们在现实问题中广泛采用所必需的,普遍来说:

  1. 扩散模型(Diffusion Model)可以生成质量比较高的图片,且具有较强的多样性,但是其应用在实践中非常昂贵;(满足i,ii,难以满足iii
  2. 自回归模型(Autoregressive Model)可以达到较好的模式覆盖和样本多样性,但是其先验的学习使用的是文本到中间离散表征的映射导致其很难在低廉的计算成本下生成高质量样本,它们生成的输出模糊。往往产生不现实的、模糊的样本(满足i,但是难以同时满足ii,iii
  3. 生成对抗网络(GANs)能够快速生成高质量样本,但模式覆盖率较差;(满足i,iii,但难以满足ii

参考:
《TACKLING THE GENERATIVE LEARNING TRILEMMA WITH DENOISING DIFFUSION GANS》
《Retrieval-Augmented Multimodal Language Modeling》
https://blog.csdn.net/qq_32275289/article/details/126951463
https://blog.csdn.net/c9Yv2cf9I06K2A9E/article/details/124641910

💡 最后

我们已经建立了🏤T2I研学社群,如果你还有其他疑问或者对🎓文本生成图像很感兴趣,可以私信我加入社群

📝 加入社群 抱团学习:中杯可乐多加冰-采苓AI研习社

🔥 限时免费订阅:文本生成图像T2I专栏

🎉 支持我:点赞👍+收藏⭐️+留言📝

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

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

相关文章

VUE3源码分析————rollup打包

文章目录什么是rolluprollup打包和webpack打包的区别rollup打包准备一、安装yarn开始rollup打包一、初始化二、package.json文件配置三、新建并配置打包文件夹四、下载rollup及打包执行文件五、文件大致分布![image.png](https://img-blog.csdnimg.cn/img_convert/66f1a85ff57d…

基于servlet学生宿舍管理系统

一、项目简介 本项目是一套javaWeb基于servlet学生宿舍管理系统,主要针对计算机相关专业的正在做bishe的学生和需要项目实战练习的Java学习者。 包含:项目源码、数据库脚本等,该项目可以直接作为bishe使用。 项目都经过严格调试,…

【Unity VR开发】结合VRTK4.0:创建物理按钮

语录: 如今我努力奔跑,不过是为了追上那个曾经被寄予厚望的自己 前言: 使用线性关节驱动器和碰撞体从动器可以轻松创建基于物理的按钮,以使交互者能够在物理上按下按钮控件,然后挂钩到驱动器事件中以了解按钮何时被按…

追梦之旅【数据结构篇】——详解C语言实现顺序队列

详解C语言实现顺序队列~😎前言🙌预备小知识🙌队列的概念及结构😊1.顺序队列头文件编写🙌2.Queue.c文件的编写🙌1)队列的初始化函数实现😊2)队列的销毁函数实现&#x1f6…

Leetcode DAY 44: 完全背包 and 零钱兑换 II and 组合总和 Ⅳ

完全背包518. 零钱兑换 II&#xff01;&#xff01;&#xff01;程序未通过原因&#xff1a; 1、dp数组的初始化没考虑清楚 2、组合问题 dp数组的更新没考虑清楚 修改后&#xff1a; class Solution { public:int change(int amount, vector<int>& coins) {// dp[j…

python保留小数函数总结

python保留小数——‘%f’‘%.nf’% x&#xff08;定义的变量&#xff09; 例子&#xff1a;a 82.16332 print(%.1f% a) print(%.2f% a) print(%.3f% a) print(%.4f% a) print(%.10f% a)输出结果python保留小数——format&#xff08;&#xff09;函数Python2.6 开始&#xff…

【Zotero】文献阅读神器Zotero打造个人移动图书馆

1、 将zotero portable版装入移动硬盘 zotero portable下载链接 2、 安装zotfile管理附件 官网&#xff1a;http://zotfile.com/ 下载好之后&#xff0c;打开Zotero&#xff0c;依次点击菜单栏工具&#xff08;tools&#xff09;-插件&#xff08;Add-ons&#xff09;&#…

Vue3 中组件的使用(上)

目录前言&#xff1a;一、什么是组件二、注册组件1. 全局注册2. 局部注册二、传递数据【父 -> 子】1. 字符串数组的形式2. 对象的形式三、组件事件【子 -> 父】1. 字符串数组式声明自定义事件2. 【子组件】触发组件事件3. 【父组件】监听子组件自定义事件4. 组件事件例子…

【大数据】记一次hadoop集群missing block问题排查和数据恢复

问题描述 集群环境总共有2个NN节点&#xff0c;3个JN节点&#xff0c;40个DN节点&#xff0c;基于hadoop-3.3.1的版本。集群采用的双副本&#xff0c;未使用ec纠删码。 问题如下&#xff1a; bin/hdfs fsck -list-corruptfileblocks / The list of corrupt files under path…

AI算法创新赛-人车目标检测竞赛总结04

队伍&#xff1a;AI000038 小组成员&#xff1a;杨志强&#xff0c;林松 1. 算法介绍 1.1 相关工作 当前流行的目标检测算法主要分为三种&#xff0c;一阶段算法&#xff1a;SSD&#xff0c;FCOS&#xff0c;Scaled&#xff0c;YOLO系列等&#xff1b;二阶段算法&#xff1a…

宝塔搭建实战php悟空CRM前后端分离源码-后端server篇(一)

大家好啊&#xff0c;我是测评君&#xff0c;欢迎来到web测评。 有个朋友发消息跟我说&#xff0c;能不能让我录制一期一套开源的悟空CRM系统&#xff0c;然后网上搜了下&#xff0c;搭建起来测试后&#xff0c;感觉还不错&#xff0c;是一套前后端分离的CRM系统&#xff0c;前…

Java浅析电信数据采集

技术&#xff1a;Java等摘要&#xff1a;电信运营系统中&#xff0c;电信计费系统是主要的支撑系统&#xff0c;占有重要地位。对于电信计费系统是电信运营商的核心竞争力之一这一观点愈来愈被业界认同。电信计费系统中的数据蕴含着企业经营态势、客户群分布特征及消费习惯、各…

什么是隔离式数字输入?

隔离式数字输入与数字隔离器虽然它们听起来很相似&#xff0c;但隔离式数字输入和数字隔离器之间实际上存在一些值得注意的差异。看完这篇文章&#xff0c;希望大家能轻松分辨出两种隔离功能的区别。 内部结构 数字隔离器具有提供电流隔离数字信号路径的基本&#xff08;或经…

网易的“草长莺飞二月天”:增长稳健,加码研发,逐浪AI

2月23日&#xff0c;网易发布了2022年第四季度财报。 这是网易与暴雪分道扬镳后的首份财报&#xff0c;加上近期AIGC热度扩散至游戏、教育等各个领域&#xff0c;网易第四季度业绩及其对于GPT等热门技术的探索受到市场关注。 根据财报&#xff0c;第四季度&#xff0c;网易营…

从单管单色到单管RGB,这项MicroLED工艺不可忽视

微显示技术商Porotech&#xff0c;在CES 2023期间展示了最新的MicroLED显示模组。近期&#xff0c;AR/VR光学领域的知名博主Karl Guttag深度分析了该公司的微显示技术&#xff0c;并指出Porotech带来了他见过最有趣的MicroLED技术。Guttag表示&#xff1a;Porotech是本届CES上给…

Airbyte的同步复制模式

ELT 哲学的核心原则&#xff0c;即数据在提取和加载阶段移动时应保持不变&#xff0c;以便始终可以在目标中访问原始数据。由于目标中存在数据的未修改版本&#xff0c;因此将来可以重新转换该版本&#xff0c;而无需从源系统重新同步数据。 基于此哲学&#xff0c;我们看看Air…

已经准备上千道软件测试面试题了,建议大家收藏!!!还有视频详解!

2023华为软件测试笔试面试真题&#xff0c;抓紧收藏不然就看不到了_测试小鬼的博客-CSDN博客_华为软件测试工程师面试题1、对计算机软件和硬件资源进行管理和控制的软件是&#xff08;D&#xff09;A.文件管理程序B.输入输出管理程序C.命令出来程序D.操作系统2、在没有需求文档…

C++类和对象:类的定义、类对象的存储、this指针

目录 一. 对于面向过程和面向对象的认识 二. 类 2.1 struct关键字定义类 2.1.1 C语言中的struct关键字 2.1.2 C中的struct关键字 2.2 class关键字 2.1 使用class关键字定义类 三. 类的访问限定及封装 3.1 类的访问权限及访问限定符 3.1.1 访问权限 3.1.2 访问限定…

3款百里挑一的国产软件,逆天好用,装了就舍不得卸载

推荐3款让你偷懒&#xff0c;让你上头的提效电脑软件&#xff0c;个个功能强大&#xff0c;让你远离加班&#xff01; 很多几个小时才能做好的事情&#xff0c;用上它们&#xff0c;只需要5分钟就行&#xff01;&#xff01; 1、JNPF快速开发平台 JNPF 是一款精巧耐用的软件…

Linux 练习一(思维导图 + 练习过程)

文章目录一、Linux 用户管理及文件操作第一段练习记录&#xff1a;主要对用户进行删除添加设置密码等操作第二段练习记录&#xff1a;主要包括权限设置和查找命令第三段练习记录&#xff1a;关于文件的命令练习第四段练习记录&#xff1a;查找命令及查看内存命令的使用二、Linu…