Paper Reading||Improving Low-Precision Network Quantization via Bin Regularization

论文(ICCV 2021):https://openaccess.thecvf.com/content/ICCV2021/papers/Han_Improving_Low-Precision_Network_Quantization_via_Bin_Regularization_ICCV_2021_paper.pdf
暂无源码

1 Motivation

  1. 当进行较低比特量化时,PTQ 方法往往会带来显著的性能下降。
  2. 以前的 QAT 方法试图最小化量化误差,或模拟全精度网络的 Activation 分布。然而,这些方法的最终性能仍然不令人满意。

  Motivation 似乎不是那么至关重要,没有对 Motivation 做进一步分析和展开。作者提出了一种新的正则化算法来改进低精度网络量化,假设如果每个Quantization Bin 中的所有浮点值都足够接近目标量化电平值,则量化误差将接近零。当将全精度网络量化为 n n n-bit 网络时,每个卷积层的所有浮点元素将被离散化。Fig 1 (a) 展示了 Bin Regularization 的基本思想。

在这里插入图片描述
  Bin Regularization 可以被视为一种细粒度约束,以鼓励 Quantization Bin 内的分布尽可能接近 Dirac delta Distribution(单位脉冲函数)。
  如 Fig 1 (b) 所示,不同的正则化方法对 LSQ 的性能产生不同的影响。作者提出的方法能达到更高的性能。

2 Methodology

2.1 Quantization Baseline

  作者将 LSQ 算法作为自己实验的 Baseline。设要量化的数据为 v v v, LSQ 的量化过程可以定义为:

在这里插入图片描述
  同时反量化的结果可以由整型值 v ~ \tilde{v} v~ 和量化步长 s s s 乘积得来:

在这里插入图片描述
  其中 c l i p ( x ; n , p ) = m i n ( m a x ( x , n ) , p ) clip(x; n, p)=min(max(x, n), p) clip(x;n,p)=min(max(x,n),p),将所有超出表征范围的值钳制住。 ⌊ ⋅ ⌉ \lfloor \cdot \rceil 是四舍五入函数。设要量化到 b b b-bits,如果要量化的数据是 Weight,则为有符号量化, n = − 2 b − 1 n=-2^{b-1} n=2b1 p = 2 b − 1 − 1 p=2^{b-1}-1 p=2b11;如果要量化的数据是 Activation,则为无符号量化, n = 0 n=0 n=0 p = 2 b − 1 p=2^{b}-1 p=2b1。量化步长 s s s 初始化为 2 ⟨ ∣ v ∣ ⟩ p \frac{2\langle|v|\rangle}{\sqrt{p}} p 2v ⟨ v ⟩ \langle v \rangle v 计算初始 v v v 的均值。
  在反向传播阶段,由于 ⌊ ⋅ ⌉ \lfloor \cdot \rceil 是不可导函数,这里使用直通估计器来设定梯度:

在这里插入图片描述
在这里插入图片描述
  为了快速收敛, s s s 会与 g g g 相乘, g = 1 N ⋅ p g=\frac{1}{\sqrt{N \cdot p}} g=Np 1 ,以放缓 s s s 的梯度更新步伐, N N N 为 Weight 的个数或 Activation 的个数。

2.2 Bin Regularization

  在量化时,原数据会按照区间划分为 2 b 2^{b} 2b 组 Quantization Bins,每个 Bin 内的数据会被量化为一个对应的离散值。如果每个 Bin 内的全精度的原值刚好就是那个对应得离散值的话,量化误差就可以为0。从数据分布来看,作者假设,一个好的量化器会激励每个 Quantization Bin 内的值分布尽量成为一个高斯分布,而这个高斯分布的 Mean 会逼近对应的离散值、 Variance 会逼近 0——分布会逼近单位脉冲函数。

  为了达到上述效果,作者设定了两个约束:

  • 激励每个 Bin 内的数据的平均值逼近对应的离散值。
  • 激励每个 Bin 内的数据的方差逼近0。

  那么 Bin Regularization 就可以表示成:

在这里插入图片描述
  其中 v i v_{i} vi (个人觉得应该加粗)为落入第 i i i-th Bin 的数据。 L m s e \mathcal{L}_{mse} Lmse 计算均方误差, L v a r \mathcal{L}_{var} Lvar 计算方差:

在这里插入图片描述
  其中 V V_{} V i i i-th Bin 内的数据个数, v a r ( ⋅ ) var(\cdot) var() 计算方差。

2.3 Optimization Strategy

  直观地说,总的目标可以设为 Cross Entropy Loss 和 Bin Regularization Loss 二者的线性组合,然后再做最小化:

在这里插入图片描述
  其中 λ \lambda λ 为超参数,调节惩罚比例。由于 s s s 和 量化后的数据 v ^ \hat{v} v^ 会同时更新,且 Bin 的划分范围受 s s s 的影响,那么当 s s s 不稳定时,正则化 Bin 内的分布就容易导致错误的优化方向和性能下降。故作者不同时优化 L B R \mathcal{L}_{BR} LBR L C E \mathcal{L}_{CE} LCE ,而是分成两阶段来 Fine-tune 进行。在前几个 Epochs 先更新 L C E \mathcal{L}_{CE} LCE ,也即先更新 s s s;之后再进入 Bin Regularization 项,来联合优化。这种两阶段优化策略有利于量化网络的良好收敛性和性能。

3 Experiments

  实验围绕 ImageNet 分类任务展开,关注多个流行的轻量级网络架构上更具挑战性的低精度模型量化问题。作者将 LSQ 作为实验的 Baseline 方法。

3.1 Experimental Setting

  • Dataset:ImageNet Classification 数据集。
  • Networks:ResNet18(Standard V1 Achitecture)、MobileNetV2、MobileNetV3-Small。
  • Implementation Details:对于 ResNet18 和MobileNetV2,作者从头开始训练它们的全精度模型,初始学习率为0.1和重量衰减为1e-4。对于MobileNetV3,作者使用预先训练的全精度网络作为后续 Low-bit 网络训练的初始化。对于所有三种类型的网络,作者直接从相应的全精度模型训练每个低精度模型,不需要 Warmup。初始学习速率设置为0.01并以余弦策略衰减。重量衰减参数设置为1e-4、5e-5、2.5e-5,分别适用于 4-bit、3-bit 和 2-bit 网络。作者对每个 Low-bit 网络进行训练,总Epochs 为90,动量数为0.9。所有的实验都是在 Pytorch 上进行的,用到一个 Nvidia V100 GPU。对于低精度 MobileNetV2 的训练,在 2-bit 、3-bit、4-bit 量化时,LSQ Baseline 分别需要90、90、90小时,作者的方法分别需要97、111、135小时。

3.2 Comparisons to State-of-the-Art Quantization Methods

  与 SOTA 方法对比如 Table 1、2、3 所示。

在这里插入图片描述

3.3 Comparisons to Different Weight Regularization Methods

  如 Table 4、5 所示。

在这里插入图片描述

3.4 Ablation Study

Optimization Strategy

  作者测试了不同的网络量化优化策略:

  • S1:一开始就联合更新量化步长和 Bin Regularization。
  • S2:用几个 Epoches 来更新量化步长(在作者的实验中为30个 Epochs),然后引入 Bin Regularization。
  • S3:交替单独进行量化步长的更新或单独进行 Bin Regularization。

  最后结果如 Table 6 所示。

在这里插入图片描述

Parameter Analysis

  对于超参数 λ \lambda λ,作者也进行了一定的调优,如 Table 7 所示。最后选择 λ = 0.5 \lambda=0.5 λ=0.5

在这里插入图片描述

3.5 Analysis of Quantization Error

  虽然作者的方法没有显式地优化模型整体的量化误差,但在正则化每个 Bin 后量化误差仍然有效下降。Table 8 展示了 作者方法和均方差量化误差(MSE-QE)之间的关系。

在这里插入图片描述

3.6 Visualization of Bin Distribution

  可视化图如 Fig 2、3、4 所示。

在这里插入图片描述
在这里插入图片描述

3.7 Training Convergence

  如 Fig 5 所示。

在这里插入图片描述

3.8 Hardware-Friendly Implementation

  现有的大多数量化方法采用了一些松弛条件,以保持量化网络的高准确度(如第一层和最后一层均不采取量化,或均量化到 8-bit)。作者按照业界的一些规范,再以 TQT 作为 Baseline,在其基础上做实验。不仅使用相同的低位宽度对第一层和最后一层进行量化,还对 Element-wise 加法模块的输入和输出进行量化,同时将 Bias 量化为 8-bit,在训练时就将 BN 层合并到前一卷积层中去。实验结果如 Table 9 所示。

在这里插入图片描述

个人思考

  • 该论文的创新也很纯粹,就是定义了一个正则化项,这个正则化项能让量化电平附近(或者是量化仓位,即 Quantization Bin 内)的值往量化电平上靠,以最小化正则化项。这个创新 emmm 个人觉得本质上应该叫 Trick。没有最小化全局的量化误差,但是最小化 Bin 内的量化误差。
  • 个人觉得 Motivation 不是那么充分,没有详细展开讨论。比如其他用于量化的正则化方法为什么不好?
  • 作者做的实验还是很充分的,创新虽然简易,但是也有说服力。观察实验还可以发现,越低比特,做 Bin Regularization 的效果越明显。
### 回答1: 提升单目深度估计方法来改进海洋透视。 海洋透视是指由于海洋介质的光学特性,人眼在水下观察物体时出现的模糊和失真现象。为了改善海洋透视,可以利用单目深度估计方法。 单目深度估计是借助计算机视觉技术来估计图像中每个像素点与相机的距离。在传统的单目深度估计方法中,主要依赖于图像中的几何和纹理信息来推断深度。然而,在海洋环境中,由于光线的折射和散射,图像中的几何和纹理信息丧失较多,导致传统方法的准确性下降。 为了克服这个问题,可以通过改进单目深度估计方法来提高海洋透视的效果。一种方法是利用深度学习技术,通过训练神经网络来学习从输入图像中预测深度的映射关系。可以使用已标注的水下图像数据集进行监督学习,使网络能够学习到更准确的深度估计模型。另外,还可以对网络进行迁移学习,使用在陆地环境下预训练的模型,在海洋环境中进行微调,以适应海洋透视的特殊情况。 另一个改进单目深度估计方法的途径是改进特征提取和匹配算法。可以通过使用更好的特征描述子和特征匹配算法,提高单目深度估计的稳定性和准确性。例如,可以使用基于学习的描述子,如深度卷积神经网络提取图像特征,再通过优化的匹配算法实现更准确的深度估计。 总之,通过利用深度学习和改进特征提取与匹配算法,可以显著提高单目深度估计方法在海洋透视上的效果。这将有助于提高水下图像的质量和可视性,在海洋环境下进行相关应用和研究。 ### 回答2: 提升单目深度估计方法以改善水下透视。水下透视是指我们在水下看到的物体变得模糊和失真的现象。为了解决这个问题,研究人员一直在探索使用单目深度估计方法来改善水下透视。 单目深度估计是通过使用单个摄像机来估计图像中物体的距离和深度。在水下,由于水的折射效应,光线会发生折射,导致图像失真。因此,传统的单目深度估计方法往往无法准确估计水下的物体距离和深度。 为了解决这个问题,研究人员提出了一些改进的单目深度估计方法。这些方法包括使用水下场景中的先验知识和模型,从而更好地估计水下物体的深度。例如,可以通过水下传感器捕获的信息来构建水下场景模型,并在深度估计过程中结合使用。此外,还可以利用水下图像的颜色和纹理信息,通过神经网络和机器学习方法进行深度估计。 这些改进的单目深度估计方法的应用可以在水下摄影、水下导航和水下探测等领域中发挥重要作用。例如,在水下摄影中,利用改进的深度估计方法可以提高图像的清晰度和质量,使得拍摄的照片更加真实和可视化。在水下导航和探测中,使用改进的单目深度估计方法可以提供更准确的水下环境信息,从而帮助人们更好地识别、定位和探测水下物体。 总之,改进的单目深度估计方法可以有效地改善水下透视问题,并在水下领域的各个应用中发挥重要作用。随着技术的不断发展,相信这些方法将进一步提升水下图像和数据的质量和可用性。 ### 回答3: 提升海洋透视图像的质量可以通过单目深度估计方法来实现。海洋透视图像通常受到水下湍流、波浪和光线散射等因素的影响,导致图像质量下降。而单目深度估计方法可以通过分析图像中的视差信息来估计场景中的深度信息。 单目深度估计方法有多种实现方式,其中一种常用的方法是基于卷积神经网络(CNN)。该方法通过训练一个深度估计网络,从输入图像中直接预测每个像素的深度信息。训练过程使用带有深度标签的真实图像和对应的深度地图进行,可以通过最小化预测深度与真实深度之间的差异来优化网络参数。 通过使用单目深度估计方法,可以从原始的海洋透视图像中获取更准确和清晰的深度信息。这将有助于改善海洋透视图像的视觉效果和质量。准确的深度信息可以用于场景还原、物体分割和虚实混合等应用中。此外,通过深度估计,还可以对图像进行后续处理,如去除湍流和波浪的影响,进一步提高视觉效果。 总而言之,使用单目深度估计方法可以有效地改善海洋透视图像的质量。这一方法通过分析图像中的视差信息来预测深度信息,从而提供更准确和清晰的深度信息。这将有助于改善海洋透视图像的视觉效果和质量,并为进一步的图像处理提供基础。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值