This page has been moved here. Please visit the new site for updates.
Image Recognition with Neural Networks
This is a gentle introduction to Neural Networks. The goal of this Video Lecture Series is to write a Python program from scratch that recognizes handwritten digits.
The course attempts to make the material as accessible as possible. The programming prerequisites are minimal: 1) Basic Python or some programming experience in another language. 2) Numpy. Both of these are covered in the Jupyter Notebook tutorials below. The video lectures cover basic Python and Numpy necessary for writing the program.
The mathematical requirements are also minimal. A precalculus background is all that is required. The course, however, will cover some basic multivariable calculus, including the discussion of partial derivatives, the chain rule and the gradient, necessary to understand Gradient Descent and backpropagation.
This curriculum was originally created for a 2-3 week implementation for AP Computer Science Principles. Here is a link to the entire playlist of lecture videos.
Prerequisites
The essentials of Python and Numpy needed for the course are covered in the following three Jupyter Notebooks tutorials.
- Python Crash Course Part I (html, ipynb): Numbers, Booleans, Strings, Conditionals and Loops
- Python Crash Course Part 2 (html, ipynb): Functions Containers: Lists, Tuples.
- Introduction to Numpy (html, ipynb): Numpy: Working with Arrays, Matrix operations, Broadcasting.
Lecture 1(Video): Introduction to Neural Networks
Overview. MNIST Dataset. Training set. Affine and sigmoid functions.- Python Code From Lecture Video: Jupyter Notebook, HTML
- Homework: lecture1_notebook.zip
Lecture 2(Video): Functions and Their Computational Graphs
Real and vector-valued functions. Matrix Operations. Computational Graphs. N-layer Neural Networks.- Python Code From Lecture Video: Jupyter Notebook, HTML
- Homework: lecture2_notebook.zip
Lecture 3(Video): Formalizing the Problem
Computing the loss and objective functions. Vectorization. Broadcasting. Training the classifier.- Python Code From Lecture Video: Jupyter Notebook, HTML
- Homework: lecture3_notebook.zip
Lecture 4(Video): What is a derivative? A gradient?
Intuitive definitions of the derivative. Partial Derivatives. The gradient.Lecture 5(Video): Gradient Descent and Backpropagation
The Gradient Descent Algorithm. Four Equations of Backpropagation. Mini-batch Gradient Descent.- Homework: lecture5_notebook.zip