全文概括

  本文目的是将 activationweight 一起量化,其结果能量化 activationweight 到 4-bit 大小,且准确度能和 full precision 媲美(在一系列流行的模型和数据集上)

  该方法是提出一个新的**函数,即PACT(PArameterized Clipping Activation),其作用在训练阶段,即该方案是从头开始训练的

  提出该**函数的背景是作者发现:“在运用权重量化方案来量化 activation 时,传统的RELU的量化结果和全精度结果相差较大,在分类任务上”。作者发现是量化时,activation的量化误差能很大(相较于 weight 基本在 (0,1)(0,1),activation的值是无限大的,这是RELU的结果),所以提出 截断式RELU 的**函数该截断的上界,即文中的 α\alpha 是可学习的参数,这保证了每层都能有不一样的量化范围。

  新添的参数 α\alpha,在训练时使用 L2L_2 正则化,使其快速收敛的同时,保持一个较小的值,以限制量化时产生的量化误差。

  结果展示

  1. 对于极端小的bit(2bits\leq 2-bits),PACT表现得比已提出其他量化方法要好;
  2. PACT的 4-bit 量化结果表现得和原 floating point版本差不多。PACT的 4-bit 量化结果表现得和原 floating point版本差不多。

  该方法,对大的网络,如ResNet-50效果很好,和baseline差不多。

该方法是从头开始训练的,暂时不知道其是不是在训练网络的同时,使用量化方案,如果不是同时使用量化方案的话,是不是可以使用 pre-trained model ,然后使用PACT进行“微调”,再进行量化。


**量化的挑战

  量化传统的 activation,不像量化 weight 一样,可以通过学习去补偿,其量化的误差结果只能加重 weight 的补偿学习。

  传统的 RELU 是无界的,这代表着其结果能有很大的范围。通过截断式RELU,给 activation 添加一个上界,可以部分环节量化误差的损失,但其结果仍显著不如全精度版本。
【论文阅读笔记】PACT:PArameterized Clipping Activation for Quantized Neural Networks


PACT

PACT工作流程

  PACT**函数:y=PACT(X)=0.5(XXα+α)={0,x(,0)x,x[0,α)α,x[α,+)y=PACT(X)=0.5(|X|-|X-\alpha|+\alpha)=\begin{cases} 0, & x \in (-\infty,0) \\ x, & x \in [0, \alpha) \\ \alpha, &x \in [\alpha, +\infty) \end{cases}

  该**函数的输出,量化到 k-bits上的结果为:yq=round(y2k1α)α2k1y_q=round(y*\frac{2^k-1}\alpha)* \frac {\alpha}{2^k-1}  α2k1\frac {\alpha}{2^k-1} step-size

  反向传播学习 α\alpha 的过程:yqα=yqy={0,x(,α)1,x[α,+)\frac{\partial y_q}{\partial \alpha}=\frac{\partial y_q}{\partial y}=\begin{cases} 0, x \in (-\infty , \alpha) \\ 1, x \in [\alpha , +\infty) \end{cases}  其中,梯度yqα\frac{\partial y_q}{\partial \alpha}通过"straight-through estimator(STE)"随机离散化神经元来进行梯度计算和反向传播工作,作者将yqα\frac{\partial y_q}{\partial \alpha}估计为11

PACT工作的理解

  作者使用带参数的截断式RELU,即PACT来模拟RELU,来看其作用(在作用于某一层时,我们只需看这一层的α\alpha的效果,其他的参数,如其它层的α\alpha、所有的参数weight和bias,BacthNorm参数(β,γ)(\beta,\gamma)都保持不变)

【论文阅读笔记】PACT:PArameterized Clipping Activation for Quantized Neural Networks

  可以发现,除了第一层和最后一层,其它层导致的交叉熵损失函数变化都是随着α\alpha的增大而降低,这表示着:若没有应用量化方案时,RELU是一个好的**函数。但也可以发现,在全精度版本中,并不是所有层都是喜欢“较大的上界”的(比如上面的act0、act6)

  在量化时,可以发现,所有的层都喜欢一个较低的α\alpha,这意味着无上界的 RELU 在量化过程不太合适
【论文阅读笔记】PACT:PArameterized Clipping Activation for Quantized Neural Networks
  我们也可以发现,不同层的最优上界α\alpha都不同,所以这激励着我们去学习上界α\alpha

  但可以从上图看出,在activation上应用量化时,α\alpha调整的振荡幅度较大,这激励着适用正则化方案使其加速收敛:
【论文阅读笔记】PACT:PArameterized Clipping Activation for Quantized Neural Networks
PACT额外参数的设定

  该方案多了两种参数:每层的上界α\alpha,以及正则化参数λ\lambda

  作者将每层的α\alpha都初始化为一个较大的数(让其减小收敛),每层的正则化参数都使用同一个超参数λ\lambda

  在应用方案时,和很多其他CNN量化方案一样,第一层和最后一层不进行量化,因为量化这两层会造成很大的精确度损失。这两层,一个是基础、低级特征提取,一个是直接影响预测

实验结果

  以下实验全部是重头开始训练的
【论文阅读笔记】PACT:PArameterized Clipping Activation for Quantized Neural Networks

PACT与其他几个量化方法在AlexNet、ResNet18、ResNet50上的对比:
【论文阅读笔记】PACT:PArameterized Clipping Activation for Quantized Neural Networks
DoReFa与PACT的对比:
【论文阅读笔记】PACT:PArameterized Clipping Activation for Quantized Neural Networks

相关文章:

  • 2021-08-11
  • 2021-10-18
  • 2021-10-15
  • 2021-08-28
  • 2021-07-09
  • 2021-08-05
  • 2021-05-01
  • 2021-04-25
猜你喜欢
  • 2021-06-15
  • 2021-11-21
  • 2021-05-30
  • 2022-01-23
  • 2022-12-23
  • 2021-07-16
  • 2021-06-14
相关资源
相似解决方案