©作者 | 刘泽春
单位 | Meta
研究方向 | 神经网络压缩与加速
今天来分享一个冷知识:
量化网络的反向求导拟合方法
。详细推导可以在我们今年的 CVPR 论文中找到:
论文标题:
Nonuniform-to-Uniform Quantization: Towards Accurate Quantization via Generalized Straight-Through Estimation
https://arxiv.org/pdf/2111.14826.pdf
https://github.com/liuzechun/Nonuniform-to-Uniform-Quantization
Straight-through estimator(STE)是 quantization 中常见的求导方式。原因是 quantization 是一个离散的方程,无法计算它的导数,所以 STE 就简单粗暴地直接把输出的导数作为了对输入的导数:
这个求导方式足够简单,效果也非常好,以至于它统治 quantization 领域很多年。我们今天就来深度理解一下这个 STE 求导背后的原理,看似简单的 STE 其实包含了概率统计的原理。为什么这么说呢,我们就从二值 quantization 切入。
如图 2 所示,二值 quantization,把实数值量化成只用 {-1, 1} 两个值表示。通常二值化函数有两种量化模式:deterministic quantization(确定量化)和 stochastic quantization(随机量化)
Eq(1) 确定量化就是当实数值超过某个阈值(比如 0)时量化成 1,不到阈值时量化成 -1。
Eq(2) 随机量化就是在区间内(比如 [-1,1])以到区间两端的距离为概率,量化成 1 或者 -1。
这是正向传播过程,计算导数的时候,我们会发现这两种方式的导数其实变成了一样的。
确定量化用的是 STE,即在 [-1,1] 区间内,是一个直通函数:
而随机量化的导数则是把随机量化的概率期望作为反向传播时候的求导对象:
然后我们发现,这两者其实是是一样的。那么我们也就理解了 STE 为什么能行得通,
因为 STE 本质上就是把概率量化的平均值作为确定量化的反向求导函数。
我们在 N2UQ 论文中发现当我们把二值量化拓展到更高比特量化的时候,这个特性就可以帮我们推导出一些更 general 的 STE 方法。我们一直在思考的一个问题是,为什么 quantization 函数有那么多 levels,却只用一个 STE 显得不是很合理, 如果把这些 level 分别对应一个 STE 会发生什么呢?
在 N2UQ 中我们就把量化函数看做了多段二值化函数的总和,从而,每一个二值化函数都可以用对应的概率量化的平均值计算确定量化反向求导的函数。
通过这样一个非常符合直觉和数学推导的改进,我们可以轻松实现量化区间单独可学的量化方程,并且保证输出依旧是 uniform quantization(均匀量化),从而可以享有均匀量化的硬件友好性。这种更灵活的量化方式带来了更高的量化精度,(目前应该还是 state-of-the-art)。
如何才能让更多的优质内容以更短路径到达读者群体,缩短读者寻找优质内容的成本呢?答案就是:你不认识的人。
总有一些你不认识的人,知道你想知道的东西。PaperWeekly 或许可以成为一座桥梁,促使不同背景、不同方向的学者和学术灵感相互碰撞,迸发出更多的可能性。
PaperWeekly 鼓励高校实验室或个人,在我们的平台上分享各类优质内容,可以是最新论文解读,也可以是学术热点剖析、科研心得或竞赛经验讲解等。我们的目的只有一个,让知识真正流动起来。
📝 稿件基本要求:
• 文章确系个人原创作品,未曾在公开渠道发表,如为其他平台已发表或待发表的文章,请明确标注
• 稿件建议以 markdown 格式撰写,文中配图以附件形式发送,要求图片清晰,无版权问题
• PaperWeekly 尊重原作者署名权,并将为每篇被采纳的原创首发稿件,提供业内具有竞争力稿酬,具体依据文章阅读量和文章质量阶梯制结算
📬 投稿通道:
• 投稿邮箱:hr@paperweekly.site
• 来稿请备注即时联系方式(微信),以便我们在稿件选用的第一时间联系作者
• 您也可以直接添加小编微信(pwbot02)快速投稿,备注:姓名-投稿
△长按添加PaperWeekly小编
🔍
现在,在「知乎」也能找到我们了
进入知乎首页搜索「PaperWeekly」