论文阅读_DALLE-2的unCLIP模型
论文信息
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,zi∣y)=P(x∣zi,y)P(zi∣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(x∣y)=P(x,zi∣y)=P(x∣zi,y)P(zi∣y)
利用上述公式,生成图片,其中先验(上图中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 损失函数。
Lprior =Et∼[1,T],zi(t)∼qt[∥fθ(zi(t),t,y)−zi∥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)−zi2]
另外,还使用主成分分析( PCA )对CLIP图像嵌入zi进行降维。通过在原始的1024个主成分中只保留320个主成分,能够保留几乎所有的信息,从后面实验部分,主成分中越重要的维度对应的概念越核心。
操作图像
下面展示了几种应用模型的方法:
生成语义相似的图像
给定一幅图像x,可以生成具有相同本质内容(主体元素和风格)但在其他方面不同的相关图像,如形状和方向。具体方法是通过η值控制DDIM采样的随机性。
上方是原图,下面九张为修改后生成的图。
混合图像
混合x1,x2两张图(最左和最右两张),通过对输入图像的嵌入使用球面插值在它们的zi1和zi2之间旋转。
修改图像
通过语义描述修改图像。输入是一个图像和对它的描述,以及转换目标的描述,如图第四行:输入为冬天图片,目标是将其转成秋天的图片。实现方法是计算两个输入标题嵌入的差值,然后使用插件方法在图像嵌入和文本差值间旋转。
探索稳空间
PCA重构提供了一种探测CLIP潜在空间结构的工具。在图-7中,右侧是原图,对CLIP的嵌入空间降维,原空间维度为1024,仅保留重性为24,30,40… 320的PCA维度进行重建。可以看到不同维度编码了哪些语义信息。
我们观察到重要性高的PCA维度保留了粗粒度的语义信息,如场景中的物体类型,而重要性相对低的PCA维度编码了更细粒度的细节,如物体的形状和精确形式。
例如,在第一个场景中,重要的维度只有食物,也许还有一个容器,而增加维度后则有西红柿、绿植和瓶子。
之后,作者还对图片的逼真度、多样性和美学性进行了评测,展示unCLIP优于之前模型。
相关文章:

论文阅读_DALLE-2的unCLIP模型
论文信息 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: [‘…...

软件测试5年,历经3轮面试成功拿下华为Offer,24K/16薪不过分吧
前言 转眼过去,距离读书的时候已经这么久了吗?,从18年5月本科毕业入职了一家小公司,到现在快5年了,前段时间社招想着找一个新的工作,前前后后花了一个多月的时间复习以及面试,前几天拿到了华为的…...

【软件工程】课程作业(三道题目:需求分析、概要设计、详细设计、软件测试)
文章目录:故事的开头总是极尽温柔,故事会一直温柔……💜一、你怎么理解需求分析?1、需求分析的定义:2、需求分析的重要性:3、需求分析的内容:4、基于系统分析的方法分类:5、需求分析…...

05 DC-AC逆变器(DCAC Converter / Inverter)简介
文章目录0、概述逆变原理方波变换阶梯波变换斩控调制方式逆变器分类逆变器波形指标1、方波变换器A 单相单相全桥对称单脉冲调制移相单脉冲调制单相半桥2、方波变换器B 三相180度导通120度导通(线、相的关系与180度相反)3、阶梯波逆变器独立直流源二极管钳…...

带你深层了解c语言指针
前言 🎈个人主页:🎈 :✨✨✨初阶牛✨✨✨ 🐻推荐专栏: 🍔🍟🌯 c语言进阶 🔑个人信条: 🌵知行合一 🍉本篇简介:>:介绍c语言中有关指针更深层的知识. 金句分享: ✨今天…...

2-MATLAB APP Design-下拉菜单栏的使用
一、APP 界面设计展示 1.新建一个空白的APP,在此次的学习中,我们会用到编辑字段(文本框)、下拉菜单栏、坐标区,首先在界面中拖入一个编辑字段(文本框),在文本框中输入内容:下拉菜单栏的使用,调整背景颜色,字体的颜色为黑色,字体的大小调为26. 2.在左侧组件库常用栏…...

七、HTTPTomcatServlet
1,Web概述 1.1 Web和JavaWeb的概念 Web是全球广域网,也称为万维网(www),能够通过浏览器访问的网站。 在我们日常的生活中,经常会使用浏览器去访问百度、京东、传智官网等这些网站,这些网站统称为Web网站。如下就是通…...
LeetCode 热题 C++ 198. 打家劫舍
力扣198 你是一个专业的小偷,计划偷窃沿街的房屋。每间房内都藏有一定的现金,影响你偷窃的唯一制约因素就是相邻的房屋装有相互连通的防盗系统,如果两间相邻的房屋在同一晚上被小偷闯入,系统会自动报警。 给定一个代表每个房屋存…...

C语言学习笔记——程序环境和预处理
目录 前言 一、程序环境 1. 翻译环境 1.1 主要过程 1.2 编译过程 2. 运行环境 二、预处理 1. 预定义符号 2. #define 2.1 #define定义标识符 2.2 #define定义宏 2.3 命名约定和移除定义 3. 条件编译 4. 文件包含 结束语 前言 每次我们写完代码运行的时候都…...

「JVM 高效并发」Java 内存模型
Amdahl 定律代替摩尔定律成为了计算机性能发展的新源动力,也是人类压榨计算机运算能力的最有力武器; 摩尔定律,描述处理器晶体管数量与运行效率之间的发展关系;Amdahl 定律,描述系统并行化与串行化的比重与系统运算加…...

C语言刷题(2)——“C”
各位CSDN的uu们你们好呀,今天小雅兰来复习一下之前所学过的内容噢,复习的方式,那当然是刷题啦,现在,就让我们进入C语言的世界吧 当然,题目还是来源于牛客网 完完全全零基础 编程语言初学训练营_在线编程题…...

第一个 Spring MVC 注解式开发案例(初学必看)
✅作者简介:2022年博客新星 第八。热爱国学的Java后端开发者,修心和技术同步精进。 🍎个人主页:Java Fans的博客 🍊个人信条:不迁怒,不贰过。小知识,大智慧。 💞当前专栏…...

openresty学习笔记
openresty 简介 openresty 是一个基于 nginx 与 lua 的高性能 web 平台,其内部 集成了大量精良的 lua 库、第三方模块以及大数的依赖项。用于 方便搭建能够处理超高并发、扩展性极高的动态 web 应用、 web 服务和动态网关。 openresty 通过汇聚各种设计精良的 ngi…...
微信小程序DAY3
文章目录一、页面导航1-1、声明式导航1-2、编程式导航1-3、声明式导航传参1-4、编程式导航传参1-5、获取导航传递的参数二、页面事件2-1、下拉刷新事件2-1-1、启用下拉刷新2-1-2、配置下拉刷新2-1-3、监听页面下拉刷新事件2-2、上拉触底事件2-2-1、事件触发2-2-1、事件配置三、…...

【CAN】手把手教你学习CAN总线(一)
CAN总线一、CAN总线概念二、CAN的差分信号三、CAN总线的通信协议1、 帧起始2、仲裁段3、控制段4、数据段5、CRC段6、ACK段7、帧结束四、CAN的位时序1、同步段(SS)2、传播时间段(PTS)3、相位缓冲段(PBS)4、再…...

JUC 体系的基石——AQS
—— AQS(AbstractQueuedSynchronizer) 概念 抽象队列同步器;volatile cas 机制实现的锁模板,保证了代码的同步性和可见性,而 AQS 封装了线程阻塞等待挂起,解锁唤醒其他线程的逻辑。AQS 子类只需要根据状…...
Qt中信号与槽的使用
Qt中信号与槽的使用 Qt当中一个重要的东西是信号和槽,它被用于对象之间的通信。 在Qt中,例如“点击按钮”这个事件就是发送信号的对象,接收信号的是某一个窗口,响应信号的是一个处理,可以是隐藏窗口或者是关闭窗口。…...

力扣-销售员
大家好,我是空空star,本篇带大家了解一道简单的力扣sql练习题。 文章目录前言一、题目:607. 销售员二、解题1.正确示范①提交SQL运行结果2.正确示范②提交SQL运行结果3.正确示范③提交SQL运行结果4.正确示范④提交SQL运行结果5.其他总结前言 …...

HTML综合案例练习
一、展示简历内容 可以首先看一下我们的效果,之后再思考怎么实现 总的来说,这个练习不算难。 这里关于这个简历的代码编写我们不说太多,只注意以下几个内容即可: 注意及时查看我们的代码是否符合预期,即一段一段测 …...

MySQL运维
目录 1、日志 1、错误日志 2、二进制日志 3、查询日志 4、慢查询日志 2、主从复制 搭建 1、主库配置 2、从库配置 3、分库分表 1、简介 编辑 1、垂直拆分 2、水平拆分 3、实现技术 2、MyCat 3、MyCat使用和配置 配置 4、MyCat分片 1、垂直拆分 2、水平拆分…...

深度学习在微纳光子学中的应用
深度学习在微纳光子学中的主要应用方向 深度学习与微纳光子学的结合主要集中在以下几个方向: 逆向设计 通过神经网络快速预测微纳结构的光学响应,替代传统耗时的数值模拟方法。例如设计超表面、光子晶体等结构。 特征提取与优化 从复杂的光学数据中自…...

Zustand 状态管理库:极简而强大的解决方案
Zustand 是一个轻量级、快速和可扩展的状态管理库,特别适合 React 应用。它以简洁的 API 和高效的性能解决了 Redux 等状态管理方案中的繁琐问题。 核心优势对比 基本使用指南 1. 创建 Store // store.js import create from zustandconst useStore create((set)…...

Redis相关知识总结(缓存雪崩,缓存穿透,缓存击穿,Redis实现分布式锁,如何保持数据库和缓存一致)
文章目录 1.什么是Redis?2.为什么要使用redis作为mysql的缓存?3.什么是缓存雪崩、缓存穿透、缓存击穿?3.1缓存雪崩3.1.1 大量缓存同时过期3.1.2 Redis宕机 3.2 缓存击穿3.3 缓存穿透3.4 总结 4. 数据库和缓存如何保持一致性5. Redis实现分布式…...
工程地质软件市场:发展现状、趋势与策略建议
一、引言 在工程建设领域,准确把握地质条件是确保项目顺利推进和安全运营的关键。工程地质软件作为处理、分析、模拟和展示工程地质数据的重要工具,正发挥着日益重要的作用。它凭借强大的数据处理能力、三维建模功能、空间分析工具和可视化展示手段&…...
MVC 数据库
MVC 数据库 引言 在软件开发领域,Model-View-Controller(MVC)是一种流行的软件架构模式,它将应用程序分为三个核心组件:模型(Model)、视图(View)和控制器(Controller)。这种模式有助于提高代码的可维护性和可扩展性。本文将深入探讨MVC架构与数据库之间的关系,以…...

(二)原型模式
原型的功能是将一个已经存在的对象作为源目标,其余对象都是通过这个源目标创建。发挥复制的作用就是原型模式的核心思想。 一、源型模式的定义 原型模式是指第二次创建对象可以通过复制已经存在的原型对象来实现,忽略对象创建过程中的其它细节。 📌 核心特点: 避免重复初…...
ffmpeg(四):滤镜命令
FFmpeg 的滤镜命令是用于音视频处理中的强大工具,可以完成剪裁、缩放、加水印、调色、合成、旋转、模糊、叠加字幕等复杂的操作。其核心语法格式一般如下: ffmpeg -i input.mp4 -vf "滤镜参数" output.mp4或者带音频滤镜: ffmpeg…...

Cinnamon修改面板小工具图标
Cinnamon开始菜单-CSDN博客 设置模块都是做好的,比GNOME简单得多! 在 applet.js 里增加 const Settings imports.ui.settings;this.settings new Settings.AppletSettings(this, HTYMenusonichy, instance_id); this.settings.bind(menu-icon, menu…...
leetcodeSQL解题:3564. 季节性销售分析
leetcodeSQL解题:3564. 季节性销售分析 题目: 表:sales ---------------------- | Column Name | Type | ---------------------- | sale_id | int | | product_id | int | | sale_date | date | | quantity | int | | price | decimal | -…...

Redis数据倾斜问题解决
Redis 数据倾斜问题解析与解决方案 什么是 Redis 数据倾斜 Redis 数据倾斜指的是在 Redis 集群中,部分节点存储的数据量或访问量远高于其他节点,导致这些节点负载过高,影响整体性能。 数据倾斜的主要表现 部分节点内存使用率远高于其他节…...