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:

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

Outline

This website will be updated as we go along.

Lecture 1: Introduction

Lecture 1 slides

Additional Reading

Lecture 2: Introduction to machine learning

In this lecture, we cover the general aspects of machine learning.

Lecture 2 slides

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).

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.