【论文阅读】(DALL-E)Zero-Shot Text-to-Image Generation

(DALL-E)Zero-Shot Text-to-Image Generation

引用: Ramesh A, Pavlov M, Goh G, et al. Zero-shot text-to-image generation[C]//International conference on machine learning. Pmlr, 2021: 8821-8831.

论文链接: [2102.12092] Zero-Shot Text-to-Image Generation (arxiv.org)

代码链接: https://github.com/openai/DALL-E

简介

传统上,文本到图像生成侧重于为固定数据集上的训练找到更好的建模假设。这些假设可能涉及复杂的架构、辅助损耗或侧面信息,例如训练期间提供的对象的部分标签或分割掩码。论文提出了一种基于transformer的简单方法,transformer将文本和图像tokens自回归的建模为单个数据流

Method

在这里插入图片描述

直接使用像素作为图像tokens对于高分辨率图像将需要过多的内存。可能性目标倾向于优先考虑像素之间的短程依赖关系建模,因此大部分建模能力将用于捕获高频细节,而不是在视觉上可识别对象的低频结构。因此,使用了一个两阶段的方法:

  1. 训练一个离散变分自动编码器(dVAE),将每个256×256 RGB图像压缩成一个32×32的图像标记网格,其中每个元素可以假设8192个可能的值。这将转换器的上下文大小减小了 192 倍,而不会大幅降低视觉质量,如图1所示。
  2. 将多达 256 个 BPE 编码的文本tokens与 32 × 32 = 1024 个图像tokens连接起来,并训练一个autoregressive transformer来模拟文本和图像标记上的联合分布。

整个过程可以被视为最大化关于编码 RGB 图像的图像 x x x、标题 y y y 和toknes z z z 上的模型分布的联合似然的置信下限(evidence lower bound,ELB)。使用因式分解 p θ , ψ ( x , y , z ) = p θ ( x ∣ y , z ) p ψ ( y , z ) p _ { \theta , \psi } ( x , y , z ) = p _ { \theta } ( x | y , z ) p _ { \psi } ( y , z ) pθ,ψ(x,y,z)=pθ(xy,z)pψ(y,z) 来模拟这个分布,从而产生下界:

ln ⁡ p θ , ψ ( x , y ) ≥ E z ∼ q ϕ ( z ∣ x ) ( ln ⁡ p θ ( x ∣ y , z ) − β D K L ( q ϕ ( y , z ∣ x ) , p ψ ( y , z ) ) ) \ln p _ { \theta , \psi } ( x , y ) \geq E _ { z \sim q _ { \phi } ( z | x ) } ( \ln p _ { \theta } ( x | y , z ) - \beta D _ { K L } ( q _ { \phi } ( y , z | x ) , p _ { \psi } ( y , z ) ) ) lnpθ,ψ(x,y)Ezqϕ(zx)(lnpθ(xy,z)βDKL(qϕ(y,zx),pψ(y,z)))

  • 假设 y y y 在给定 z z z 的情况下条件独立于 x x x q ϕ q_\phi qϕ 表示给定 RGB 图像 x x x 的 dVAE 编码器生成的 32 × 32 32 × 32 32×32 个图像tokens的分布;

  • p θ p_\theta pθ 表示给定图像tokens的 dVAE 解码器生成的 RGB 图像的分布;

  • p ψ p_\psi pψ 表示 Transformer 建模的文本和图像tokens上的联合分布。

即第一项希望提升重建质量,第二项衡量图像与文本tokens的差异程度,希望KL散度越来越小。注意,边界仅适用于 β = 1 β = 1 β=1,而在实践中,使用更大的值会有所帮助。

Stage One: Learning the Visual Codebook

dVAE编码器和解码器是基于卷积的ResNets,具有bottleneck-style的残差块。这些模型主要使用 3 × 3 个卷积,其中 1 × 1 个卷积沿跳跃连接,其中特征图的数量在重新块的输入和输出之间变化。编码器的第一次卷积是 7 × 7,编码器的最后一个卷积(产生 32 × 32 × 8192 输出,用作图像标记分类分布的对数)为 1 × 1。解码器的第一个卷积和最后一个卷积都是 1 × 1。编码器使用最大池化(比平均池化产生更好的 ELB)来对特征图进行下采样,而解码器使用最近邻上采样。

第一阶段将初始先验 p θ p_\theta pθ 设置为 K = 8192 K = 8192 K=8192 codebook向量上的均匀类别分布,并将 q ϕ q_\phi qϕ 设置为编码器输出的 32 × 32 32×32 32×32 网格中相同空间位置的 8192 8192 8192 logits 参数化的类别分布。

因为 q ϕ q_\phi qϕ 是一个离散分布,所以不能使用重参数化梯度来最大化它。以前的工作使用online cluster assignment procedure和straight-through estimator解决了这个问题。这里改用gumbel-softmax松弛,用对 q ϕ τ q _ { \phi } ^ { \tau } qϕτ 的期望代替对 q ϕ q _ { \phi } qϕ 的期望,其中当温度 τ → 0 \tau → 0 τ0 时,弛豫变得紧密 p θ p_\theta pθ 的似然使用对数-拉普拉斯分布进行评估。使用Adam和指数加权迭代平均法最大化松弛的ELB,以下内容对于稳定训练尤为重要:

  • 退火 τ \tau τ 1 / 16 1/16 1/16 足以缩小宽松验证ELB与 q ϕ q _ { \phi } qϕ 替换为 q ϕ τ q _ { \phi } ^ { \tau } qϕτ 的真实验证ELB之间的差距(在前 150000 次更新中从 1 退火到 1/16)。

  • 在编码器的末尾和解码器的开头使用 1 × 1 1 × 1 1×1 卷积。减小弛豫周围卷积的感受野大小会导致它更好地泛化到真正的 ELB。

  • 将编码器和解码器残差块的输出激活乘以一个小常数,以确保初始化时的稳定训练。

  • K L KL KL 权重增加到 β = 6.6 β = 6.6 β=6.6 (在前 5000 次更新中,从 0 增加到 6.6)可以促进更好的codebook使用,并最终导致训练结束时重建误差较小。

Stage Two: Learning the Prior

在第二阶段,固定 ϕ \phi ϕ θ \theta θ,并通过最大化相对于 ψ \psi ψ 的 ELB 来学习文本和图像tokens的先验分布。这里, p ψ p_\psi pψ 由一个 120 亿参数的稀疏transformer表示。

给定文本-图像对,使用最多 256 256 256个词汇大小为 16384 16384 16384的标记对小写caption进行BPE编码,并使用3 2 × 32 = 1024 2×32=1024 2×32=1024个词汇大小 8192 8192 8192的tokens对图像进行编码。图像标记是使用dVAE编码器logits的最大化采样获得的,不添加任何gumbel噪声。最后,将文本和图像标记连接起来,并自回归建模为单个数据流。transformer是一个仅有解码器的模型,其中每个图像tokens都可以注意其 64 个自注意力层中的任何一个中的所有文本tokens,使用交叉熵损失。由于主要对图像建模感兴趣,因此将文本的交叉熵损失乘以 1/8,将图像的交叉熵损失乘以 7/8。

实验结果

在这里插入图片描述
在这里插入图片描述

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

如若内容造成侵权/违法违规/事实不符,请联系我们进行投诉反馈qq邮箱809451989@qq.com,一经查实,立即删除!

相关文章

3D开发工具HOOPS在船舶设计中的应用以及其价值优势

在当今数字化时代,船舶设计领域也不例外地受益于先进的技术和工具。HOOPS 3D图形SDK(Software Development Kit)作为一种强大的工具,在船舶设计中发挥着越来越重要的作用。它为设计师们提供了一种高效、灵活且功能丰富的方式来处理…

Android Studio实现内容丰富的安卓外卖平台

获取源码请点击文章末尾QQ名片联系,源码不免费,尊重创作,尊重劳动 项目编号122 1.开发环境android stuido jdk1.8 eclipse mysql tomcat 2.功能介绍 安卓端: 1.注册登录 2.查看公告 3.查看外卖分类 4.购物车, 5.个人中…

nodejs基于vue超市信息管理系统flask-django-php

互联网的快速发展,使世界各地的各种组织的管理方式发生了根本性的变化,我国政府、企业等组织在上个世纪90年代就已开始考虑使用互联网来管理信息。由于以前的种种因素,比如网络的普及率不高,用户对它的认知度不够,以及…

GPT实战系列-智谱GLM-4的模型调用

GPT实战系列-智谱GLM-4的模型调用 GPT专栏文章: GPT实战系列-实战Qwen通义千问在Cuda 1224G部署方案_通义千问 ptuning-CSDN博客 GPT实战系列-ChatGLM3本地部署CUDA111080Ti显卡24G实战方案 GPT实战系列-Baichuan2本地化部署实战方案 GPT实战系列-让CodeGeeX2帮…

创建自己的“百度网盘”(部署owncloud)

[rootlocalhost html]# cd /root/[rootlocalhost ~]# wget https://download.com/server/stable/owncloud-10.12.0.zip --no-check-certificate #下载当前的owncloud代码包[rootlocalhost ~]# yum -y install unzip #安装解压工具[rootlocalhost ~]# unzip owncloud-10.12.0.zi…

HarmonyOS开发:超详细介绍如何开源静态共享包,实现远程依赖

前言 当我们开发了一个独立的功能,想让他人进行使用,一般的方式就是开源出去,有源码的方式,也有文件包的形式,当然了也有远程依赖的方式,比如在Android中,我们可以提供源码,也可以打…

【PG数据库】PostgreSQL 转储详细操作流程

1.pg_dump pg_dump 是用于备份一种 PostgreSQL 数据库的工具。即使数据库正在被并发使用,它也能创建一致的备份。pg_dump不阻塞其他用户访问数据库(读取或写入)。 pg_dump 只转储单个数据库。要备份一个集簇中 对于所有数据库公共的全局对象…

基于python失物招领系统-安卓-flask-django-nodejs-php

随着现在网络的快速发展,网络的应用在各行各业当中,利用网络来做这个失物招领的网站,随之就产生了“失物招领 ”,这样用户就可以利用平台来发布信息。 对于本失物招领 的设计来说, 它是应用mysql数据库、安卓等技术动…

路由器的端口映射能实现什么?

路由器的端口映射是一项重要的网络配置功能,它可以帮助实现局域网内外的设备之间的通信。通过端口映射,我们可以在公网上访问局域网内的设备,方便的进行远程访问、共享文件和资源等操作。 什么是端口映射? 在介绍端口映射之前&am…

【RabbitMQ | 第七篇】RabbitMQ实现JSON、Map格式数据的发送与接收

文章目录 7.RabbitMQ实现JSON、Map格式数据的发送与接收7.1消息发送端7.1.1引入依赖7.1.2yml配置7.1.3RabbitMQConfig配置类——(非常重要)(1)创建交换器方法(2)创建队列方法(3)绑定…

【RabbitMQ | 第六篇】消息重复消费问题及解决方案

文章目录 6.消息重复消费问题6.1问题介绍6.2解决思路6.3将该消息存储到Redis6.3.1将id存入string(单消费者场景)(1)实现思路(2)问题 6.3.2将id存入list中(多消费场景)(1&…

《Linux 高可用负载均衡集群实践真传》正式面市

终于等到啦! ​"Linux高可用实践真传系列"三本终于全部弄齐了,总的来说算是圆满。 本书为《Linux企业级高可用实践真传》系列丛书之《Linux 高可用负载均衡集群实践真传》。是一本专门介绍主流负载均衡技术的原创书籍,是作者二十多…

Springboot+vue的仓库管理系统(有报告)。Javaee项目,springboot vue前后端分离项目。

演示视频: Springbootvue的仓库管理系统(有报告)。Javaee项目,springboot vue前后端分离项目。 项目介绍: 采用M(model)V(view)C(controller)三层…

智慧城市与数字孪生:科技融合助力城市可持续发展

随着信息技术的迅猛发展,智慧城市和数字孪生作为现代城市发展的重要理念和技术手段,正日益受到广泛关注。智慧城市通过集成应用先进的信息通信技术,实现城市管理、服务、运行的智能化,而数字孪生则是利用数字化手段对物理城市进行…

Harvester基于 Kubernetes 构建的开源超融合基础架构 (HCI) 软件

Harvester 是基于 Kubernetes 构建的开源超融合基础架构 (HCI) 软件。它是使用专有 HCI 堆栈的一种开放替代方案,该堆栈结合了 Cloud Native Computing 的设计和精神。 Harvester 功能​ Harvester 支持在裸机服务器上实施 HCI。Harvester 使用本地、直接连接的存…

vue+bpmn.js实现自定义流程图

效果图: 使用插件版本: 插件名称版本安装命令 bpmn-js 7.3.1 npm install bpmn-js^7.3.1 --save-D bpmn-js-properties-panel 0.37.2 npm install bpmn-js-properties-panel^0.37.2 --save-Dcamunda-bpmn-moddle4.5.0npm install camunda-bpmn-moddle…

HCIA ——VLAN实验

一 、 实验需求 1.PC1和PC3所在接口为access接口;属于vlan 2 PC2-4-5-6处于同一网段;其中PC2可以访问PC4-5-6 PC4可以访问PC5不能访问PC6 PC5不能访问PC6 3.PC1-PC3与PC2-4-5-6不在同一个网段 4.所有PC均使用DHCP获取IP地址,且PC1可以正常访问…

使用ES检索PDF等文档的全栈方案之前端demo(end)

写在前面 通过之前的系列文章,整个ES搜索文件的流程与大的问题已经统统扫除了,既然是全栈流程,是不能缺少前端查询页面的,前端需简单实现一个用户输入查询关键词句,发起搜索,页面以表格形式展示查询的结果…

展览展示模型贴图都是怎么做的---模大狮模型网

展览展示模型的贴图制作通常涉及到以下几个步骤: 准备模型:首先确保展览展示模型的几何结构完整且符合设计要求。 UV展开:在3D建模软件中对模型进行UV展开,即将模型表面的各部分映射到二维平面上,以便后续贴图。 选择…

Node.js常用命令:了解Node.js的核心命令和用法

学习目标: 理解Node.js和npm的概念及其在开发中的作用;掌握Node.js的核心命令,包括node、npm、npx等;学会使用node命令来执行JavaScript文件和模块;熟悉npm命令,包括安装、更新、卸载依赖包等操作&#xf…
最新文章