Lab 7: Neural Nets
From 6.034 Wiki
Contents |
This lab is due by TODO at 10:00pm.
To work on this lab, you will need to get the code, much like you did for the first two labs.
- You can view the files at: http://web.mit.edu/6.034/www/labs/lab6/
- Download it as a ZIP file: http://web.mit.edu/6.034/www/labs/lab6/lab6.zip
- Or, on Athena, add 6.034 and copy it from /mit/6.034/www/labs/lab6/.
Your answers for this lab belong in the main file lab6.py.
Problems
Neural Nets
TODO: explain each function below (basically copy docstrings from lab file, then format)
Helper functions
stairstep: Computes the output of the stairstep function using the given threshold
sigmoid: Computes the output of the sigmoid function using the given steepness and midpoint
accuracy: Computes accuracy using desired_output and actual_output. If the output is binary, the accuracy ranges from -0.5 to 0
Wiring a neural net
TODO (this section will probably be cut, or maybe changed to just specifying number of neurons per layer)
Forward propagation
Given a neural net and dictionary of input values, performs forward propagation with the given threshold function to compute binary output.
This function should not modify the input net and will return a tuple containing:
1) a dictionary mapping neurons to their immediate outputs 2) the final binary output (0 or 1)
Backward propagation
update_weights
back_prop
Support Vector Machines
TODO describe functions below (basically copy docstrings and reformat)
Vector Math
norm
dot_product
5 Equations
- todo also include the 5 equations here so students can refer to them
positiveness
classify
margin_width
check_gutter_constraint
check_alphas
Classification Accuracy
count_misclassified_training_points
Survey
Please answer these questions at the bottom of your lab6.py file:
- NAME: What is your name? (string)
- COLLABORATORS: Other than 6.034 staff, whom did you work with on this lab? (string, or empty string if you worked alone)
- HOW_MANY_HOURS_THIS_LAB_TOOK: Approximately how many hours did you spend on this lab? (number or string)
- WHAT_I_FOUND_INTERESTING: Which parts of this lab, if any, did you find interesting? (string)
- WHAT_I_FOUND_BORING: Which parts of this lab, if any, did you find boring or tedious? (string)
- (optional) SUGGESTIONS: What specific changes would you recommend, if any, to improve this lab for future years? (string)
(We'd ask which parts you find confusing, but if you're confused you should really ask a TA.)
When you're done, run the online tester to submit your code.
API
Neural Nets
The file neural_net_api.py defines the Wire and NeuralNet classes, described below.
Wire
TODO
NeuralNet
TODO
Support Vector Machines
The file svm_api.py defines the Point, DecisionBoundary, and SupportVectorMachine classes, as well as some helper functions for vector math, all described below.
Point
TODO
DecisionBoundary
TODO
SupportVectorMachine
TODO
Helper functions for vector math
TODO add docstrings + format
vector_mult
scalar_add