DeepCABAC: A Universal Compression Algorithm for Deep Neural Networks - Wiedemann, Simon; Kirchhoffer, Heiner; Matlage, Stefan; Haase, Paul; Marban, Arturo; Marinc, Talmaj; Neumann, David; Nguyen, Tung; Schwarz, Heiko; Wiegand, Thomas; Marpe, Detlev; Samek, Wojciech (IEEE journal of selected topics in signal processing, 2020)
In the past decade deep neural networks (DNNs) have shown state-of-the-art performance on a wide range of complex machine learning tasks. Many of these results have been achieved while growing the size of DNNs, creating a demand for efficient compression and transmission of them. In this work we present DeepCABAC, a universal compression algorithm for DNNs that is based on applying Context-based Adaptive Binary Arithmetic Coder (CABAC) to the DNN parameters. CABAC was originally designed for the H.264/AVC video coding standard and became the state-of-the-art for the lossless compression part of video compression. DeepCABAC applies a novel quantization scheme that minimizes a rate-distortion function while simultaneously taking the impact of quantization to the DNN performance into account. Experimental results show that DeepCABAC consistently attains higher compression rates than previously proposed coding techniques for DNN compression. For instance, it is able to compress the VGG16 ImageNet model by x63.6 with no loss of accuracy, thus being able to represent the entire network with merely 9 MB. The source code for encoding and decoding can be found at https://github.com/fraunhoferhhi/DeepCABAC .