Deep Learning for Computer Vision
Second semester 2022
Andrés Marrugo, PhD
Universidad Tecnológica de Bolívar
Aims and Scope
This semester course will provide a practical introduction to neural networks and deep learning. Covered topics covered will include: linear classifiers; multilayer neural networks; stochastic gradient descent and backpropagation; convolutional neural networks and their applications to computer vision tasks such as object detection and dense image labeling. Course work will consist of programming tasks in Python.
At the end of the lectures, one would be able to:
- Gain experience in computer vision research.
- Get exposure to a variety of topics and become familiar with modern machine learning and deep learning techniques.
- Learn to write and present works of a technical-academic nature.
- Gain hands-on experience developing machine learning systems.
Useful Resources
We will be using Jupyter Python notebooks as a numerical computing and graphical platform for solving many problems in the course. To avoid installing Jupyter Python locally, I encourage you to use Google Colab.
Tutorials, review materials
- Linear algebra review
- Random variables review
- Linear algebra with Numpy
- Manipulating images in Python/OpenCV
- Data analysis with Pandas
- Visualisation with matplotlib
Outline
This website will be updated as we go along.
Lecture 1: Introduction
Additional Reading
Lecture 2: Introduction to machine learning
In this lecture, we cover the general aspects of machine learning.
Recommended Readings
Lecture 3: Linear classifiers
In this two-part lecture, we cover linear classifiers.
Lecture 4: Linear classifiers
In this two-part lecture, we cover linear classifiers.
In-class activity
We will be working out the code from two chapters of the book Deep Learning for Computer Vision by Adrian Rosenbrock. Download the pdfs and launch the notebooks.
Book chapters
Notebooks
What to submit
Upload the two notebooks with corresponding annotations and output in html format.
Lecture 5: Nonlinear classifiers
In this lecture, we cover nonlinear classifiers: the “Shallow” approach using Kernel support vector machines (SVMs) and the “Deep” approach using Multi-layer neural networks. We also cover how to control classifier complexity, hyperparameters, bias-variance tradeoff, overfitting and underfitting, and hyperparameter search in practice.
In-class activity
We will be implementing our first neural network. It is Logistic Regression with a Neural Network mindset based on the course by Andrew Ng. Launch the notebook in Colab.
What to submit
Upload the notebook with corresponding annotations and output in HTML format.
Lecture 6: Backpropagation
In this lecture, we cover the backpropagation algorithm used to update the network parameters.
Lecture 7: Convolutional neural networks
In this lecture, we take on the fundamentals of convolutional neural networks (CNNs).
Recommended Readings
In-class activity - My first CNN
We will be working out the code from two chapters of the book Deep Learning for Computer Vision by Adrian Rosenbrock. Download the pdfs and launch the notebooks.
Book chapters
Notebooks
What to submit
Upload the two notebooks with corresponding annotations and output in html format.
Classifier metrics
Projects
In this course, you are required to complete a short project, similar to the assignments, but you are free to choose the approach and the implementation. You will work in teams of two and you will deliver a project report in the IEEE paper format and a 12-minute presentation. Also, upload a ZIP file with the code and Jupyter notebooks.
The project is due December 2.
Lecture 8: Neural network training
In this lecture, we discuss the basics of neural network training.
In-class activity - Implement VGGNet
We will be working out the code from chapter 15 of the book Deep Learning for Computer Vision by Adrian Rosenbrock. Download the pdf and launch the notebooks.
Notebook
Book chapters
What to submit
Upload the notebook with corresponding annotations and output in html format.