CS 677: Deep learning
Spring 2020

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.

Course plan:

Topic
Date
Notes
Basic machine learning and Python scikit-learn
01/22/2020
Introduction
Basic Unix command sheet
Instructions for AFS login

Basic machine learning background with Python scikit-learn

Datasets
Introduction to GPU computing
01/27/2020
GPU coding (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/29/2020
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/03/2020
Parallel Chi-square 2-df test
Assignment 1
OpenCL and OpenMP programming
02/05/2020
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/10/2020, 02/12/2020
Multi-layer perceptrons
Scikit-learn MLP code Approximations by superpositions of sigmoidal functions (Cybenko 1989)
Approximation Capabilities of Multilayer Feedforward Networks (Hornik 1991)
The expressive power of neural networks: A view from the width (Lu et. al. 2017)
Back propagation for single layer network with numpy 02/17/2020
Assignment 3
Image classification 02/24/2020
Image classification code
Python Image Library
Convolutional kernels for images 02/26/2020
Convolutional kernels
Convolutional neural networks 03/01/2020
Convolutional neural network (Additional slides by Yunzhe Xue)
Convolution and single layer neural networks objective and optimization
Flower image classification with CNNs code
Stochastic gradient descent 03/04/2020
Optimization in neural networks
Assignment 4
Back propagation for convolutional network with one convolutional layer followed by global average pooling 03/09/2020
Assignment 5
Mid-term review sheet
Introduction to Keras: basic deep convolutional neural networks 03/11/20
Image classification code v2
Spring Break 03/16/20
Spring Break 03/18/2020
Keras, batch normalization, basic deep networks, and mid-term review 03/23/2020
Batch normalization
Batch normalization paper
Group normalization paper
How does batch normalization help optimization
Assignment 6
Mid-term exam 03/25/2020
Convolutional neural networks: gradient descent optimization. Large-scale image classification 03/30/20
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/01/20
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
Common architectures: ResNet, DenseNet, VGG
04/02/20
A guide to convolution arithmetic for deep learning

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

Identity Mappings in Deep Residual Networks

Assignment 7
Mini ImageNet in original form. Data are 256x256 images spread across different directories
More transfer learning, cross-entropy loss function vs. least squares 04/06/20
Assignment 8
Kaggle datasets:
(a) Fruits
(b) Flowers
(c) Chest X-rays
Data augmentation, transposed convolutions, generative networks, GANs 04/08/20
Understanding data augmentation for classification
SMOTE: Synthetic Minority Over-sampling Technique
Dataset Augmentation in Feature Space
Improved Regularization of Convolutional Neural Networks with Cutout
Data Augmentation Using GANs
Transposed convolutions, generative networks, GANs 04/09/20
Assignment 9: MNIST GAN
Image localization and segmentation, adversarial attacks, robust machine learning 04/13/20
U-Net: Convolutional Networks for Biomedical Image Segmentation
GitHub UNet in Keras
Unsupervised Representation Learning with Deep Convolutional Generative Adversarial Networks
Adversarial attacks and robust machine learning 04/15/20, 04/16/20
Assignment 10: Black-box adversarial attack
Keras model to be attacked

Why deep-learning AIs are so easy to fool
Intriguing properties of neural networks
Explaining and Harnessing Adversarial Examples
Adversarial examples in the physical world
Adversarial Examples Are Not Easily Detected: Bypassing Ten Detection Methods
Transferability in Machine Learning: from Phenomena to Black-Box Attacks using Adversarial Samples
Practical Black-Box Attacks against Machine Learning
Adversarial Machine Learning at Scale
Adversarial Training Can Hurt Generalization
Robustness May Be at Odds with Accuracy
Simple Black-box Adversarial Attacks
GenAttack: Practical Black-box Attacks with Gradient-Free Optimization
Adversarial Examples Are a Natural Consequence of Test Error in Noise
Benchmarking Neural Network Robustness to Common Corruptions and Perturbations
Exploring the Landscape of Spatial Robustness
Text data 04/20/20 CNNs for text
Convolutional Neural Networks for Sentence Classification
A Sensitivity Analysis of (and Practitioners' Guide to) Convolutional Neural Networks for Sentence Classification
Character-level Convolutional Networks for Text Classification
Very Deep Convolutional Networks for Text Classification

Python regular expressions
Perl regular expressions

Word tagging with nltk

Word2Vec for word representations
Word2Vec paper
Word2Vec illustration

Assignment 11: word2vec exercise
Liar Liar dataset
Basic spam filtering
Fake news data
More deep learning applications: Data clean and data quality, and doing basic science and engineering with deep learning 04/27/20 Solving problems in Physics, Engineering, and Computer Science with deep learning

Computer Science
Learning to Repair Software Vulnerabilities with Generative Adversarial Networks
The Case for Learned Index Structures
How to sort numbers using Convolutional Neural Network?
An O(N) Sorting Algorithm: Machine Learning Sort
Shortest path distance approximation using deep learning techniques

Physics
Newton vs the machine: solving the chaotic three-body problem using deep neural networks
Learning to predict the cosmological structure formation

Biology
Deep learning models for bacteria taxonomic classification of metagenomic data
DeepMicrobes: taxonomic classification for metagenomics with deep learning
Computational Protein Design with Deep Learning Neural Networks

Medical diagnosis
Classification of histopathology imnages
A multi-path 2.5 dimensional convolutional neural network system for segmenting stroke lesions in brain MRI images
Vessel lumen segmentation in internal carotid artery ultrasounds with deep convolutional neural networks Vessel lumen segmentation in carotid artery ultrasounds with the U-Net convolutional neural network
Classifying Histopathology Images with Random Depthwise Convolutional Neural Networks

Engineering
Deep learning for molecular design - a review of the state of the art
Airport and runway repair identification

Finance
Stock price prediction
Portfolio management
Deep learning with Pytorch 04/27/20 Flower classification in Pytorch
Other topics: Image retrieval, self-designed networks, self-supervised learning, convolutional temporal kernels vs recurrent networks 04/27/20 Image retrieval:
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

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

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

Time series networks:
An Empirical Evaluation of Generic Convolutional and Recurrent Networks for Sequence Modeling
Final exam review 05/04/20 Final exam review sheet