conditional Image generation with PixelCNN Decoders
ICML的best paper
pixel cnn 属于完全可见的信念网络,需要对 概率密度 建模。给定图像数据x,想要对概率分布p(x)建模。概率分布p(x)可以看做,每一像素分布同时作用结果的一个联合分布。一个特征是这些像素之间存在紧密的关联关系,常见的建模方法是使用此前的像素作为条件来建模当前的像素的条件分布。使用链式法则将联合分布p(x)分解成一维度分布的乘积。
给定每个像素xix_ixi的条件概率(其条件是此前所见到的所有像素(x1,x2,...,xi−1)(x_1,x_2,...,x_{i-1})(x1,x2,...,xi−1)) 那么整张图的联合概率/条件似然 = 所有像素条件概率的乘积。
p(x)=∏i=1n2p(xi∣x1,...,xi−1)p(x)=\prod_{i=1}^{n^2}p(x_i|x_1,...,x_{i-1})p(x)=i=1∏n2p(xi∣x1,...,xi−1)
然后最大化似然来优化概率模型中的参数。众多自回归模型用的都是条件分布连成构造联合分布的建模方式,不同点为条件分布建模方式不同。本文用的是masked卷积网络对之前的像素进行卷积操作,来建模条件分布。
对于每个位置网络都会生成一个256维度的像素值,通过true lable像素值,最小化交叉熵,来得到生成结果。(最小化交叉熵,最小化KL散度,最大似然这三种东西是等价的)就是有N×N×3个网络
文章强调的卷积使得训练时每个像素可以同时进行预测,但测试时只能顺序进行生成。
gated convolutional layers
文章后面介绍了所用的门控的卷积层。之前的pixelRNN 的性能 优于 pixelCNN 的一个主要原因是:LSTM使得网络的每一层可以获取之前像素的整个邻居区域。另一个优点,多种门控单元使得可以建模更加复杂的模型。
conditional PixelCNN
条件 PixelCNN : 给定高层次的图像描述作为latent vector h 建模条件分布为p(x∣h)p(x|h)p(x∣h):
p(x∣h)=∏i=1n2p(xi∣x1,..,xi−1,h)p(x|h)=\prod_{i=1}^{n^2}p(x_i|x_1,..,x_{i-1},h)p(x∣h)=i=1∏n2p(xi∣x1,..,xi−1,h)
其实就是在每层的特征后接一个条件向量信息。
(图像是二维时,作者使用了grid LSTM ,
盲点:预测下一个像素时,没有用到之前所有的信息,
两个方向上的卷积,垂直和水平
为了避免看到将来的像素,他们使用带掩膜的卷积)
1.Pixel CNN, Wavenet, GCNN笔记:https://zhuanlan.zhihu.com/p/25299749
2.【2017CS231n】第十三讲:生成模型(PixelRNN/PixelCNN,变分自编码器,生成对抗网络):https://blog.csdn.net/poulang5786/article/details/80766498
3.如何比较PixelCNN与DCGAN两种Image generation方法?:https://www.zhihu.com/question/54414709
4.《Conditional Image Generation with PixelCNN Decoders》之Pixcel CNN—gated Pixcel CNN 阅读笔记:https://blog.csdn.net/Jasminexjf/article/details/82499513?utm_medium=distribute.pc_relevant.none-task-blog-title-2&spm=1001.2101.3001.4242
5.图片生成模型——gated pixelCNN:https://blog.csdn.net/like_red/article/details/79192374#commentBox