Adversarial Ladder Networks
Dropout: a simple way to prevent neural networks from overfitting