Homework 9: Variational Autoencoders

About

Due

Wednesday 4/24/19, 11:59 PM CST

Goal

This homework focuses on evaluating variational autoencoders applied to the MNIST dataset.

Submission

Submission will be through gradescope.

Code and External Libraries

The assignment involves PyTorch, so it must be done using Python only.

You may use any third-party code for the variational autoencoder. But for the rest part of the assignment, you are expected to write your own code.

Problems

Total points: 100

An autoencoder is a type of artificial neural network used to learn efficient data codings in an unsupervised manner. Variational autoencoder (VAE) models inherit the autoencoder architecture, but make strong assumptions concerning the distribution of latent variables. You can use this post as a reference.

You have two options for this assignment:

Train this autoencoder on the MNIST dataset. Use only the MNIST training set for training.

Now determine how well the codes produced by this autoencoder can be interpolated. Use only the MNIST test set for this.

Submission

Submit to gradescope:

A PDF file (named "{yournetid}_HW9.pdf") containing the following:

  1. (45 points) Page 1: Same digit interpolates (Make your figure large!)
  2. (45 points) Page 2: Different digit interpolates (Make your figure large!)
  3. (10 points) Page 3+: Your code.