$25
Objective
The objective is to gain experience with developing a vanilla neural network from scratch.
For this purpose we will use the programming assignment posed in Question #4 of Assignment 1 from the Stanford University course CS231n Convolutional Neural Networks for Visual Recognition (Spring 2019 offering, see cs231n.stanford.edu).
This assignment will allow you to learn the key concepts related to neural networks. In particular, you will implement the forward and backward pass.
Similar to the previous assignment, Assignment 2 also uses Python and Jupyter, so you can continue using the same Conda environment setup as for Assignment 1.
Resources and Instructions
The assignment directory is available from this link:
http://cs231n.github.io/assignments2019/assignment1/
You are only required to do Question 4 up to (and excluding) “Train the network”, which is contained in the notebook two_layer_net.ipynb in the assignment directory. You are also required to comment each block of code you add in order to show understanding.
The additional online material relevant to this assignment, which you may find useful to watch and consult, are the following lectures from CS 231n:
Lecture 3 – Loss functions and Optimization
Lecture 4 – Introduction to Neural Networks
You can access the lecture videos and course notes from the course website: cs231n.stanford.edu
Deliverable
HTML output: In the jupyter notebook, go to File > Download as > HTML (.html) Submit a ZIP file containing the HTML output and neural_net.py.
Please follow the naming convention of your zip file: a2_<user_id>.zip
Collaboration
You can discuss the problem with peers, but you must design and implement your own solution independently.
Use of online resources
You may consult any online resources to get ideas or to troubleshoot, but you must develop your own code.