Unsupervised Deep Learning with Pytorch

This repository tries to provide unsupervised deep learning models with Pytorch for convenient use.

Denoising Autoencoder

1-layer autoencoder. Corrupt the input (masking), then reconstruct the original input.

Stacked Denoising Autoencoder

Layerwise pretraining by denoising autoenocder. Then stack all layers and finetune further.


The famous Variational Autoencoder from the paper

Kingma, Diederik P., and Max Welling. "Auto-encoding variational bayes." ICLR (2014).

Convolutional VAE

VAE using convolutional and deconvolutional networks is demonstrated with SVHN dataset. Expample code is test_convvae.py. The reconstruction and samples generated is show as follows:

SVHN Reconstruction SVHN Sample

Variational Deep Embedding

Implementation of Variational Deep Embedding from the IJCAI2017 paper:

Jiang, Zhuxi, et al. "Variational deep embedding: An unsupervised and generative approach to clustering." International Joint Conference on Artificial Intelligence. 2017.

The original code is written in Keras. However, the original code is incorrect when computing the loss function. And I have corrected the loss function part with my code. The example usage can be found in test/test_vade-3layer.py, and it uses the pretrained weights from autoencoder in test/model/pretrained_vade-3layer.pt.