在无监督学习中,给原始图像构建分布是个重要的问题。这个任务需要图像模型同时具有表达能力、易处理和可扩展的性能。因此在针对基于概率分布的图片生成任务上,Google团队提出了一个深的神经网络,它能在两个空间维度上序列预测图像的像素。该方法就是PixelRNN,它构建了原像素值的离散概率,并且将图像中整个的相关性进行编码。PixelRNN图像生成模型实际上是概率密度模型(probabilistic density model),此类模型被广泛引用在图片压缩(image compression),还有一些图像重构的任务,例如:图片移植(image inpainting)和去模糊(deblurring)。
PixelRNN由12层二维长短期记忆层(Long Short-Term Memory)组成,这些层在状态states里使用了LSTM单元,并且采用了卷积去同时计算数据里空间维度的所有状态states。模型的目的是估计原始图片的分布,并且此分布能实现计算图像的可能性和去生成一个新的图像。PixelRNN每次扫描图像的每一行和每一行内的每一个像素。对于各个像素,它根据扫描的上下文来预测出可能的像素。下图1展示了这个过程:
图1:
左侧:基于所有过去左边及上面生成的像素情况去生成像素x_i。
中间:在多尺度环境下,基于子样本图像像素(淡蓝格子)生成像素。
右边:在遮蔽卷积里的关联图。第一层,每个RGB通道被连接到过去的通道和其上下文,但是并不会连接到自己。在后续层上,通道会连接到他们自己。
上述图像像素的联合分布被计算成条件分布的一个乘积。这个用于预测的参数在图像里所有像素的位置上都有分享。该联合分布p(x)计算如下:
p\left ( x \right )=\prod_{i=1}^{n^{2}}p\left ( x_{i}\mid x_{1},...,x_{i-1} \right )
p(x)是每个n x n像素的图像x的概率。p(x_i|x_1,...,x_i-1)是给定所有过去像素x_1,...,x_i-1下第i个像素x_i的概率。生成按行和像素依次进行。图1可视化了这个过程。
每个像素x_i被三个值共同决定,分别来自红绿蓝通道。我们重写分布p(x_i|X_<i)如下:
因此每个颜色都建立在和过去所有的生成像素和其他通道的条件上。
PixelRNN结构中LSTM层有两种类型,第一种叫Row LSTM层,每个卷积被应用在每一行,第二个叫Diagonal BiLSTM层,卷积沿着图像的对角线上进行应用。该网络也在LSTM层上结合了residual connections,帮助训练具有12层深度的PixelRNN。
左图:对提出的三种结构中输入到状态(input-to-state)及状态到状态(state-to-state)的可视化。
Row LSTM是一个无向层,它从上到下行挨行地处理图像,每次给整行计算特征。因为它有一个三角接受域,所以它不能抓到所有可获得的上下文。
Diagnoal BiLSTM实施并行计算且能在任何图像尺寸上捕捉到所有可获得的上下文。
下列左边的表格是不同PixelRNN的所采用的结构。下面右侧的图是PixelCNN将邻居像素用于预测下一个像素的可视化图。PixelCNN比PixelRNN更好的进行并行计算,但PixelCNN的此优势也只局限于训练和测试图像的评估上,两种网络的图片生成过程都是序列的。
相比于过去把像素连续型化,Google发现离散化像素不仅直观和易实施,而且比较于对连续型像素值使用混合密度方法来说,使用softmax在离散型像素会给出很好的结果。另外,我们不用担心离散分布超出区间[0,255],而这在连续型分布中是经常发生的。
图2: 来自训练于CIFAR-10(左)和ImageNet 32x32(右)的模型的样本。大体上我们可以看到模型相对好的捕捉到了当地空间的相关性。ImageNet模型看起来比CIFAR-10更好的捕捉到更多的全局结构。因为ImageNet模型更大而且有更多的数据用在训练上,即差距是由样本的质量不同造成的。
图3:来自训练于ImageNet 64x64的模型的样本。左侧:常规模型,右侧:多尺度模型(multi-scale model)。比较于32x32图片训练的单尺度模型,64x64图片训练的模型捕捉的全局结构更少。而多尺度模型看起来可以解决这个问题。尽管这些模型在log-likelihood上有着相似的表现,但是右侧的样本总体上看起来更加连贯。
描述来源:
PixelRNN论文:https://arxiv.org/pdf/1601.06759.pdf%5C%0Ahttp://arxiv.org/abs/1601.06759
Gated PixelCNN论文:https://arxiv.org/pdf/1606.05328.pdf
发展历史
描述
生成模型的优势在于它能够无止境的输入图像数据进行学习,但是因为图像是高维且强结构型,估计原始图片的分布变得具有挑战性。其中生成模型的最重要的一个障碍就是去建立可处理及可扩展的复杂表现模型。为了平衡它们,过去诞生了很多生成模型,每个都各有各的特点。大多工作重心在随机潜在变量(stochastic latent variable)模型上,例如VAE‘s目标是抽取有意义的表征,但经常遇到不可处理的推理,这阻碍了模型表现。
构建易处理的、能够计算图像像素的联合分布的模型有一个有效的方式,那边是把其当作条件分布的的乘积。这个方法被用在自回归模型中,例如NADE和全可见神经网络 fully visible neural networks。因式分解把联合模型问题变为序列问题,使其通过所有过去生成的像素预测下一个像素,之后RNN的结合,成功的解决了这个序列问题,出现了PixelRNN。
除了PixelRNN,还有其他很多生成模型(如上图所示)。当前比较火的的还有变分自编码器(Variational Autoencoders,VAEs)和生成对抗网络(Generative Adversarial Networks,GAN)。各有各的优劣,像PixelRNN/PixelCNN这种明确密度模型,优化了当前可能性,有好的生成样本,但是序列生成效率低。而VAEs优化了较低的变分边界(variational lower bound),但生成样本的质量不是最好的。GAN能得到最好的生成样本,也是近年来受到极大关注的生成模型,有很多的变种,但是训练困难且不稳定。
描述来源:
PixelRNN论文:https://arxiv.org/pdf/1601.06759.pdf%5C%0Ahttp://arxiv.org/abs/1601.06759
CS231n-Generative Models:http://cs231n.stanford.edu/slides/2018/cs231n_2018_lecture12.pdf
主要事件
年份 | 事件 | 相关论文/Reference |
2013 | Kingma等人提出VAEs | Kingma, D. P., & Welling, M. (2013). Auto-encoding variational bayes. arXiv preprint arXiv:1312.6114. |
2014 | Goodfellow等人提出GAN | Goodfellow, I., Pouget-Abadie, J., Mirza, M., Xu, B., Warde-Farley, D., Ozair, S., ... & Bengio, Y. (2014). Generative adversarial nets. In Advances in neural information processing systems (pp. 2672-2680). |
2016 | Oord等人提出PxielRNN | Oord, A. V. D., Kalchbrenner, N., & Kavukcuoglu, K. (2016). Pixel recurrent neural networks. arXiv preprint arXiv:1601.06759. |
2016 | Oord等人提出Gated PxielRNN | van den Oord, A., Kalchbrenner, N., Espeholt, L., Vinyals, O., & Graves, A. (2016). Conditional image generation with pixelcnn decoders. In Advances in Neural Information Processing Systems (pp. 4790-4798). |
2017 | Salimans等人提出PxielCNN++ | Salimans, T., Karpathy, A., Chen, X., & Kingma, D. P. (2017). Pixelcnn++: Improving the pixelcnn with discretized logistic mixture likelihood and other modifications. arXiv preprint arXiv:1701.05517. |
发展分析
瓶颈
虽然在图像训练和测试评估上能够实现有效率的并行计算,但是在图片生成方面上由于是采用序列生成方式,所以还是缺乏效率。此外,相比于GAN来说,生成图像的质量还有待提高。
未来发展方向
2017年出现的PixelCNN++为了实现速度和质量上的优化,它使用像素上的离散逻辑混合似然(discretized logistic mixture likelihood)而不是softmax回归,另外对整个像素而不是R/G/B子像素进行约束,简化了结构模型。但最后的结果相比于GAN来说,还是差一点,但因为GAN没有像PixelCNN这类模型是基于概率分布方面上的,所以未来可能会朝着给生成模型加入推理能力的同时,也保留GAN对抗生成网络的优点,像2015年Makhzani等人提出的Adversarial autoencoders和2016年Gulrajani的PixelVAE就是在这个方向上进行发展。
Contributor: Hongfeng Ai