Deep Neural Networks, while being unreasonably effective for several vision tasks, have their usage limited by the computational and memory requirements, both during training and inference stages. Analyzing and improving the connectivity patterns between layers of a network has resulted in several compact architectures like GoogleNet, ResNet and DenseNet-BC. We survey the most recent developments giving CNN architectures with better error vs resourse (parameters/FLOPs/energy/memory/fps) tradeoffs.
We also plan to learn how to do fast implementations of CNNs in existing processing architectures. Most important processor currently is the GPU. Hence we plan to learn some amount of GPU programming as well.
Schedule
Every week we meet for 3 hrs. Broadly it will be divided in to:
- 1 hr will be spent on basics and pre 2017 techniques
- 1 hr on more recent techniques or theory
- 1 hr on GPU programming (also some thing about FPGAs or general hardware?)
Papers
The topics covered can be broadly classified into following. It is reccomended that each participant take one topic and read all papers related to it. If there are too many in a particular topic, we can find some way to share the load.
Explicit Compression Techniques
- Trained Pruning and Quantization : https://arxiv.org/abs/1510.00149
- Low Rank and Sparse Approximations : http://ieeexplore.ieee.org/document/8099498/
- Binarized Networks : http://allenai.org/plato/xnornet/
Efficient CNN Designs
- Grouped Convolutions :
- Depthwise Seperable Convolutions (MobileNet)
- ResNext
- DenseNet
- ShuffleNet
- Interleaved Convolution
- Deep Expander Nets
- ZeroFLOP operation
- Block Sparse GPU Kernels
- Capsule Network
- FractalNet
- MEC (ICML ‘17)
- SENet (ImageNet 2017 Competition Winner)
- MobileNet v2 (with detection and segmentation scores)
Efficient Semantic Segmentation Architectures
- DeepLab V3, PSPNet (Atrous Convolutions, Pyramidal Spatial Pooling)
Architecture Search
- NasNet
- Hierarchical Representations for Efficient Architecture Search
- Progressive Neural Architecture Search
- CondenseNet
GPU Programming
- Follow course notes : http://courses.cms.caltech.edu/cs179/
Theory for CNNs
- Follow some papers from : https://stats385.github.io/readings
Meetings
- CNN Introduction and Survey | Depthwise Seperarable Convolutions (Inception, Xception, MobileNet) | Pruning and Quantization Introduction
- ResNext | GPU Programming 1
- FractualNets | Memory Efficient Convolutions (MEC)
- CapsuleNet | tvmlang | Semantic segmentation architectures (PSP Module, Atrous convolutions from Deeplab v3)
Participants
- Ameya Prabhu
- Aniruddha Vivek Patil
- Sriharsha Annamaneni
- Aaron Varghese
- Vallurupalli Nikitha
- Sudhir Kumar Reddy
- Soham Saha
- Ashutosh Mishra