【论文阅读笔记】Deep Neural Network Compression with Single and Multiple Level Quantization

全文概括

  本文是《Quantized Convolution Neural Networks for Mobile Devices》和《Incremental Network Quantization:Towards Lossless CNN with Low-Precision Weights》的思想结合。参考了前者的分层量化k-means聚类共享权值,参考了后者的INQ思想,即同一层分块量化

  在此文中,分层就是depth level,分块就是width level

  SLQ(Single-Level network Quantization)利用参数的分布来改善 width level (与INQ比,就多了一个参数聚类&权值共享的过程,效果和INQ差不多)。在 depth level ,用增量层次量化的方法,来补偿前面层数的量化损失(作者的想法是:对于极端小的bit来说,比如2-bit,量化的损失会很大,可能每层都同时量化会不好恢复,作者就想分层量化。但是这种量化方法的后果是进一步加剧INQ本就需要recover的re-train难度,最后的结果并不比INQ好。作者并未与INQ对比,但是其展示在CIFAR-10数据集上的ResNet-20上,MLQ比基线低了1.68%1.68\%;但INQ的ResNet-18,不知道是不是在ImageNet上,比基线低了1.56%1.56\%。但对比INQ的好处在于用了权值共享,暂时不了解权值共享带来的计算优势。

【论文阅读笔记】Deep Neural Network Compression with Single and Multiple Level Quantization

量化步骤

  1. k-means聚类:将参数用k-means算法聚成k类簇
  2. weight partition:依据每个簇的量化loss,将簇分为两组(待量化组和re-train组)
  3. weight share:将待量化组的每个簇用中心点作为权值共享值
  4. re-train剩下的参数。
    【论文阅读笔记】Deep Neural Network Compression with Single and Multiple Level Quantization

Intorduction

  对于hight-bit,使用 single-level 量化方法对于极端小的bit,使用 multi-level 量化方法。

  SLQ和MLQ都由四个步骤组成:clustering,loss based partition,weight-sharing,re-training
  SLQ和MLQ的主要区别在于,在基于loss的划分权重阶段,对于SLQ只划分簇,而对于MLQ,划分簇和层,所以SLQ可以认为是一种特殊的MLQ。
  将参数用k-means算法聚成k类簇,然后依据每个簇的量化loss,将簇分为两组(待量化组和re-train组),将待量化组的每个簇用中心点作为权值共享值,re-train剩下的参数。
【论文阅读笔记】Deep Neural Network Compression with Single and Multiple Level Quantization


Single-level Quantization

Cluster

  参数聚类成簇,是该方法比INQ较好的一点,是 data-driven 的表现。这应该能更轻松控制量化损失,即恢复准确度更容易些。

Loss based Partition

  不同于INQ先量化更大值的参数(基于pruning的灵感),该方法使用基于量化损失的参数划分,量化损失大的簇先被量化(大概是觉得量化损失小的,比较容易用于恢复精度,即变化幅度小)。【量化损失应该是直接floating point 和 fixed point的差】

Weight-sharing

  将量化的参数,以簇为单位,簇以中心点共享权值。


Multi-Level Quantization

  不同于SLQ一下把每层的待量化层都量化了,MLQ逐层量化待量化层。
  MLQ的k-means聚类方法的k=3k=3。将影响网络效果大的两个簇称为Boundaries,将影响最小的簇称为

【论文阅读笔记】Deep Neural Network Compression with Single and Multiple Level Quantization

【论文阅读笔记】Deep Neural Network Compression with Single and Multiple Level Quantization


Experiment Results

CIFAR-10数据集
【论文阅读笔记】Deep Neural Network Compression with Single and Multiple Level Quantization
  这结果显示,好像不如INQ在ImageNet数据集上,对ResNet-18的提升。

ImageNet数据集

【论文阅读笔记】Deep Neural Network Compression with Single and Multiple Level Quantization
【论文阅读笔记】Deep Neural Network Compression with Single and Multiple Level Quantization
【论文阅读笔记】Deep Neural Network Compression with Single and Multiple Level Quantization
【论文阅读笔记】Deep Neural Network Compression with Single and Multiple Level Quantization
【论文阅读笔记】Deep Neural Network Compression with Single and Multiple Level Quantization
MLQ
【论文阅读笔记】Deep Neural Network Compression with Single and Multiple Level Quantization