MADE: Masked Autoencoder for Distribution Estimation

Mathieu Germain, Karol Gregor, Iain Murray, and Hugo Larochelle.

There has been a lot of recent interest in designing neural network models to estimate a distribution from a set of examples. We introduce a simple modification for autoencoder neural networks that yields powerful generative models. Our method masks the autoencoder’s parameters to respect autoregressive constraints: each input is reconstructed only from previous inputs in a given ordering. Constrained this way, the autoencoder outputs can be interpreted as a set of conditional probabilities, and their product, the full joint probability. We can also train a single network that can decompose the joint probability in multiple different orderings. Our simple framework can be applied to multiple architectures, including deep ones. Vectorized implementations, such as on GPUs, are simple and fast. Experiments demonstrate that this approach is competitive with state-of-the-art tractable distribution estimators. At test time, the method is significantly faster and scales better than other autoregressive estimators.

Proceedings of the 32nd International Conference on Machine Learning, JMLR W&CP 37:881–889, 2015.
[PDF, DjVu, GoogleViewer, Supplementary, arXiv, BibTeX]

Mathieu has provided code.

I am providing some Matlab sanity checks. This archive provides a close rewriting of the pseudo-code from the paper into Matlab/Octave, with some tests that it behaves as advertised. This code isn’t suitable for actually learning MADE from data.

See also: the earlier papers on NADE, RNADE, and DNADE; later paper on MAF, an alternative way of stacking MADE.