(2023,提示分布学习,重参数化,正交损失)DreamDistribution:文本到图像扩散模型的提示分布学习

news2025/1/18 11:10:20

DreamDistribution: Prompt Distribution Learning for Text-to-Image Diffusion Models

公众:EDPJ(添加 VX:CV_EDPJ 或直接进 Q 交流群:922230617 获取资料)

目录

0. 摘要

1. 方法

1.1 文本到图像扩散

1.2 提示调整

1.3 学习提示分布

2. 结果

3. 局限性 

S. 总结

S.1 主要贡献

S.2 方法


0. 摘要

Text-to-Image (T2I) 扩散模型的普及使得能够从文本描述生成高质量的图像。然而,使用参考视觉属性生成多样化的定制图像仍然具有挑战性。本工作的重点是在更抽象的概念或类别级别上个性化 T2I 扩散模型,从一组参考图像中保留共同点,同时创建具有足够变化的新实例。我们引入了一种解决方案,允许预训练的 T2I 扩散模型学习一组软提示,通过从学到的分布中采样提示,实现生成新颖图像的能力。这些提示提供了文本引导的编辑功能,并在控制变化和混合多个分布方面提供了额外的灵活性。我们还展示了学到的提示分布对其他任务的适应性,例如文本到 3D。最后,通过包括自动评估和人工评估在内的定量分析,我们展示了我们方法的有效性。

项目网站:https://briannlongzhao.github.io/DreamDistribution

1. 方法

给定一组带有一些共同视觉属性的图像(例如相同的类别,相似的风格),我们的目标是在文本特征空间中捕捉视觉的共性和变化,并通过一个提示分布对其进行建模,该分布与自然语言兼容。参考图像之间的共同点可能很难用自然语言提示来表达。因此,我们可以从分布中采样提示,以引导 T2I 扩散模型生成多样的未见图像,同时遵循共同特征分布。学习到的提示的固有特性与自然语言说明和其他预训练的文本引导生成模型兼容。

1.1 文本到图像扩散

文本到图像扩散模型是一类生成模型,通过逐渐去噪从高斯分布中抽样的噪声来学习图像或图像潜在分布。具体来说,给定自然语言文本提示,一个标记器,然后是一个文本嵌入层,将输入文本映射到嵌入向量序列 p。文本编码器将文本嵌入转换为用于调节生成过程的文本特征 c = E(p)。从 N(0, I) 中抽样初始噪声 ϵ,并且去噪模型 ϵ_θ 预测添加到图像潜在 x 的有噪版本的噪声。去噪模型 ϵ_θ 使用如下目标进行优化:

其中 x 是从学习的自动编码器获得的地面实况图像或图像潜在图像,x_t 是在时间步骤 t 的 x 的嘈杂版本,而 ϵ ∼ N(0, I)。

1.2 提示调整

我们提出的方法基于提示调整(prompt tuning)的概念,旨在学习目标任务上的软连续提示,广泛用于微调自然语言处理模型[11, 21, 22, 24, 25]。具体来说,对于一个以自然语言提示作为输入的预训练模型,我们可以制定一个具有连续可学习标记嵌入的提示 P = [PREFIX] V [SUFFIX] ∈ R^(L×d),其中 [PREFIX] 和 [SUFFIX] 是自然语言前缀和后缀的词嵌入(如果需要的话),L 表示提示长度或标记总数,d 表示词嵌入的维度。V = [v]_1 . . . [v]_M ∈ R^(M×d) 表示具有与词嵌入相同维度的 M 个可学习标记嵌入向量的序列。

在微调过程中,预训练生成模型的参数保持不变,只有可学习的标记嵌入 V 通过直接优化更新,利用相应的损失函数反向传播到生成器 ϵ_θ 和文本编码器 E。形式上,提示调整旨在找到优化的嵌入向量 V* = arg max_V P(Y | P,X),其中 X 和 Y 分别是输入数据和输出标签。

先前的研究已经显示了在图像分类任务中采用提示调整技术对视觉语言模型的有效性 [18, 58, 59]。Gal 等人 [7] 采用了类似的提示调整方法,实现了个性化生成。然而,这种方法的局限性在于它只能个性化一个特定的概念,例如一个特定的狗,因为它使用了一个固定的标记嵌入来进行概念编码。

1.3 学习提示分布

我们的目标是建模在参考图像集中呈现的更一般的共性和变化,并生成视觉上对齐的各种新实例的图像,因此我们提出为参考图像建模一个可学习的提示分布。受 Lu 等人 [26] 的启发,该论文提出了估计图像分类任务的提示分布,我们提议利用扩散模型,在一系列 M 个标记嵌入上建模可学习的提示分布,以捕捉 T2I 生成任务中视觉属性的分布。

我们的方法建立在稳定扩散 [37] 的基础上,其中使用预训练的 CLIP [33] 文本编码器获取提示的文本特征。由于 CLIP 的对比训练目标,具有相似语义含义的文本特征在余弦相似性上具有较高的相似性,因此在 CLIP 特征空间中彼此靠近 [33]。Lu 等人 [26] 还表明,对于描述相同类别图像的文本提示,预训练的 CLIP 文本编码器输出的 CLIP 文本特征 c 相邻。因此,对于描述相同类别或具有共享属性的图像,建模描述 c 的高斯分布是自然的。为此,我们不是在训练过程中保留一个可学习的软提示进行优化,而是保持一组 K 个可学习的提示

对应于一组相似的参考图像。我们的目标是优化一组可学习的标记嵌入

通过 K 个可学习的提示,我们可以在文本编码器空间估计均值和标准差,

其中 d_E 是文本编码器空间的特征维度。

应用于 T2I 扩散模型的训练目标,方程 (1) 变为:

其中 ˜c ∼ N( μ_c,σ^2_c) ,而 ϵ ∼ N(0, I) 是添加到图像或图像潜在的采样高斯噪声。然而,从分布中采样 ˜c 在优化过程中不可微,因此我们应用类似于 VAE [19] 中使用的重参数化技巧。形式上,由于 ˜c ∼ N( μ_c,σ^2_c),我们可以将优化目标 Eq. (2) 重写为: 

其中 ω ∼ N (0, I) 具有与 μ_c 和 σ_c 相同的维度。由于精确计算 L(P_K) 是不可行的,我们使用蒙特卡洛(Monte Carlo)方法对 ω 进行 S 次采样以近似期望值进行优化: 

为了避免多个提示特征收敛到相同的向量,导致不具代表性的低方差分布的情况,我们应用了类似的 [26] 中提出的正交损失,对余弦相似性进行惩罚,并鼓励每一对提示之间的正交性: 

其中 〈·, ·〉 是一对向量之间的余弦相似度。因此,总损失为: 

其中 λ 是一个超参数。

2. 结果

定性、定量以及人工评估显示,DreamDistribution 表现良好。

3. 局限性 

尽管我们的方法能够生成多样的新颖分布内图像,但它确实具有一定的局限性。具体来说,当训练图像的数量有限且非常多样时,我们的方法可能难以捕捉视觉特征。此外,高斯分布的假设可能在训练图像和文本编码器的潜在空间中过于限制。在未来,我们希望能够找到一种更强健的方法,从少量且高度多样的图像中学习分布,采用更准确的假设和弹性的分布形式。

S. 总结

S.1 主要贡献

梦常常以创新的方式重新组合现实的元素,带来新的视角和想法。

基于此,本文提出 DreamDistribution,允许预训练的 T2I 扩散模型学习一组软提示(捕捉文本特征空间中视觉的共性和变化),通过从学到的提示分布中采样,实现在保留参考图像中共同点的同时,创建具有足够变化的新实例。

S.2 方法

提示分布学习

  • 制定一个具有连续可学习标记嵌入的提示 P = [PREFIX] V [SUFFIX],其中 [PREFIX] 和 [SUFFIX] 是自然语言前缀和后缀的词嵌入,V 表示可学习标记嵌入向量的序列。
  • 根据 V* = arg max_V P(Y | P, X) 优化一组可学习的标记嵌入,其中 X 和 Y 分别是输入数据和输出标签。
  • 在文本编码器空间估计优化的嵌入的提示的均值 μ_c 和标准差 σ_c(建模提示分布)。
  • 训练目标如等式 2 所示,其中 ˜c ∼ N( μ_c,σ^2_c)

重参数化:采样的提示在优化中不可微 ,为解决这个问题,使用类似 VAE 的重参数化技巧,并使用蒙特卡罗法进行近似优化。

正交损失:为避免降低多样性,在文本编码器空间中,使用正交损失对提示嵌入的余弦相似性进行惩罚,鼓励每一对提示之间的正交性。

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

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

相关文章

utf8mb4_0900_ai_ci、utf8mb4_0900_as_ci、utf8mb4_0900_as_cs 这三者有什么区别

utf8mb4_0900_ai_ci, utf8mb4_0900_as_ci, 和 utf8mb4_0900_as_cs 是 MySQL 数据库中使用的字符集和校对规则。这些校对规则决定了如何比较和排序字符数据。它们属于 utf8mb4 字符集,这是 UTF-8 编码的超集,支持最多 4 个字节的字符,能够存储…

前端 js 基础(2)

js For In for in 循环遍历 person 对象每次迭代返回一个键 (x)键用于访问键的值键的值为 person[x] 如果索引顺序很重要,请不要在数组上使用 for in。 索引顺序依赖于实现,可能不会按照您期望的顺序访问数组值。 当顺序很重要时,最好使用 f…

红队打靶练习:MISDIRECTION: 1

信息收集 1、arp ┌──(root㉿ru)-[~/kali] └─# arp-scan -l Interface: eth0, type: EN10MB, MAC: 00:0c:29:69:c7:bf, IPv4: 192.168.12.128 Starting arp-scan 1.10.0 with 256 hosts (https://github.com/royhills/arp-scan) 192.168.12.1 00:50:56:c0:00:08 …

解锁加密生态:用户钱包画像分析

作者:stellafootprint.network 随着加密资产的爆发式增长,对链上交易动态的分析变得至关重要。像 Footprint Analytics 这样的平台让投资者、开发者和企业可以通过用户钱包画像分析(Wallet Profile),去解锁加密生态。 用户钱包画…

Spring-4-代理

前面提到过,在Spring中有两种类型的代理:使用JDK Proxy类创建的JDK代理以及使用CGLIB Enhancer类创建的基于CGLIB的代理。 你可能想知道这两种代理之间有什么区别,以及为什么 Spring需要两种代理类型。 在本节中,将详细研究代理…

ssm基于web的马病管理系统设计与实现+jsp论文

摘 要 传统信息的管理大部分依赖于管理人员的手工登记与管理,然而,随着近些年信息技术的迅猛发展,让许多比较老套的信息管理模式进行了更新迭代,马病信息因为其管理内容繁杂,管理数量繁多导致手工进行处理不能满足广大…

mxxWechatBot微信机器人V2版本文档说明

大家伙,我是雄雄,欢迎关注微信公众号:雄雄的小课堂。 先看这里 一、前言二、mxxWechatBot流程图三、怎么使用? 一、前言 经过不断地探索与研究,mxxWechatBot正式上线,届时全面开放使用。 mxxWechatBot&am…

递归详解之青蛙跳台阶和汉诺塔问题

𝙉𝙞𝙘𝙚!!👏🏻‧✧̣̥̇‧✦👏🏻‧✧̣̥̇‧✦ 👏🏻‧✧̣̥̇:Solitary-walk ⸝⋆ ━━━┓ - 个性标签 - :来于“云”的“羽球人”。…

阻止指定IP地址进行网站访问的简单方式

​  许多网站管理员,应该都会将恶意持续访问的IP请求视为比较头疼的一个问题。要解决这个不正常的访问请求,增强网站安全性,有些简单方式可用。在下面的文章中,介绍了使用.htaccess来禁止某些IP地址的简单方式。 首先&#xff0…

C#的checked关键字判断是否溢出

目录 一、定义 二、示例: 三、生成: 一、定义 使用checked关键字处理溢出。 在进行数学运算时,由于变量类型不同,数值的值域也有所不同。如果变量中的数值超出了变量的值域,则会出现溢出情况,出现溢出…

C++内联函数与引用(超详细)

文章目录 前言一、内联函数1.为什么会存在内联函数2.什么是内联函数3.内联函数注意事项 二、引用1.什么是引用2.引用的特性3.常引用4.引用使用场景5.引用与指针 总结 前言 一、内联函数 1.为什么会存在内联函数 🧐🧐首先我们介绍内联函数之前&#xf…

ESP32入门六(读取引脚的模拟信号[3]:信号出现误差的原因[硬件篇])

在之前的文章中,我们介绍了ESP32在读取模拟信号时出现的误差的软件方面原因,在这一篇中,将会介绍并测试由于硬件或其它方面导致数据出现误差的原因。 一、厂商原因 首先,我们需要知道,在每块EPS32中,在出…

unity随笔- 2D动画制作animation

1.前提:将连续的动作图片制为图集。 2.在Hierarchy中选中含图集的sprites对象。 3.打开animator组件,点击create创建动画组件 4.添加property选择sprite 5.选择图集需要的部分加入animation。(animation使用见animator)

互联网加竞赛 基于Django与深度学习的股票预测系统

文章目录 0 前言1 课题背景2 实现效果3 Django框架4 数据整理5 模型准备和训练6 最后 0 前言 🔥 优质竞赛项目系列,今天要分享的是 🚩 **基于Django与深度学习的股票预测系统 ** 该项目较为新颖,适合作为竞赛课题方向&#xff…

【计算机毕业设计】SSM汽车维修预约平台

项目介绍 本项目分为前后台,前台为普通用户登录,后台为管理员登录; 管理员角色: 管理员登录,新增管理员信息,查看管理员信息,查询管理员信息,查看用户信息列表,查询用户信息,新增新闻公告,查看新闻公告,查询新闻公告,新增配件类…

【unity学习笔记】配置模型,实现眨眼和口型效果

一、vriod捏人 1.在vroidstudio软件中捏人 2.导出模型(.vrm) 二、vrid导入unity的插件 1.在Git上搜索、打开univrm。 2.找到release页面找到合适的插件版本。(VRM-0.116.0_0f6c) 3.将univrm导入到工程中(assets)。 三…

Unity坦克大战开发全流程——开始场景——开始界面

开始场景——开始界面 step1:设置UI 反正按照这张图拼就行了 step2:写脚本 前面的拼UI都是些比较机械化的工作,直到这里写代码的时候才真正开始有点意思了,从这里开始,我们就要利用面向对象的思路来进行分析&#xff1…

【AIGC-图片生成视频系列-3】AI视频随心而动:MotionCtrl的相机运动控制和物体运动控制

最近,「单张图片生成视频」相关工作很多,但运动控制的准确性依旧是个挑战,包括相机运动的控制以及物体运动控制。 然,MotionCtrl 横空出世。 一. 项目简介 MotionCtrl——一个相机运动控制、物体运动控制的视频工具&#xff0c…

WEB渗透—PHP反序列化(十一)

Web渗透—PHP反序列化 课程学习分享(课程非本人制作,仅提供学习分享) 靶场下载地址:GitHub - mcc0624/php_ser_Class: php反序列化靶场课程,基于课程制作的靶场 课程地址:PHP反序列化漏洞学习_哔哩…

如何在iterm2的命令行中快速移动

文章目录 一、打开Preferences设置二、进行key的映射三、修改键值四、参考文献 一、打开Preferences设置 二、进行key的映射 三、修改键值 四、参考文献 Mac下iTerm2光标按照单词快速移动设置