This module instructs students on the basics of deep learning as well as building better and faster deep network classifiers for sensor data. The module is strongly project-based, with two main phases. In the first phase, students will learn the basics of deep learning and Computer Vision, e.g. stochastic gradient descent, multi-layer perceptron, convolutional neural networks, filtering, and corner detection. At the end of this first phase, students should be ready to run simple networks in Keras and implement basic computer vision methods in Python. In the second phase, students will be divided into teams of 2 or 3. Each team will tackle a problem of their choosing, from fields such as computer vision, pattern recognition, distributed computing. Example projects include face recognition and emotion recognition.


All materials are available at: https://github.com/PnS2018


Schedule

Session 01

Basics of Linear Algebra (vector, matrix, tensors, etc), Introduction to Python, numpy basics, symbolic computation basics.

Session 02

Brief introduction to Linear Regression, Logistic Regression, Stochastic Gradient Descent and its variants.

Session 03

Brief introduction to Multi-layer Perceptron and Convolutional Neural Networks.

Session 04

Basic techniques of Computer Vision using OpenCV, such as thresholding, edge detection, etc.

Session 05

Advanced techniques of Computer Vision such as filtering, corner detection, keypoints, etc.

Technical Tutorials and Resources

Git Crash Course

Python for Scientific Computing

Extra Deep Learning Resources

Projects

Remark: Difficulty scale: 1 (so easy) – 10 (way too hard)

Timeline

Acknowledgment

This module uses many online resources on Deep Learning and Raspberry Pi. We would like to acknowledge the following resources: