论文阅读_DALLE-2的unCLIP模型

news2024/11/15 20:07:48

论文信息

name_en: Hierarchical Text-Conditional Image Generation with CLIP Latents
name_ch: 利用CLIP的层次化文本条件图像生成
paper_addr: http://arxiv.org/abs/2204.06125
doi: 10.48550/arXiv.2204.06125
date_read: 2023-02-12
date_publish: 2022-04-12
tags: [‘深度学习’,‘自然语言处理’,‘图形图像’]
author: Aditya Ramesh
citation: 703

读后感

OpenAI出品,应用于DALL-E 2。主要实现了以文本为条件生成图像。它在图像的还原和生成过程中,利用了图像与文本间的映射关系,文本可以看作是人对图片内容的抽象,它让模型从人的视角“看”图片,识别了其中人觉得最重要的内容;在图片内容和人类概念之间建立联系,并能通过文本描述的概念来生成和编辑图片。
从技术层面看,它主要基于CLIP,Diffusion模型,并在GLIDE的方法之上进行了改进(之前GLIDE尝试了有分类的CLIP,本文尝试了无分类的CLIP;GLIDE对Diffusion中加噪图片训练CLIP对齐嵌入,本文用不加噪图片做CLIP)。

介绍

CLIP模型在图片和文本之间建立映射关系,能很好的获取图片的含义和风格。本文基于CLIP,提出了两阶段模型(如图):首先,生成给定文本描述对应的CLIP图像嵌入,然后,用解码器生成以图像嵌入为条件的图像。其解码器尝试了自回归和扩散两种方法,发现扩散模型效率更高。

其核心逻辑如图所示:虚线上结合了文本和图像的表示空间;虚线下是生成图片的过程,用文本嵌入产生一个图像嵌入,然后利用这个嵌入在条件约束下送入扩散解码器产生最终图像。

方法

数据集由成对的( x , y):图像x和它们对应的描述y组成,用zi和zt分别表示CLIP图像和文本嵌入。
P ( x ∣ y ) = P ( x , z i ∣ y ) = P ( x ∣ z i , y ) P ( z i ∣ y ) P(x \mid y)=P\left(x, z_{i} \mid y\right)=P\left(x \mid z_{i}, y\right) P\left(z_{i} \mid y\right) P(xy)=P(x,ziy)=P(xzi,y)P(ziy)
利用上述公式,生成图片,其中先验(上图中prior)P (zi | y),生成以字幕y为条件的CLIP图像嵌入zi;解码器(上图中Decoder)P (x|zi , y),生成以CLIP图像嵌入zi (以及可选的文本标题y)为条件的图像x(具体训练细见附录C)。

解码器 Decoder

使用扩散模型生成基于CLIP图像嵌入(以及可选的文本标题)的图像。基于GLIDE模型做了一些修改(GLIDE模型使用加噪后的图片训练CLIP),将CLIP嵌入投影到额外的4个上下文标记中,这些上下文标记串联到GLIDE文本编码器的输出序列中;并在训练过程中随机丢弃文本标题50 %的来实现无分类器指导;另外,还考虑了上采样以改进模型精度,以及提升模型鲁棒性的方法。

先验 Prior

上述编码器可用嵌入空间数据生成图像,但还需要一个先验模型,从标题y生成zi,以便从文本生成图像。本文探索了两种不同的模型作为先验模型:

  • 自回归先验
  • 扩散先验
    其中扩散模型效率更高。训练一个带因果注意力掩膜的解码器Transformer,之前的扩散先验由:编码文本、CLIP文本嵌入、扩散时间步嵌入、带噪CLIP图像嵌入、最终通过Transformer预测不带噪CLIP图像嵌入。本文生成zi的两个样本,并选择与zt点积较高的样本来提高采样质量。并且发现更好的Diffusion方法是训练模型直接预测不带噪的zi,因此改进了 Diffusion 损失函数。

L prior  = E t ∼ [ 1 , T ] , z i ( t ) ∼ q t [ ∥ f θ ( z i ( t ) , t , y ) − z i ∥ 2 ] L_{\text {prior }}=\mathbb{E}_{t \sim[1, T], z_{i}^{(t)} \sim q_{t}}\left[\left\|f_{\theta}\left(z_{i}^{(t)}, t, y\right)-z_{i}\right\|^{2}\right] Lprior =Et[1,T],zi(t)qt[ fθ(zi(t),t,y)zi 2]

另外,还使用主成分分析( PCA )对CLIP图像嵌入zi进行降维。通过在原始的1024个主成分中只保留320个主成分,能够保留几乎所有的信息,从后面实验部分,主成分中越重要的维度对应的概念越核心。

操作图像

下面展示了几种应用模型的方法:

生成语义相似的图像

给定一幅图像x,可以生成具有相同本质内容(主体元素和风格)但在其他方面不同的相关图像,如形状和方向。具体方法是通过η值控制DDIM采样的随机性。

上方是原图,下面九张为修改后生成的图。

混合图像

混合x1,x2两张图(最左和最右两张),通过对输入图像的嵌入使用球面插值在它们的zi1和zi2之间旋转。

修改图像

通过语义描述修改图像。输入是一个图像和对它的描述,以及转换目标的描述,如图第四行:输入为冬天图片,目标是将其转成秋天的图片。实现方法是计算两个输入标题嵌入的差值,然后使用插件方法在图像嵌入和文本差值间旋转。

探索稳空间

PCA重构提供了一种探测CLIP潜在空间结构的工具。在图-7中,右侧是原图,对CLIP的嵌入空间降维,原空间维度为1024,仅保留重性为24,30,40… 320的PCA维度进行重建。可以看到不同维度编码了哪些语义信息。

我们观察到重要性高的PCA维度保留了粗粒度的语义信息,如场景中的物体类型,而重要性相对低的PCA维度编码了更细粒度的细节,如物体的形状和精确形式。

例如,在第一个场景中,重要的维度只有食物,也许还有一个容器,而增加维度后则有西红柿、绿植和瓶子。

之后,作者还对图片的逼真度、多样性和美学性进行了评测,展示unCLIP优于之前模型。

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

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

相关文章

【CSS】CSS 层叠样式表 ③ ( CSS 引入方式 - 外链式 | CSS 样式规则 )

文章目录一、CSS 引入方式 - 外链式1、外链式 CSS 语法2、CSS 代码3、HTML 代码二、CSS 样式规则一、CSS 引入方式 - 外链式 1、外链式 CSS 语法 将 CSS 代码 写在外部的 xxx.css 外部样式表文件 中 , 然后 在 HTML 的 head 标签 中 , 使用 <head> <link rel"sty…

JavaSE学习笔记day15

零、 复习昨日 HashSet 不允许重复元素,无序 HashSet去重原理: 先比较hashcode,如果hashcode不一致,直接存储如果hashcode值一样,再比较equals如果equals值为true,则认为完全一样,不存储即去重否则存储 如果使用的是空参构造创建出的TreeSet集合,那么它底层使用的就是自然排序,…

_improve-1

类型及检测方式 1. JS内置类型 JavaScript 的数据类型有下图所示 其中&#xff0c;前 7 种类型为基础类型&#xff0c;最后 1 种&#xff08;Object&#xff09;为引用类型&#xff0c;也是你需要重点关注的&#xff0c;因为它在日常工作中是使用得最频繁&#xff0c;也是需要…

C/C++每日一练(20230226)

目录 17. 电话号码的字母组合 37. 解数独 51. N 皇后 52. N皇后 II 89. 格雷编码 90. 子集 II 17. 电话号码的字母组合 给定一个仅包含数字 2-9 的字符串&#xff0c;返回所有它能表示的字母组合。答案可以按 任意顺序 返回。 给出数字到字母的映射如下&#xff08;与电…

java spring AOP 完全注解开发

我们先创建一个项目 然后引入java spring aop的依赖 然后 在src下创建目录 我这里 直接就叫 Aop了 下面创建一个User类 参考代码如下 package Aop;import org.springframework.stereotype.Component;Component public class User {public void add(){System.out.println(&qu…

Allegro如何锁定报表界面操作指导

Allegro如何锁定报表界面操作指导 用Allegro做PCB设计的时候,进行测量的时候,比如测量器件两个PIN中间的间距,如下图,会有一个报表显示 但是当运行下一个命令的时候,报表会被自动关闭掉。 但是有时我们需要报表界面仍被保留 下面介绍如何将报表界面进行锁定,不受下一个…

新氧2023年财务业绩预测:退市风险大幅降低,收入增长将放缓

来源&#xff1a;猛兽财经 作者&#xff1a;猛兽财经 公司进展 与新氧&#xff08;SY&#xff09;有关的两个重要积极进展值得一提。 第一个积极进展是新氧的退市风险已在很大程度上降低。 2023年1月6日&#xff0c;新氧披露&#xff0c;它已经“重新符合纳斯达克规定的股价每…

AIR32F103(九) CAN总线的通信和ID过滤机制及实例

目录 AIR32F103(一) 合宙AIR32F103CBT6开发板上手报告AIR32F103(二) Linux环境和LibOpenCM3项目模板AIR32F103(三) Linux环境基于标准外设库的项目模板AIR32F103(四) 27倍频216MHz,CoreMark跑分测试AIR32F103(五) FreeRTOSv202112核心库的集成和示例代码AIR32F103(六) ADC,I2S…

Zookeeper完全分布式集群服务

准备好3台服务器:[x]A-> centos7s:192.168.19.1[x]B-> centos7_1:192.168.19.2[x]C-> centos7_2:192.168.19.3配置Zookeeper安装目录在3台宿主机配置zookeeper安装目录&#xff1a;/docker/develop/zookeeper并且在文件夹创建 data 和logs 目录&#xff1a;mkdir -p /…

STM32Cube串口USART发送接收数据

本文代码使用 HAL 库。 文章目录前言一、USART 同步/异步串行接收/发送器二、USART 原理图三、CubeMX 创建工程四、usart.c 文件解析五&#xff0c;设计实验&#xff1a;在 串口输入字符点亮led实验现象&#xff1a;总结前言 这篇文章介绍 实现 USART 异步模式下 通过 串口助手…

去了字节跳动,才知道年薪40W的测试居然有这么多?

今年大环境不好&#xff0c;内卷的厉害&#xff0c;薪资待遇好的工作机会更是难得。最近脉脉职言区有一条讨论火了&#xff1a; 哪家互联网公司薪资最‘厉害’&#xff1f; 下面的评论多为字节跳动&#xff0c;还炸出了很多年薪40W的测试工程师 我只想问一句&#xff0c;现在的…

【设计模式】 观察者模式介绍及C代码实现

【设计模式】 观察者模式介绍及C代码实现 背景 在软件构建过程中&#xff0c;我们需要为某些对象建立一种“通知依赖关系”&#xff0c;即一个对象&#xff08;目标对象&#xff09;的状态发生改变&#xff0c;所有的依赖对象&#xff08;观察者对象&#xff09;都将得到通知。…

连续隐身四天、被传退出德云社,于谦未参加相声大会的原因找到了

欲戴皇冠&#xff0c;必受其重。意思就是一个人拥有一定的地位和声望&#xff0c;就会承担由此带来的责任和压力。 就拿德云社郭德纲搭档于谦来说&#xff0c;虽然他是一个谦虚低调的人&#xff0c;但是因为郭德纲老师名气太大&#xff0c;也让于谦伴随着一起名声鹊起。于谦老师…

chatgpt的原理 第三部分

对话 我们是如何学会中文的&#xff1f;从0岁开始&#xff0c;听、说&#xff0c;也就是对话。 我们是如何学外语的&#xff1f;看教材&#xff0c;听广播&#xff0c;背单词。唯独缺少了对话&#xff01;正是因为缺少了对话这个高效的语言学习方式&#xff0c;所以我们的英语…

8个小程序开源项目助你快速搭建小程序

今天和大家分享几个小程序开源项目, 帮助我们轻松搭建自己的小程序应用. 我会从大家最熟悉的小程序UI组件, 到可视化库, 再到完整项目, 一一和大家介绍.小程序UI组件库小程序多端开发框架小程序可视化图表库经典小程序开源项目小程序UI组件库1. vant-weappVant Weapp 是移动端 …

MXNet中使用卷积神经网络textCNN对文本进行情感分类

在图像识别领域&#xff0c;卷积神经网络是非常常见和有用的&#xff0c;我们试图将它应用到文本的情感分类上&#xff0c;如何处理呢&#xff1f;其实思路也是一样的&#xff0c;图片是二维的&#xff0c;文本是一维的&#xff0c;同样的&#xff0c;我们使用一维的卷积核去处…

LLVM程序分析与编译转换框架论文分享

LLVM 2004年论文原文 概述 本文描述了 LLVM&#xff08;低级虚拟机&#xff09;&#xff0c;一种编译器框架&#xff0c;旨在通过在编译时、链接时、运行时&#xff0c;以及运行之间的空闲时间。 LLVM 以静态单一赋值 (SSA) 形式定义了一种通用的低级代码表示&#xff0c;具有…

多区域的OSPF实战配置

多区域的OSPF实战配置 需求 如图配置设备的接口IP地址如图规划OSPF网络的区域要求每个设备的 router-id 都是 x.x.x.x&#xff08;x是每个路由器的名字&#xff09;确保不同的PC之间可以互通 拓扑图 配置命令 PC1&#xff1a; 192.168.1.1 255.255.255.0 192.168.1.254PC2:…

【手把手一起学习】(六) Altium Designer 20 STM32核心板Demo----PCB设计

1 PCB设计 PCB设计是制作STM32核心板的关键步骤&#xff0c;其关系到最终生产厂家制作的电路板能否正常使用&#xff0c;PCB设计包括布局&#xff0c;裁板&#xff0c;布线&#xff0c;覆铜&#xff0c;DRC检查等&#xff0c;其中要求、细节、技巧比较多&#xff0c;以后会更详…

redis(7)哈希Hash

哈希Hash Redis hash 是一个键值对集合。 Redis hash 是一个 string 类型的 field 和 value 的映射表&#xff0c;hash 特别适合用于存储对象。 类似 Java 里面的 Map<String,Object>。 用户 ID 为查找的 key&#xff0c;存储的 value 用户对象包含姓名&#xff0c;年…