The Convolutional Neural Network in this example is classifying images live in your browser using Javascript, at
about 10 milliseconds per image. It takes an input image and transforms it through a series of functions into
class probabilities at the end. The transformed representations in this visualization can be loosely thought of as
the activations of the neurons along the way. The parameters of this function are learned with backpropagation on
a dataset of (image, label) pairs. This particular network is classifying
CIFAR-10 images into one of 10 classes and was trained
with
ConvNetJS. Its exact architecture is
[conv-relu-conv-relu-pool]x3-fc-softmax, for a total of 17 layers and 7000 parameters. It uses 3x3 convolutions
and 2x2 pooling regions. By the end of the class, you will know exactly what all these numbers mean.
Course Description
Computer Vision has become ubiquitous in our society, with applications in search, image understanding, apps,
mapping, medicine, drones, and self-driving cars. Core to many of these applications are visual recognition
tasks such as image classification, localization and detection. Recent developments in neural network (aka “deep
learning”) approaches have greatly advanced the performance of these state-of-the-art visual recognition
systems. This course is a deep dive into the details of deep learning architectures with a focus on learning
end-to-end models for these tasks, particularly image classification. During the 10-week course, students will
learn to implement and train their own neural networks and gain a detailed understanding of cutting-edge
research in computer vision. Additionally, the final assignment will give them the opportunity to train and
apply multi-million parameter networks on real-world vision problems of their choice. Through multiple hands-on
assignments and the final course project, students will acquire the toolset for setting up deep learning tasks
and practical engineering tricks for training and fine-tuning deep neural networks.
Coursework
Prerequisites
- Proficiency in Python
All class assignments will be in Python (and use numpy)
(we provide a tutorial here for
those who aren't as familiar with Python). If you have a lot of programming experience but in a different
language (e.g. C/C++/Matlab/Javascript) you will probably be fine.
- College Calculus, Linear Algebra (e.g. MATH 19, MATH 51)
You should be
comfortable taking derivatives and understanding matrix vector operations and notation.
- Basic Probability and Statistics (e.g. CS 109 or other stats course)
You should
know basics of probabilities, gaussian distributions, mean, standard deviation, etc.
Assignments (45%)
See the Assignments page for details regarding assignments, late days and
collaboration policies.
Midterm (20%)
Detailed information regarding the midterm will be made available as an announcement on Ed in the coming weeks.
Final Project (35%)
See the Project page for more details regarding the final course project.
Participation (3% extra credit)
We appreciate student participation in the class! We will be awarding, on a case-by-case basis, up to 3% in extra
credit to the top Ed contributors based on the number of (meaningful) instructor-endorsed answers or other
significant contributions that assist the teaching staff or other students in the course. The most helpful
contributor will receive the greatest amount of extra credit, and other students with significant contributions
will receive a percentage of that.
Regrade Requests
If you believe that the course staff made an objective error in grading, you may submit a regrade request on
Gradescope within 3 days of the grade release. Your request should briefly summarize why the original
grading was incorrect. Note that staff may regrade the entire submission, so it is possible for you to lose more
points than you gain if a mistake was overlooked in the first time.
Late Policy
- All students have 4 free late days for the quarter.
- You may use up to 2 late days per assignment with no penalty.
- You may use late days for the assignments, project proposal, and project milestone.
- You may not use late days for the final project report.
-
Once you have exhausted your free late days, we will deduct a late penalty of 25% per additional late day.
- For example: you submit A1 one day late, submit A2 three days late, and submit A3 two days late.
You receive no penalty for A1, and exhaust one of your free late days.
For A2 the first two late days exhaust two of your free late days; the third day late incurs a 25% penalty.
For A2 the first late day exhausts your final free late day; the second late day incurs a 25% penalty.
- For the project proposal and milestone, we will deduct late days from each group member independently.