CSC411/2515 Project 2 bonus: Visualizing Deep Neural Networks
About the bonus
Bonus projects give you an opportunity to explore a topic in machine learning in more depth. They are optional. The quality of your write-up will be considered when grading: you are exploring a complex topic, so if the writing is unclear, we won’t be able to figure out what exactly you are talking about.
Warm-up (up to 0.1 marks toward your course mark)
Visualize the weights of the first layer of AlexNet, as trained on ImageNet.
Visualizing the Deep Network that classifies faces (up to 2 marks toward your course mark)
For the Part, you will be graded on your creativity and for how good your visualizations are.
In Project 2, you trained a deep neural network to classify faces (by just varying the fully-connected layer on top of the layer of AlexNet that you extracted). Visualize what that network is doing.
Some ideas:
- We have discussed several techniques for visualizing deep networks (e.g., Guided Backprop).
- Try to “fine-tune” the entire network (i.e., start from the weights you found in Project 2, and run the optimization on the entire network), and figure out an interesting way to present what the lower layers are doing.
What to submit
The project should be implemented using Python 2 and should be runnable on the CS Teaching Labs computers. If you choose to deviate from that, state your system configuration clearly in your report so that we can reproduce your work if needed.
Your report should be in PDF format. You should use LaTeX to generate the report, and submit the .tex
file as well. A sample template is on the course website. You will submit at least three files: deepviz.py
, deepviz.tex
, and deepviz.pdf
. You may submit additional Python files if necessary.
Reproducibility counts! We should be able to obtain all the graphs and figures in your report by running your code. The only exception is that you may pre-download the images (what and how you did that, including the code you used to download the images, should be included in your submission.) Submissions that are not reproducible will not receive full marks. If your graphs/reported numbers cannot be reproduced by running the code, you may be docked up to 20%. (Of course, if the code is simply incomplete, you may lose even more.) Suggestion: if you are using randomness anywhere, use numpy.random.seed()
.
You must use LaTeX to generate the report. LaTeX is the tool used to generate virtually all technical reports and research papers in machine learning, and students report that after they get used to writing reports in LaTeX, they start using LaTeX for all their course reports. In addition, using LaTeX facilitates the production of reproducible results.
Using our code
You are free to use any of the code available from the CSC411/CSC2515 course website.
Readability
Readability counts! If your code isn’t readable or your report doesn’t make sense, they are not that useful. In addition, the TA can’t read them. You will lose marks for those things.
Academic integrity
It is perfectly fine to discuss general ideas with other people, if you acknowledge ideas in your report that are not your own. However, you must not look at other people’s code, or show your code to other people, and you must not look at other people’s reports and derivations, or show your report and derivations to other people. All of those things are academic offences.