HAWQ-V2:基于Hessian迹的混合比特量化策略

本文为 UC Berkeley 大学发表在 NeurIPS 2020 上的混合精度量化论文,是之前 HAWQ 论文的升级版本。

  • 论文题目:HAWQ-V2: Hessian Aware trace-Weighted Quantization of Neural Networks

  • 论文链接:https://papers.nips.cc/paper/2020/file/d77c703536718b95308130ff2e5cf9ee-Paper.pdf

  • 由于本文牵扯到的数学公式与证明较多,感兴趣可以自行阅读原文。这里只做一个大概的分析导读。

摘要

量化是减少神经网络的内存占用和推理时间的有效方法。但是,超低精度量化可能会导致模型精度显着下降。解决此问题的一种有前途的方法是执行混合精度量化,其中更敏感的层保持更高的精度。但是,用于混合精度量化的搜索空间的层数是指数级的。 HAWQ 提出了一个新颖的基于 Hessian 的框架,其目的是通过使用二阶信息来减少这种指数搜索空间。尽管有前途,但这项先前的工作具有三个主要局限性:

  • HAWQ 仅使用基于最高海森特征值的启发式度量作为敏感度的度量,而未考虑其余的海森频谱;
  • HAWQ 的方法仅提供不同层的相对灵敏度,因此需要手动选择混合精度设置
  • HAWQ 没有考虑混合精度激活量化

在这里,本文介绍解决这些缺点的HAWQ-V2,解决对应HAWQ的三个问题,如下:

  • HAWQ-V2 从理论上证明了正确的敏感度度量是平均Hessian迹,而不只是顶部的Hessian特征值
  • HAWQ-V2 实现了一种基于 Pareto 边界的方法,无需任何人工干预即可自动选择不同层的比特精度
  • HAWQ-V2 实现了第一个基于Hessian的混合精度激活量化分析,这对于对象检测非常有益

通过证明,HAWQ-V2在各种任务上均达到了最新水平。尤其是,本文展示了InceptionV3(7.57MB,精度为75:98%),ResNet50(7.99MB,精度为75:92%)和SqueezeNext(1MB,精度为68:68%)的量化结果,所有这些都没有任何手动位选择。此外,本文在Microsoft COCO上提供了对象检测的结果,与最近提出的FQ​​N方法相比,获得了比直接均匀量化高2.6的mAP和比直接均匀量化高1.6的mAP,模型尺寸更小17.9MB。

方法

自动化的位宽选择

混合精度搜索示意图

帕累托边界搜索示意图

Hutchinson快速求解Hessian迹

Hessian迹的公式求解如下所示:

Tr ⁡ ( H ) = Tr ⁡ ( H I ) = Tr ⁡ ( H E [ z z T ] ) = E [ Tr ⁡ ( H z z T ) ] = E [ z T H z ] \operatorname{Tr}(H)=\operatorname{Tr}(H I)=\operatorname{Tr}\left(H \mathbb{E}\left[z z^{T}\right]\right)=\mathbb{E}\left[\operatorname{Tr}\left(H z z^{T}\right)\right]=\mathbb{E}\left[z^{T} H z\right] Tr(H)=Tr(HI)=Tr(HE[zzT])=E[Tr(HzzT)]=E[zTHz]

根据 Hutchinson 算法近似可以得到

Tr ⁡ ( H ) ≈ 1 m ∑ i = 1 m z i T H z i = Tr ⁡ E s t ( H ) \operatorname{Tr}(H) \approx \frac{1}{m} \sum_{i=1}^{m} z_{i}^{T} H z_{i}=\operatorname{Tr}_{E s t}(H) Tr(H)m1i=1mziTHzi=TrEst(H)

Hutchinson快速估计算法

上图展示了当增加用于 Hessian迹 估计的迭代次数时,Hutchinson 算法的收敛图。 可以清楚地看到,随着在512个数据点上增加数据点的数量,迹快速收敛,在该点上计算二次采样的 Hessian。可以看到,进行 50 次 Hutchinson 迭代足以实现低方差的精确逼近。 基于收敛性分析,在ResNet50模型中能够在30分钟内使用4个GPU计算所有平均Hessian迹线,即54个块相对应平均每块33s。 除自动位宽精度选择外,Hutchinson 算法还使 HAWQ-V2 成为一种比以前基于搜索的算法快得多的算法。

敏感度指标分析

Ω = ∑ i = 1 L Ω i = ∑ i = 1 L Tr ⁡ ‾ ( H i ) ⋅ ∥ Q ( W i ) − W i ∥ 2 2 \Omega=\sum_{i=1}^{L} \Omega_{i}=\sum_{i=1}^{L} \overline{\operatorname{Tr}}\left(H_{i}\right) \cdot\left\|Q\left(W_{i}\right)-W_{i}\right\|_{2}^{2} Ω=i=1LΩi=i=1LTr(Hi)Q(Wi)Wi22

敏感度指标分析示意图

基于最小描述长度(MDL)理论,在给定的阈值下,指定一个平坦区域所需的比特数较少,反之,指定一个具有尖锐曲率的区域所需的比特数较多。更通俗的解释,平坦区域的不精确位置所产生的噪声不会被放大,使得它更容易被量化。而尖锐区域则相反,即使是小的舍去误差也会被放大。因此,预计具有较高 Hessian 迹的层(即较大的特征值)对量化更敏感。

激活的混合精度量化

激活的混合精度量化

实验结果

ResNet50 on ImageNet

ResNet50 on ImageNet

Inception-V3 on ImageNet

Inception-V3 on ImageNet

SqueezeNext on ImageNet

SqueezeNext on ImageNet

RetinaNet-ResNet50 on COCO

RetinaNet-ResNet50 On COCO

消融实验

首先,证明为什么选择导致模型扰动最小的位精度设置非常重要,如下表所示,其中消融行模型使用的位精度设置为较大扰动。 可以看到,HAWQ-V2方法模型以较小扰动,在SqueezeNext上实现了1%以上的精度提升。

模型扰动

其次,证明了使用海森矩阵的迹加上权重的 L2 范数作为敏感度度量 Ω = ∑ i = 1 L Ω i = ∑ i = 1 L Tr ⁡ ‾ ( H i ) ⋅ ∥ Q ( W i ) − W i ∥ 2 2 \Omega=\sum_{i=1}^{L} \Omega_{i}=\sum_{i=1}^{L} \overline{\operatorname{Tr}}\left(H_{i}\right) \cdot\left\|Q\left(W_{i}\right)-W_{i}\right\|_{2}^{2} Ω=i=1LΩi=i=1LTr(Hi)Q(Wi)Wi22)的有效性。如下表所示,其中消融行模型仅使用模型参数与量化差值的 L2 敏感度度量。可以看到,HAWQ-V2提出的敏感度度量方法在SqueezeNext上实现了0.85%的精度提升。

[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-7rK2ncLi-1607225224836)(http://image.yigouai.cn/20201124103635.png)]


更多内容关注微信公众号【AI异构】

  • 0
    点赞
  • 7
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值