Autoregressive models factorize an image as a 2D directed graph by conditioning the current pixel \(x_i\) 's distribution on the pixels before it as in a raster scan \(x_{<i}\) . Modeling this conditional density is analogous to sequence modeling and initial methods proposed to use spatial 2D recurrent neural networks, given their efficacy in modeling sequences. RIDE by Theis et al. [1]} uses 2D Long Short Term Memory (LSTM) units called Spatial-LSTMs for modeling the causal context \(x_{<i}\) , and GSMs for parametrizing the distribution. PixelRNN by Oord et al. [2]} uses a much complex architecture using LSTMs and residual connections to better handle the causal context. Importantly, it models the conditional density as a discrete distribution with \(x_i \in \lbrace 0, 1, \ldots 255\rbrace \) . PixelRNN has resulted in state-of-the-art negative loglikelihood (NLL) scores. However, due to the sequential nature of distribution modeling, both training and sampling are computationally demanding with the runtime as \(O(N)\) , where \(N\)  is the total number of pixels. Oord et al. proposed PixelCNN which is a convolutional version of PixelRNN. This led to an improvement in
the training time by a large factor at the cost of slight loss in the accuracy as with convolutions we can now only capture bounded context. Salimans et al. [3]} proposed PixelCNN++, which builds on PixelCNN by employing a discretized mixture of logistics for modeling the distribution, and using drop-out regularization, and additional skip connections. It improves on the NLL score over PixelRNN on the CIFAR dataset leading to state-of-the-art results.
