从 PixelCNN 到 Gated PixelCNN,再到 Conditional Gated PixelCNN

vqvae详细解释 模型综述 # VQ-VAE(Vector Quantised - Variational AutoEncoder)首先出现在论《Neural Discrete Representation Learning》 作为一个自编码器,VQ-VAE的一个明显特征是它编码出的编码向量是离散的,换句话说,它最后得到的编码向量的每个元素都是一个整数,这也就是“Quantised”的含义,我们可以称之为“量子化”(跟量子力学的“量子”一样,都包含离散化的意思)。 明明整个模型都是连续的、可导的,但最终得到的编码向量却是离散 阅读详情

一、简介

PixelCNN 是一个生成模型,2016年出自DeepMind的Aaron van den Oord[1]。[5]指出当前的生成模型主要可分为两类:

  • 基于最大似然的模型,比如:各类VAE(变分自编码器) 和 autoregressive models(自回归模型)
  • 隐式生成模型,比如:Gan(生成对抗网络)

PixelCNN属于第一种模型,即最大似然模型。这种生成模型较Gan的优势是[5]:
likelihood based methods optimize negative log-likelihood (NLL) of the training data. This objective allows model-comparison and measuring generalization to unseen data. Additionally, since the probability that the model assigns to all examples in the training set is maximized, likelihood based models, in principle, cover all modes of the data, and do not suffer from the problems of mode collapse and lack of diversityseen in GANs.
简单说就是,Gan还很难进行模型的比较(即没有一个好的方法来比较各种Gan模型),它对于未见过的数据之泛化,不能覆盖真实数据的所有多样性,而且会出现模式坍塌和数据多样性的损失。而以上这些,在最大似然模型的方法中都可以解决,由此可见,Gan虽热却不是包打天下的,近期的[5]就生成了质量堪比BigGan[6]的图像。[5] 所使用的方法是一种复合方法,主要是两种方法的复合:一种是VQ-VAE(矢量量化-变分自编码),我在上一篇博客有介绍;另一种就是本篇博客介绍的PixelCNN。这两种似然方法的结合,也能创造出惊艳的作品来,而且不需要太多的资源,真是我等草根的福音,以下我就自己的理解来聊一聊PixelCNN。

二、PixelCNN

如果我们把一幅图片 x \mathbf x x 看成是由各像素 x i x_i xi​ 随机组成的随机变量 x = { x 1 , x 2 , ⋯   , x N } \mathbf x=\{x_1,x_2, \cdots, x_N\} x={ x1​,x2​,⋯,xN​},则一幅图片就可以表示为各像素的联合分布:
p ( x ) = p ( x 1 , x 2 , ⋯   , x N ) p(\mathbf x)=p(x_1,x_2, \cdots, x_N) p(x)=p(x1​,x2​,⋯,xN​)
PixelCNN 的基本思想是将这个联合分布因子化,用条件分布的乘积来表示,如下:
p ( x 1 , x 2 , ⋯ &ThinSpace; , x N ) = ∏ i = 1 N p ( x i ∣ x &lt; i ) ( 1 ) p(x_1,x_2, \cdots, x_N) = \prod_{i=1}^N p(x_i|x_{&lt;i})\qquad (1) p(x1​,x2​,⋯,xN​)=i=1∏N​p(xi​∣x<i​)(1)
在生成这幅图片时,我们用前面的像素作为条件,作条件概率,估算当前的像素概率,逐点生成像素。这个思想其实也很朴素和直白,具体就是:

  1. 由 p ( x 1 ) p(x_1) p(x1​) 得到 x ^ 1 \hat x_1 x^1​;
  2. 由 p ( x 2 ∣ x ^ 1 ) p(x_2|\hat x_1) p(x2​∣x^1​) 得到 x ^ 2 \hat x_2 x^2​;
  3. 由 p ( x 3 ∣ x ^ 1 x ^ 2 ) p(x_3|\h
门控PixelCNN解码器生成图像Conditional-PixelCNN-decoder.zip 这是使用 PixelCNN 解码器生成条件图像的 Tensorflow 实现,其引入了最初在像素周期性神经网络中提及的基于 PixelCNN 架构的门控 PixelCNN 模型。该模型可以基于标签或图像的潜在表示来相应地生成图像。图像也可以无条件地建模。它也可以作为一个强大的解码器,并可以在自动编码器和 GANs 中取代反卷积(转置卷积)。这篇文章的详细摘要可以在这里找到。示例:架构:这是模型中使用的 Gated PixelCNN 的架构: 标签:Conditional 立即下载

相关推荐

(CNN最新进展综述)Recent Advances in Convolutional Neural Networks

CNN广泛用于图像、语音信号处理。本文是对近年来CNN方法的综合论述,对CNN相关算法进行了深入总结与分析

计算机网络期末复习提纲(全知识点总结)

计算机网络期末复习提纲全知识点总结第一章 概述1.基本概念- 链路,结点,协议和服务,实体和对等实体,各层PDU- C/S模式,B/S模式,P2P模式- LAN,WAN,MAN,PAN的划分- 网络性能参数:速率,带宽,吞吐量,时延,往返时间,信道利用率2.互联网的组成(边缘部分与核心部分的作用)3.电路交换与分组交换,数据报交换和虚电路交换的特点4.TCP/IP体系结构,数据的封装与解封装第二章 物理层1.信号编码:不归零编码,曼切斯特编码2.影响信号失真程度的因素3.传输介质:双绞线,同轴电缆,光纤(单

mcyuuji的博客 8万+

Python小白避坑指南:用Ursina做3D图形,Entity的scale和color参数到底怎么调才不出错?

本文详细解析了Python Ursina引擎中Entity对象的scale和color参数调优技巧,帮助3D图形编程初学者避开常见陷阱。通过对比实验和典型场景分析,深入讲解三种缩放方式的区别、颜色定义的四种方法,以及参数组合的协同效应,助力开发者精准控制3D图形表现。

weixin_26782929的博客 413

鸿蒙平板PC应用开发:在termux中安装ubuntu

打开AVNC点击右上角的设置图标,然后点击 输入 , 点击手势栏目中的 单指轻扫 ,选择滚动远程内容

DMZDAMS的博客 5201

Oracle19c安装,基本配置教程(超详细)

安装有出错的风险,卸载也是比较麻烦的,所以先提前设置一个还原点,在windows中的步骤如下,如果对自己有信心,可以直接跳过该部分开始安装oracle在设置中进入创建还原点的界面开始创建还原点上面已经成功创建了还原点,如果安装oracle时出现问题,自己也无法解决,恢复到安装之前即可,恢复步骤如下经过上面的步骤,Oracle我们就能够正常使用了,我们就使用自己在sql plus里面创建的账号即可,创建的表会默认存放在我们自己创建的表空间里面。

秃头披风侠的博客 7万+

汇川机器人与PLC通信-ModbusTCP超详细案例

通过汇川机器人与PLC的ModbusTCP通信项目案例,我们可以了解通讯配置的过程,地址映射的方式,对接信号的转换,运行时序的逻辑等注意事项,帮助我们快速应用到项目中。

weixin_44166380的博客 1万+

AI驱动全栈开发实战:基于Spec与Codex的规格驱动开发指南

1. 先搞清楚“AI重构前端全栈”到底在解决什么实际问题 最近很多人在聊“AI重构前端全栈”,听起来像是又一个营销概念。但如果你真的拆开看,它核心解决的是一个非常具体且痛苦的问题: 一个开发者,如何从零开始,系统性地、不跑偏地完成一个完整项目,并且保证代码质量和架构一致性。 传统开发流程里,产品经理出PRD,前后端开会对齐,前端画页面,后端写接口,测试再介入。这个过程沟通成本高,文档容易过时,新人上手慢。而“AI重构”的思路,是试图用一套 规范化的指令(Spec) 来驱动AI(比如Codex这类模型)生成代

weixin_30596023的博客 460

ARFoundation系列讲解 - 24 锚点

一、添加平面检测和平面可视化 请参考 ARFounnation快速入门-08平面检测 案例 二、添加射线检测 1.在AR Session Origin 组件上添加ARRaycastManager 脚本

a451319296的博客 4879

[从零开始学习FPGA编程-18]:快速入门篇 - 操作步骤2-6- VerilogHDL时序电路语法分析(以计数器为例)

目录前言:第1章 功能模块代码:counter.v第2章 驱动代码:tcounter.v前文以及阐述了VerilogHDL基本语法,本文将以modelsim自带的计数器程序来解读VerilogHDL的语法。代码路径:

文火冰糖(王文兵)的博客 7万+

Data-Structures-and-Algorithm-Analysis-in-Java.pdf

作者: Weiss, Mark A. 出版社: Addison Wesley Data Structures and Algorithm Analysis in Java is an “advanced algorithms” book that fits between traditional CS2 and Algorithms Analysis courses. In the old ACM Curriculum Guidelines, this course was known as CS7. This text is for readers who want to learn good programming and algorithm analysis skills simultaneously so that they can develop such programs with the maximum amo...

Camera2Demo

在Camera2 的基础上进行封装,使得Camera2一堆初始化逻辑与Activity分离,降低耦合度,完成预览拍照并保存的操作

SIMATIC S7-1200, S7-1500 PID 控制[手册]

SIMATIC S7-1200, S7-1500 PID 控制[手册]

ET2012新版免狗免安装绿色软件

ET2012新版免狗免安祖昂绿色软件。,新界面,新视觉,

上一篇: 通过代码学习 VQ-VAE
下一篇: CornerNet:不用 Anchor Boxes 也能进行目标检测(Object Detection)
田神
博客等级 码龄17年 217粉丝 33原创
评论 7
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

当前余额3.43元 前往充值 >
需支付:10.00元
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付元
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值