Paper Reading||Improving low-bit quantization through learnable offsets and better initialization

论文(ICLR 2020):https://arxiv.org/abs/2004.09576
暂无源码

Motivation

  1. LSQ 只适用于激活函数为 ReLU 的模型,即只适用于 Activation 为非负分布的模型,不适用于激活函数为 Swish\Leaky-ReLU 等的模型。
  2. 基于梯度的可学习量化方案其实不太稳定,需要更完美的超参数。

  对于 Motivation 1,事实是 LSQ 只考虑 Activation 为非负分布,即所有的值均大于等于 0 的,那么理论上就不适用于 Swish\Leaky-ReLU 等非对称分布、存在负值的激活函数。在公式 (1)中, LSQ 设定 Activation 中 n = 0 , p = 2 b − 1 n=0, p=2^b-1 n=0,p=2b1,这会将 Activation 中的负值全部 c l a m p clamp clamp 到 0 。

在这里插入图片描述

  而在实验过程中,作者发现量化的有关参数的初始化还会对模型最终的收敛性能产生影响,引申出 Motivation 2。

Method

Proposal:Learnable asymmetric quantization

  作者提出了一种通用的非对称激活量化方案,在训练过程中不仅学习量化尺度参数 s s s ,还学习量化偏移 (零点) 参数 β \beta β 来处理非对称分布的Activation,如公式 (2) 所示。

在这里插入图片描述

  式中 n n n 为下界, p p p 为上界, c l a m p ( ) clamp() clamp() 为钳制函数, ⌊   ⌉ \lfloor~\rceil   为四舍五入 (近似取整) 函数。 x ˉ \bar{x} xˉ 是离散化的整数, x ^ \hat{x} x^ 是离散化的小数, s s s β \beta β 均是可学习参数。于是用于更新参数 s s s 的梯度和更新参数 β \beta β 的梯度分别为:

在这里插入图片描述

在这里插入图片描述
  在公式 (3) 和 (4) 中,作者均使用了STE。与对称量化相比,作者方案对Activation 的非对称量化在推理期间是不消耗额外成本的,因为额外的偏移项可以在编译时预计算并合并到 Conv 层的 Bias 中:

在这里插入图片描述

  需要注意的是,作者提出的方案只针对 Activation,而对于 Weight 采用的方案仍和 LSQ 一致,即权重量化器没有量化零点 β \beta β ,默认 Weight 为对称分布的。

  为了进一步做对照试验来验证 LSQ+ 的有效性,作者提出了 如 Table 1 所示的配置。其中 Config 3 和 Config 4 其实就是作者所提出的方案 (关键在于 β \beta β 是 tranable )。


在这里插入图片描述


Initialization of quantization parameters

  作者发现在进行极低比特的量化时,QAT训练后的最终性能对量化参数的初始化高度敏感,特别是在模型有深度可分离卷积的情况下。于是作者进一步定义 s s s β \beta β 的初始化方法。

  • 对于权重量化器来说, s s s 的初始化没有采用 LSQ 的方法,而是改为:

在这里插入图片描述


  • 对于激活量化器来说,以往业界公认的初始化方式为, s s s β \beta β 考虑分布的 min 和 max 值,那么就有边界和对应的 s s s β \beta β 堆导分别为公式 (6) (7) 。但实际考虑分布的 min、max 是不妥当的 (大家公认不考虑离群点) ,于是作者提出通过MSE来进行最优化搜索,即如公式 (8)。而公式 (8) 没有封闭形式的解,因此作者将公式 (3) (4) 嵌入到PyTorch的自动求导过程中,通过梯度下降优化几个 Batch 的数据上来获得 s i n i t , β i n i t {s_{init},β_{init}} sinitβinit

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


Experiment

  所有实验均在ImageNet数据集上进行,都用到了预训练模型。
  Table 2 和 Table 3 展示的是各种 Config 对带有 Swish 激活函数的模型表现。可以看到作者自己的方案 Config 3、4 的表现还是较好的。

在这里插入图片描述


  Table 4 展示的是各种 Config 对仅有ReLU激活函数的模型表现。可以看到作者的表现也是比较好的。


在这里插入图片描述


  接着为了检验量化参数初始化对模型性能的影响,作者将自己的方法和传统的 Min-Max 初始化 (如公式 7 ) 、LSQ 初始化做了比较。Table 5 展示的是在 EfficientNet-B0 上不同初始化方法间的性能。可以看到作者的表现也可以。


在这里插入图片描述


  接着作者讨论了一下 Initialization 的意义。如 Fig 1 所示,可以看到相比于 LSQ ,LSQ+的初始化方案会更接近于最终 tuning 的结果,也就是说这是有利于快速收敛的,之前的实验也证明性能更好一些。


在这里插入图片描述


  最后作者讨论了下设置量化零点为可学习参数的意义。 Fig 2 是作者在 Config 4 下的 W4A4 实验,可以看到每一层的 β \beta β 参数都起到了作用 (大部分 β \beta β 非零),且各个层的 β \beta β 都不同,具有多样性。观察还可以看出大部分 β \beta β 为负值,因为在 Config 4 下需要把 Weight 分布右移。这说明 β \beta β 可学习还是非常合理的。最后作者还补充了 Table 6 来进一步验证 β \beta β 可学习的意义。


在这里插入图片描述


在这里插入图片描述


个人思考

  该论文的创新点也是很纯粹简洁的,就是对 Activation 量化器使用了可学习的量化零点,并制定更合理的初始化。作者做的实验表现都挺好,只是没有给出源码。但本人在复现之后跑了几次 MobileNet 上的实验,发现 MobileNet 上 LSQ+ 的效果比 LSQ还要差,这我没想明白。

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值