IT数码 购物 网址 头条 软件 日历 阅读 图书馆
TxT小说阅读器
↓语音阅读,小说下载,古典文学↓
图片批量下载器
↓批量下载图片,美女图库↓
图片自动播放器
↓图片自动播放器↓
一键清除垃圾
↓轻轻一点,清除系统垃圾↓
开发: C++知识库 Java知识库 JavaScript Python PHP知识库 人工智能 区块链 大数据 移动开发 嵌入式 开发工具 数据结构与算法 开发测试 游戏开发 网络协议 系统运维
教程: HTML教程 CSS教程 JavaScript教程 Go语言教程 JQuery教程 VUE教程 VUE3教程 Bootstrap教程 SQL数据库教程 C语言教程 C++教程 Java教程 Python教程 Python3教程 C#教程
数码: 电脑 笔记本 显卡 显示器 固态硬盘 硬盘 耳机 手机 iphone vivo oppo 小米 华为 单反 装机 图拉丁
 
   -> 人工智能 -> Paper Reading||Improving Low-Precision Network Quantization via Bin Regularization -> 正文阅读

[人工智能]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=?2b?1 p = 2 b ? 1 ? 1 p=2^{b-1}-1 p=2b?1?1;如果要量化的数据是 Activation,则为无符号量化, n = 0 n=0 n=0 p = 2 b ? 1 p=2^{b}-1 p=2b?1。量化步长 s s s 初始化为 2 ? ∣ v ∣ ? p \frac{2\langle|v|\rangle}{\sqrt{p}} p ?2?v?? ? 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=N?p ?1? ,以放缓 s s s 的梯度更新步伐, N N N 为 Weight 的个数或 Activation 的个数。

2.2 Bin Regulation

? 在量化时,原数据会按照区间划分为 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 的效果越明显。
  人工智能 最新文章
2022吴恩达机器学习课程——第二课(神经网
第十五章 规则学习
FixMatch: Simplifying Semi-Supervised Le
数据挖掘Java——Kmeans算法的实现
大脑皮层的分割方法
【翻译】GPT-3是如何工作的
论文笔记:TEACHTEXT: CrossModal Generaliz
python从零学(六)
详解Python 3.x 导入(import)
【答读者问27】backtrader不支持最新版本的
上一篇文章      下一篇文章      查看所有文章
加:2021-12-05 12:02:52  更:2021-12-05 12:04:03 
 
开发: C++知识库 Java知识库 JavaScript Python PHP知识库 人工智能 区块链 大数据 移动开发 嵌入式 开发工具 数据结构与算法 开发测试 游戏开发 网络协议 系统运维
教程: HTML教程 CSS教程 JavaScript教程 Go语言教程 JQuery教程 VUE教程 VUE3教程 Bootstrap教程 SQL数据库教程 C语言教程 C++教程 Java教程 Python教程 Python3教程 C#教程
数码: 电脑 笔记本 显卡 显示器 固态硬盘 硬盘 耳机 手机 iphone vivo oppo 小米 华为 单反 装机 图拉丁

360图书馆 购物 三丰科技 阅读网 日历 万年历 2024年11日历 -2024/11/27 3:43:08-

图片自动播放器
↓图片自动播放器↓
TxT小说阅读器
↓语音阅读,小说下载,古典文学↓
一键清除垃圾
↓轻轻一点,清除系统垃圾↓
图片批量下载器
↓批量下载图片,美女图库↓
  网站联系: qq:121756557 email:121756557@qq.com  IT数码