从 PixelCNN 到 Gated PixelCNN,再到 Conditional Gated PixelCNN

本文介绍了PixelCNN系列的生成模型,从PixelCNN的基本思想和实现,到Gated PixelCNN如何改进盲点问题和增强建模能力,再到Conditional Gated PixelCNN引入条件生成,最后探讨了其在VQ-VAE2中的应用,展示了最大似然模型在生成模型中的优势。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

一、简介

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=1Np(xix<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(x2x^1) 得到 x ^ 2 \hat x_2 x^2;
  3. p ( x 3 ∣ x ^ 1 x ^ 2 ) p(x_3|\h
评论 7
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值