In this homework assignment, you’ll gain experience implementing backpropagation
In this homework assignment, you’ll gain experience implementing backpropagation for multi-layer perceptrons (MLPs) and convolutional neural networks. You don’t need a GPU to complete this homework assignment. The purpose of this assignment is to get hands on experience with backprop and convolutional networks. As in the previous assignment, I recommend you use Anaconda python to complete this assignment if working locally. You can also use Google Colab for the assignment.
To get started, download the starter code which will walk you through both parts of this assignment.
Part 1: Implementing a Multi-layer Neural Network (50 points)
In the first part of the assignment, you’ll implement a multi-layer neural network to predict image pixel values (the 3D RGB color values of the image) given the 2D (x,y) coordinates of the image. You’ll also experiment with performing various transformations of the input coordinates to explore the impact on training.
The part1 folder in the starter code will walk you through the steps to complete this part of the assignment.
Part 2: Implementing a Convolutional Neural Network (50 points)
In the second part of the homework assignment (in the part2 folder), you’ll implement a simple convolutional neural network in numpy. You’ll be given a few images of digits and predict a value for each image using a regression-style loss.
You should not use any functions that implement convolution, gradient descent, etc. You do not have to handle padding within your convolution and should directly write out the convolution as we discussed it in class. You’ll then implement the training process for your simple CNN network and show the result of training. Finally, you’ll try to synthesize digits using your network and perform some analysis of the net.