Most of my code is finished, but still need the "todo" pars to be finished:
• You may change the hyperparameters (number of epochs, learning rate etc.) listed in the beginning
of nn main.py.
• Plot the train/validation losses of the encoder (AEFullyConnected and AECNN ) and neural
network (BaselineMLP and BaselineCNN ) separately (4 plots total, each with train/validation
curves). Report the best test accuracy your model achieves and the hyperparameters used.
(a) Your first task is to modify the structure of the provided fully-connected AE to improve the
performance of its model. nn [login to view URL] has a simple fully-connected AE AEFullyConnected for
you to begin with. Run the model using this AE - you will notice that currently it does not do
a very good job. It should give you a test accuracy of around 14.3%. However, it is improving
performance slightly – if you train the MLP on just the labeled data, discarding the AE and
unlabeled data, you should get a test accuracy of around 11%. See if you can modify the AE
to get better than 14.3%. Describe the modifications you made.
(b) Your second task is to implement the Convolutional AE. The encoder will consist of only convolutional layers while the decoder may have fully-connected layers. nn [login to view URL] has the skeleton for AECNN that you will fill in. If you train the CNN on just the supervised data, discarding the AE and unlabeled data, you should get a test accuracy of around 49.3%. Utilizing AECNN with the unlabeled data should allow you to improve the this accuracy. Explore and let us know what architecture you choose. Just report how you achieved this accuracy.