# CSCI-5931: Deep Learning

Graduate course, *Online*, 2022

Deep Learning is a subfield of machine learning mostly concerned with concepts and techniques built on top of the artificial neural network which in turn was inspired by the structure and functionality of human brains. This branch of machine learning is increasingly gaining popularity as deep learning systems are taking over all artificial intelligent tasks, ranging from image classification, language modeling, machine translation, playing games, autonomous vehicle driving, speech recognition, cancer detection and numerous other applications and is behind many recent advances in Artificial Intelligence (AI). In this course you will gain both theoretical and practical knowledge of deep learning concepts and techniques. So, welcome aboard!

# Course objectives

By the end of the course you are expected to gain the following skills:

- Understand fundamentals of artificial neural network, and deep neural networks.
- Develop an understanding on how to train a neural network.
- Determine how a deep neural network can be designed, and implemented to solve real world problems.
- Demonstrate an in-depth understanding of one/more concepts introduced in the deep learning course through a final project.

# Prerequisites

- The
`graduate standing`

.

# Topics covered

- Introduction, stories of Deep Learning
- Backgrounds in understanding the artificial neural networks
- Nuts and Bolts of AI
- Responsible AI
- Feed forward neural nets and training maths
- Introduction to compute framekworks
- Tensorflow 2.0: an introduction
- Introduction to tensors
- Backpropagation with tensorflow
- Batch normalization
- Dropouts
- Regularization

- Bias-variance trade-offs
- Convolution neural networks
- Convolution operation
- 1x1 conv layer
- CNN implementation aspects
- Pooling layers
- Flatten and Fully connected (FC) layers
- CNN examples
- Epilog with CNN weight sharing concept
- Tensorboard
- CNN architectures

- ImageNet – what is it, and where is it going?
- What are ResNets?
- Introduction to PyTorch
- Neural nets with PyTorch
- CNNs with PyTorch
- Visualizing CNN components

- Transfer learning
- Introduction to Recurrent Neural nets
- Transformers
- Unsupervised Deep Learning
- Autoencoders
- Segmentation

- Generative Adversarial Nets (GANs)
- Deep Reinforcement Learning
- DRL applications
- Building a self-driving car