CS 677 (original) (raw)

Instructor: Usman Roshan
Office: GITC 4214B
Ph: 973-596-2872
Office hours: TW: 2 to 5
TA: TBA
Email: usman@njit.edu

Textbook: Not required
Grading: 40% programming assignments, 25% mid-term, 35% final exam
**Course Overview:**This course will cover deep learning and current topics in data science. We will begin with machine learning background and then move to CUDA and OpenCL languages for parallel programming on Graphics Processing Units (GPUs) followed by OpenMP for multi-core programming. We will then proceed to neural networks, machine learning for image recognition, convolutional filters for image recognition, convolutional neural networks, optimization algorithms to train such networks, adversarial attacks, and deep learning for text.

Topic

Date

Notes

Basic machine learning and Python scikit-learn

01/23/2019

Introduction
Basic Unix command sheet
Instructions for AFS login

Basic machine learning background with Python scikit-learn

Datasets

Introduction to GPU computing

01/28/2019

[ GPU coding](GPU coding.pptx) (also see Cuda by Example by Kandrot and Sanders)

Numpy tutorials
Official Numpy tutorial
External Numpy tutorial

CUDA in Python
Numba
CUDAJIT in Anaconda
PyCUDA (PyCUDA slides)

CUDA programming

01/30/2019

Parallel chi-square 2-df test
Chi-square 2-df test in parallel on a GPU
Simulated GWAS
Class labels for above data

CUDA programming

02/04/2019

Parallel Chi-square 2-df test
Assignment 1

OpenCL and OpenMP programming

02/06/2019

CUDA to OpenCL slides
libOpenCL.so (NVIDIA library file for OpenCL code)
Chi2 opencl implementation
OpenCL files

CUDA to OpenMP slides
OpenMP reference
Chi2 openmp implementation
Assignment 2

Neural networks

02/11/2019

Multi-layer perceptrons
Scikit-learn MLP code

Image classification

02/13/2019

Image classification code
Python Image Library

Convolutional kernels for images

02/18/2019

Convolutional kernels

Convolutional neural networks

02/20/2019

Convolutional neural network (Additional slides by Yunzhe Xue)
[Convolution and single layer neural networks objective and optimization](Convolution and single layer neural networks objective and optimization.pdf)
Flower image classification with CNNs code

Convolutional neural networks

02/25/2019

[Convolution and single layer neural networks objective and optimization](Convolution and single layer neural networks objective and optimization.pdf)

Back propagation for single layer network with numpy

02/27/2019

Assignment 3

Online lecture for backpropagation weight updates

03/02/2019

NJIT closed due to weather

03/04/2019

Back propagation for single layer network with numpy, stochastic gradient descent

03/06/2019

Optimization in neural networks
Assignment 4

Back propagation for convolutional network with one convolutional layer followed by global average pooling

03/11/2019

Assignment 5

Introduction to Keras

03/13/2019

Spring Break

03/18/2019

Spring Break

03/20/2019

Spring Break lecture

03/22/2019

Keras and mid-term review

03/25/2019

Mid-term review sheet
Assignment 6

03/27/2019

Mid-term exam

Convolutional neural networks in Keras: convolutional blocks and layering

04/01/2019

Image classification code v2

Convolutional neural networks in Keras: normalization types and their effect

04/03/2019

Batch normalization
Batch normalization paper
Group normalization paper
How does batch normalization help optimization

Convolutional neural networks: gradient descent optimization. Large-scale image classification

04/08/2019

Gradient descent optimization
An overview of gradient descent optimization algorithms
Curriculum learning

CIFAR 10
CIFAR 100
STL 10
Mini ImageNet

More on training convolutional neural networks

04/10/2019

On training deep networks
The Loss Surfaces of Multilayer Networks
Ant colony optimization for deep networks
Simulated Annealing Algorithm for Deep Learning

Convolutional neural networks in Keras: pertrained models and transfer learning
Convolutions and deconvolutions, temporal convolutional kernels
Common architectures: ResNet, DenseNet, VGG

04/15/2019

A guide to convolution arithmetic for deep learning

Common architectures
Transfer learning by Yunzhe Xue
Pre-trained models in Keras

Continuation of above plus cross-entropy loss function vs. least squares

04/17/2019

Assignment 7
Mini ImageNet in original form. Data are 256x256 images spread across different directories

Multi-path networks, data augmentation, time-series and sequence networks

04/22/2019

An Empirical Evaluation of Generic Convolutional and Recurrent Networks for Sequence Modeling

Image classification on Kaggle datasets, self-designed networks, self-supervised learning

04/24/2019

Assignment 8
Kaggle datasets:
(a) Fruits
(b) Flowers
(c) Chest X-rays

Exploring Randomly Wired Neural Networks for Image Recognition
Automatically Designing CNN Architectures Using Genetic Algorithm for Image Classification

UNSUPERVISED REPRESENTATION LEARNING BY PREDICTING IMAGE ROTATIONS
Unsupervised Visual Representation Learning by Context Prediction
Unsupervised Representation Learning with Deep Convolutional Generative Adversarial Networks

Image retrieval, U-networks

04/29/2019

U-Net: Convolutional Networks for Biomedical Image Segmentation
GitHub UNet in Keras

Image retrieval

05/01/2019

Deep Learning for Image Retrieval: What Works and What Doesn't
CNN Features off-the-shelf: an Astounding Baseline for Recognition
Deep Learning for Content-Based Image Retrieval: A Comprehensive Study

Adversarial attacks, final exam review

05/06/2019

Final exam review sheet