VQ-VAE-2

2023-11-05

原文链接:Generating Diverse High-Fidelity Images with VQ-VAE-2
加载速度慢点这里:中科院镜像

由于科研需要,最近在学习图像生成相关的文献知识,VQ-VAE-2是我目前了解到的比较新的生成模型,一开始搜索到的其实是PixelCNN,然后发现它是16年的工作,然后继续搜索相关工作,在Google DeepMind找到了VQ-VAE-2,由此发现了一系列相关工作。这里就从VQ-VAE-2开始,毕竟是目前性能相对好的模型,先尽快学习看看能不能用上。(VQ-VAE-2的发展过程可以参考这里:From Autoencoder to Beta-VAE

代表样例

在这里插入图片描述
在这里插入图片描述作者在论文中表示,VQ-VAE 生成了可以媲美当前最佳 GAN 模型(BigGAN-deep)的图像,且避免了GAN的缺点,如缺乏多样性和ModeCollapse。

生成模型综述

作者将目前的生成模型分为两种类别:

  1. Likelihood based models:VAEs、基于flow的模型和自回归(autoregressive)模型;
  2. Implicit generative models:GANs

这些模型都会存在某些方面的缺陷,如样本质量、多样性、生成速度等,接下来稍做分析:

  • GAN生成的样本并不能完全捕捉真实分布中的多样性。另一方面,针对生成对抗网络的评价非常困难,目前依然缺少一个较通用的度量标准,用于在测试集中判断模型是否过拟合。

  • 基于似然的模型不存在像GAN一样的问题但是直接在像素空间最大化likelihood存在困难,首先在像素空间上NLL(negative log-likelihood,这个概念目前还不是很清楚,大概就是用来衡量样本质量,基于似然的模型的主要任务就是优化此项) 不能很好的度量样本质量,其次这些模型缺少对于全局结构的关注。目前,也存在着一些针对这些问题的优化方法,这里不做讨论。

  • 既然存在这些问题,所以 “In this paper”,作者利用了有损压缩(lossy compression)的思想。JPEG图像压缩技术已经可以做到去除80%的数据量,而对图像不造成显著影响。在VQ-VAE(一代)中,就已经提出,通过自编码器的vetor-quantizing intermediate representations(量化的向量中间百表征,这里还不清楚具体是什么,VQ就是指这个啦)将图像压缩到discreate latent space。这样产生的表征比原图小30多倍,但仍然可以使解码器重建图像,几乎无损。接下来采用PixelSnail(一种基于self-attention的SOTA的PixelCNN)对这些离散表征的先验知识建模,从这些先验知识采样最终decoder得到的图像同样高质量,而且速度也是30多倍的快,这样就可以训练高分辨率图像。这里用的编码解码器结构和VQ-VAE一样(区别就是提出了一个分层结构)

背景知识

  1. VQ-VAE

    关于VQ-VAE的详细解析以后再写,这里为了理解VQ-VAE2先介绍
    简单来说,还是一个Encoder-Coder结构。Encoder用来把图像转换为离散隐性空间的序列,Decoder从这些离散变量中重建图像。
    具体一点,输入图像 x x x,通过编码器(此时编码器作为一个非线性的mapping)生成向量 E ( x ) E(x) E(x),然后采用最近邻重构,将 E ( x ) E(x) E(x)替换为codebook的中的一个nearest prototype vector,解释一下codebook,可以理解为一个离散的编码表,举一张人脸图像为例,codebook就包括头发颜色,脸型,表情和肤色等等。因此,量化就是通过编码表,把自编码器生成的向量 E ( x ) E(x) E(x)离散化。在这里插入图片描述
    解释一下codebook,可以理解为一个离散的编码表,举一张人脸图像为例,codebook就包括头发颜色,脸型,表情和肤色等等。因此,量化就是通过编码表,把自编码器生成的向量 E ( x ) E(x) E(x)离散化。
    解码器通过另一个非线性函数重建数据,重建错误的梯度从解码器反向传播到编码器,采用straight-through gradient estimator(这里先不展开,就当这是一种方法)
    VQ-VAE还引入了codebook loss和commitment loss来align编码表codebook的向量空间和encode的输出。这里也不展开说,以后读VQ-VAE的时候再详细分析。这里先贴出公式, s g sg sg是停止梯度操作:
    在这里插入图片描述
    文中给出了VQ-VAE的implementation:
  1. PixelCNN

    先贴一段原文,下次再补充在这里插入图片描述
    具体的这篇博客讲的很详细:图片生成模型——gated pixelCNN

VQ-VAE-2框架

分为两阶段:

  1. 训练一个分层的VQ-VAE用于图像编码到前面提到的离散隐空间
    Stage1算法框图
    Stage1 流程图
    和VQ-VAE不同之处在于,这里使用了分层的VQ,作者提到其动机是把全局信息(如shape和geometry)和局部信息(如纹理)分开建模。如图所示,top level用于model全局信息,bottom level用于model局部细节(原文中还有再加middle level,实验结果表明加了middle level之后,生成的图像清晰度更高)。框图中,原图为256 * 256,通过下采样得到 64 * 64的表征,然后再量化为bottom level的latent map;另一方面,64 * 64再降为32 * 32,量化得到top level的latent map。解码器分别从两个隐层中重建图像,重建的loss即上面的公式2。

  2. 在用所有的图像数据构建的离散隐空间拟合一个PixelCNN先验
    在这里插入图片描述
    在这里插入图片描述
    经过Stage1,将图片编码为了整数矩阵,所以在Stage2用自回归模型PixelCNN,来对编码矩阵进行拟合(即建模先验分布)。通过PixelCNN得到编码分布后,就可以随机生成一个新的编码矩阵,然后通过编码表 E E E映射为浮点数矩阵,最后经过 d e o c d e r deocder deocder得到一张图片。

总结

总体来说VQ-VAE-2实现图像生成分两步走:

  1. 训练编解码器,使其能够很好的复现图像
  2. 训练PixelCNN自回归模型,使其能够拟合编码表分布,从而通过随机采样,生成图片

对于VQ-VAE-2的简单理解先到这里,后续再对PixelCNN等自回归模型进行分析。

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

VQ-VAE-2 的相关文章

  • 高德地图的缩放和位移监听

    最近项目采用高德地图 高德地图的文档 demo都很详细 想实现的功能基本上都有 在项目里有一个功能 是类似根据地图的中心经纬度实现数据请求 为了不无限的请求 所以要分别监听 地图的缩放 地图位移 这里就有一个方法 gadMap setOnC
  • matlab根据成绩划分等级_Excel数据分析必备技能:对数据按范围多条件划分等级的判定套路

    点击右上角 关注 每天免费获取干货教程 职场办公中经常要对数据进行整理和分析 其中等级归类划分是很常用的一种方法 在这个过程中用好Excel公式可以事半功倍 但是还是有很多人不了解在Excel中对数据按范围多条件划分等级的系统思路和方法 所

随机推荐

  • Cover Letter常用范式和模版

    摘自 https zhuanlan zhihu com p 26708261 http muchong com html 201401 6920446 html 1 什么是Cover letter Cover Letter 即投稿信 是论文
  • 深聊测开领域之:测试策略模型有哪些?

    测试模型的分类 1 引言 2 金字塔 2 1 金字塔模型 引入 2 2 金字塔弊端 2 3 金字塔图形 3 冰淇淋 3 1 冰淇淋模型 引入 3 2 冰淇淋模型 优缺点 3 2 1 缺点 3 2 2 优点 3 2 冰淇淋图形 4 冠军杯 4
  • 微信小程序面试题汇总

    HTML篇 CSS篇 JS篇 Vue篇 TypeScript篇 React篇 前端面试题汇总大全 含答案超详细 HTML JS CSS汇总篇 持续更新 前端面试题汇总大全二 含答案超详细 Vue TypeScript React Webpa
  • 环境变量知识点

    环境变量 环境变量 环境变量是用来定义系统运行环境的一些参数 比如说 每一个用户的家目录 echo HOME 还有我们在编写C C 代码的时候 在链接的时候 从来不知道我们的所链接的动态静态库在哪里 但是照样可以链接成功 生成可执行程序 原
  • 不使用采集卡,实现相机手机多机位直播

    背景 因为直播需求 现在想实现使用一台相机和一台手机完成直播的两个机位设定 搜了很多视频都是要购买采集卡 违背了性价比这一原则 搜索半天之后 根据当前的设备完成了任务 硬件材料 苹果手机一部 佳能单反 所需软件 1 OBS 主要是用来集成各
  • 刷脸让商家引入智慧经营实现数字化转型

    移动支付在生活中已经实现了全覆盖 从单一的支付到驱动智慧经营 在数据为王的时代 通过对移动支付数据的深度挖掘 整合成消费大数据 移动支付还在经营上改变商户的效率 从以前柜台结账到如今的自助结账 从人工推荐到大数据的精准推荐 彻底的改变了商户
  • Linux make --强大的编译工具

    用途说明 make命令是一个常用的编译命令 尤其是在开发C C 程序时 它通过Makefile文件中描述的源程序之间的依赖关系来自动进行编译 Makefile文件是按照规定的格式编写的 文件中需要说明如何编译各个源文件并连接生成可执行文件
  • CVE-2020-11444:Nexus Repository Manager 3 远程命令执行漏洞

    读者需知 本文仅供学习使用 由于传播和利用此文所造成的损失均由使用者本人负责 文章作者不为此承担责任 简介 Nexus Repository是一个开源的仓库管理系统 可搭建npm maven等私服 Nexus 3 任意修改admin密码越权
  • Socket错误详解及处理方法

    例如错误代码10061 说明服务器已经找到 但连接被服务器拒绝 连接失败原因可能是 端口号设置错误 2 服务器没有处于监听状态 即ServerSocket gt Active true 3 数据包被服务器端的防火墙过滤掉 附 Socket常
  • Qt 连接、操作数据库(增删改查)

    文章目录 Qt 5 9连接MySQL5 7 32 64位 操作数据库 QSqlQuery类 执行SQL语句 查 浏览结果集方法 增 删 改 事务 Qt 5 9连接MySQL5 7 32 64位 MySQL5 7安装好后将其安装路径lib下
  • Django--ORM 多表查询

    目录 数据准备 正向查询与反向查询 基于对象的跨表查询 正向查询 一对多 多对多 一对一 反向查询 一对多 多对多 一对一 正向查询 反向查询 基于双下线的跨表查询 正向查询 一对一 一对多 多对多 反向查询 一对一 一对多 多对多 双下高
  • Pytorch—模型微调(fine-tune)

    随着深度学习的发展 在大模型的训练上都是在一些较大数据集上进行训练的 比如Imagenet 1k Imagenet 11k 甚至是ImageNet 21k等 但我们在实际应用中 我们自己的数据集可能比较小 只有几千张照片 这时从头训练具有几
  • fatal error: ceres/ceres.h: 没有那个文件或目录

    用ubuntu18跑的loam livox算法 系统报错 In file included from home lisheng catkin ws src loam livox master source laser mapping cpp
  • java面试---IO与NIO

    一 概念 NIO即New IO 这个库是在JDK1 4中才引入的 NIO和IO有相同的作用和目的 但实现方式不同 NIO主要用到的是块 所以NIO的效率要比IO高很多 在Java API中提供了两套NIO 一套是针对标准输入输出NIO 另一
  • springboot+mybatis配置多数据源实战

    1 背景说明 2 配置多数据源步骤 2 1 项目结构变更 2 2 添加配置类 2 3 修改配置文件数据连接配置信息 2 4 多数据源配置导致 Transactional失效问题 1 背景说明 一般一个项目中只会连接一个数据库 但是随着需求变
  • 后端配置(宝塔):处理php禁用函数

    一 找到php的文件路径 在软件商店中 找到已安装文件 选择需要更改的php文件 选择 设置 二 选择需要取消禁用的文件进行删除 扩展 可解决 The Process class relies on proc open which is n
  • vue常用指令和用法

    文章目录 1 v text 2 v html 3 v on 4 v show 5 v if 6 v bind 7 v for 8 v model 1 v text 设置标签的文本值内容 默然写法会替换全部内容 使用插值表达式 可以替换指定内
  • 题解:按钮加减计数器设计(单片机C51)(外部中断)

    需求 使用4位共阴极段码表及共阳极数码管 通过外部中断方式 实现两个按钮分配加1 减1功能 今天我就来讲解一下这道题 目录 1 代码 1 1定义头文件 1 2定义延时函数 毫秒 1 3定义主函数 1 4定义0 15共阴极数码管字符码 1 5
  • Linux 操作系统管理命令(全)

    目录 1 Linux常用命令 1 date 2 pwd命令 3 cd命令 4 cal命令 5 who命令 6 wc命令 7 uname命令 8 clear命令 9 logout命令 10 shutdown命令 2 命令高级操作 1 命令补全
  • VQ-VAE-2

    原文链接 Generating Diverse High Fidelity Images with VQ VAE 2 加载速度慢点这里 中科院镜像 由于科研需要 最近在学习图像生成相关的文献知识 VQ VAE 2是我目前了解到的比较新的生成