FOCUSED QUANTIZATION FOR SPARSE CNNS

论文地址:https://arxiv.org/abs/1903.03046
代码地址:https://github.com/deep-fry/mayo.
作者针对稀疏CNNs提出了聚焦量化(focused quantization):基于二次幂的量化策略,利用了经过细粒度剪枝后的权重。该方法能够发现不同稀疏度层(经过剪枝)中的最有效的权值表示,并且量化后的的乘法被移位操作代替,实现了高效推理。
在ResNet50中,实现了18.08倍的压缩比(CR),top5精度损失0.24%优于现有的压缩方法。

细粒度剪枝是在最细粒度(单个权重)上将权重设为0,实现压缩;权重的移位量化是将权重量化为0或2的次幂,即 { 0 , ± 1 , ± 2 , . . . } \{0,\pm1,\pm2,...\} {0,±1,±2,...},使得卷积中的乘法变为更简单的移位操作。但是,细粒度剪枝常常与量化冲突,如图1,在剪枝后的稀疏CNNs的某些层,对其进行移位量化,效果却很不理想:在权值出现概率高的区域,量化的bit却很少,即有太多的权重量化到同一个值,而在权值出现概率高的区域,量化的bit却很多。这就造成了量化的bit数的严重浪费,没有用在该用的地方。
在这里插入图片描述
为了解决这个问题,作者提出了聚焦量化:将移位量化和重中心量化混合使用。重中心量化使用混合高斯分布来寻找稀疏层中权重分布最集中的概率质量,并将其量化为2的次幂值,具体过程如图2。
在这里插入图片描述

Method

shift quantization

移位量化即将浮点数量化为2的次幂或0。(k+2)-bit的移位量化的值有:
在这里插入图片描述
其中, s = { − 1 , 0 , 1 } s=\{-1,0,1\} s={1,0,1},即符号值, e e e [ 0 , 2 k − 1 ] [0,2^k-1] [0,2k1]的有界整数, b b b为偏差。 θ ^ = Q n , b s h i f t [ θ ] \hat{\theta}=Q^{shift}_{n,b}[\theta] θ^=Qn,bshift[θ]表示n-bit的带有偏差b的权值 θ \theta θ通过移位量化到最接近的值 θ ^ \hat{\theta} θ^。简单来说,就是确定了所有的量化值,然后将权值量化为最近的量化值。

Recentralized Quantization

重中心量化函数 Q [ θ ] Q[\theta] Q[θ]可以将量化值集中在权重分布概率高的区域,并且产生更少的舍入误差。假设 θ ∈ θ \theta\in\bm{\theta} θθ是某个卷积层的权重, Q [ θ ] Q[\theta] Q[θ]定义为:
在这里插入图片描述
其中, z θ ∈ { 0 , 1 } z_{\theta}\in\{0,1\} zθ{0,1},表示 θ \theta θ是否修剪(修剪的权重设为0); c ∈ C c\in C cC表示FQ作用的位置,都由c处的均值 μ c \mu_c μc和标准差 δ c \delta_c δc决定;常数 m θ ∈ C m_{\theta}\in C mθC用于量化 θ \theta θ δ c , m θ ∈ { 0 , 1 } \delta_{c,m_{\theta}}\in\{0,1\} δc,mθ{0,1},当 c = m θ c=m_{\theta} c=mθ时为1,否则为0; Q c r e c [ θ ] Q^{rec}_c[\theta] Qcrec[θ]用移位量化局部量化c。而后作者又引入一个可学习的放缩因子 α \alpha α,初始化为1。
通过调整每个c的 μ c , δ c \mu_c,\delta_c μc,δc,找到合适的权重,使得量化后的权重分布接近原始的分布。

Optimizing Recentralized Quantization Q [ θ ] Q[\theta] Q[θ]

对于 μ c , δ c \mu_c,\delta_c μc,δc,可以进行优化。首先,找到高概率区域(图2(1)),然后用移位量化进行局部量化(图2(2)(3))。
通常,权值分布可以近似为混合高斯分布,因此用混合高斯分布模型 q ϕ m i x ( θ ) q^{mix}_{\phi}(\theta) qϕmix(θ)来近似原始分布 p ( θ ∣ D ) p(\theta|D) p(θD)进行优化:
在这里插入图片描述
其中, f ( θ ∣ μ c , δ c ) f(\theta|\mu_c,\delta_c) f(θμc,δc)是高斯分布 N ( μ c , δ c ) N(\mu_c,\delta_c) N(μc,δc)的概率密度函数,非负数 λ c \lambda_c λc表示第c个的混合权重,且 ∑ c ∈ C λ c = 1 \sum_{c\in C}\lambda_c=1 cCλc=1
对于给定的 θ ∼ p ( θ ∣ D ) \theta \thicksim p(\theta|D) θp(θD),因为 ϕ \phi ϕ包含了 μ c , δ c , λ c \mu_c,\delta_c,\lambda_c μc,δc,λc,因此只需求 q ϕ m i x ( θ ) q^{mix}_{\phi}(\theta) qϕmix(θ)的最大值——这就是所谓的最大似然估计(MLE),可以用EM算法高效求解。
实际上,使用两个高斯分量 C = { − , + } C=\{-,+\} C={,+}来识别权值分布中的高概率区域已经足够(如图2,正负都看作是高斯分布)。为了让EM算法快速收敛,用层的权值的均值和标准差分别初始化 μ − , δ − \mu_-,\delta_- μ,δ μ + , δ + \mu_+,\delta_+ μ+,δ+,同时 λ − = λ + = 1 2 \lambda_-=\lambda_+=\frac{1}{2} λ=λ+=21;然后混合模型会为每个权重 θ \theta θ生成相应的 m θ m_{\theta} mθ m θ m_{\theta} mθ通过对一个类别的分布进行抽样来评估每个权重,其中 c = m θ c=m_{\theta} c=mθ的概率 p ( c = m θ ) = λ c f ( θ ∣ μ c , δ c ) q ϕ m i x ( θ ) p(c=m_\theta)=\frac{\lambda_cf(\theta|\mu_c,\delta_c)}{q^{mix}_{\phi}(\theta)} p(c=mθ)=qϕmix(θ)λcf(θμc,δc)
最后,将b的值设置为2的次幂值,确保 q n , b s h i f t [ ⋅ ] q^{shift}_{n,b}[\cdot] qn,bshift[]最多有 1 2 n + 1 \frac{1}{2^n+1} 2n+11的比例的数溢出,然后将溢出值clip到最大值。

Choosing the Appropriate Quantization

若是两个高斯分布之间有很高的重叠率,如图3,则直接使用移位量化就能得到很好的结果。
在这里插入图片描述
为了度量两个分布直接的相似性,从而决定使用移位量化或重中心量化,作者建议先对混合分布标准化,再使用2-Wasserstein度量作为决策准则,称为Wasserstein separation:
在这里插入图片描述
至此,FQ可以自适应地选择量化方法:当 W ( c 1 , c 2 ) < w s e p W(c_1,c_2)<w_{sep} W(c1,c2)<wsep时,使用重中心量化;否则使用移位量化。在实验中, w s e p = 2.0 w_{sep}=2.0 wsep=2.0

Experiments

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

  • 2
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
资源包主要包含以下内容: ASP项目源码:每个资源包中都包含完整的ASP项目源码,这些源码采用了经典的ASP技术开发,结构清晰、注释详细,帮助用户轻松理解整个项目的逻辑和实现方式。通过这些源码,用户可以学习到ASP的基本语法、服务器端脚本编写方法、数据库操作、用户权限管理等关键技术。 数据库设计文件:为了方便用户更好地理解系统的后台逻辑,每个项目中都附带了完整的数据库设计文件。这些文件通常包括数据库结构图、数据表设计文档,以及示例数据SQL脚本。用户可以通过这些文件快速搭建项目所需的数据库环境,并了解各个数据表之间的关系和作用。 详细的开发文档:每个资源包都附有详细的开发文档,文档内容包括项目背景介绍、功能模块说明、系统流程图、用户界面设计以及关键代码解析等。这些文档为用户提供了深入的学习材料,使得即便是从零开始的开发者也能逐步掌握项目开发的全过程。 项目演示与使用指南:为帮助用户更好地理解和使用这些ASP项目,每个资源包中都包含项目的演示文件和使用指南。演示文件通常以视频或图文形式展示项目的主要功能和操作流程,使用指南则详细说明了如何配置开发环境、部署项目以及常见问题的解决方法。 毕业设计参考:对于正在准备毕业设计的学生来说,这些资源包是绝佳的参考材料。每个项目不仅功能完善、结构清晰,还符合常见的毕业设计要求和标准。通过这些项目,学生可以学习到如何从零开始构建一个完整的Web系统,并积累丰富的项目经验。
资源包主要包含以下内容: ASP项目源码:每个资源包中都包含完整的ASP项目源码,这些源码采用了经典的ASP技术开发,结构清晰、注释详细,帮助用户轻松理解整个项目的逻辑和实现方式。通过这些源码,用户可以学习到ASP的基本语法、服务器端脚本编写方法、数据库操作、用户权限管理等关键技术。 数据库设计文件:为了方便用户更好地理解系统的后台逻辑,每个项目中都附带了完整的数据库设计文件。这些文件通常包括数据库结构图、数据表设计文档,以及示例数据SQL脚本。用户可以通过这些文件快速搭建项目所需的数据库环境,并了解各个数据表之间的关系和作用。 详细的开发文档:每个资源包都附有详细的开发文档,文档内容包括项目背景介绍、功能模块说明、系统流程图、用户界面设计以及关键代码解析等。这些文档为用户提供了深入的学习材料,使得即便是从零开始的开发者也能逐步掌握项目开发的全过程。 项目演示与使用指南:为帮助用户更好地理解和使用这些ASP项目,每个资源包中都包含项目的演示文件和使用指南。演示文件通常以视频或图文形式展示项目的主要功能和操作流程,使用指南则详细说明了如何配置开发环境、部署项目以及常见问题的解决方法。 毕业设计参考:对于正在准备毕业设计的学生来说,这些资源包是绝佳的参考材料。每个项目不仅功能完善、结构清晰,还符合常见的毕业设计要求和标准。通过这些项目,学生可以学习到如何从零开始构建一个完整的Web系统,并积累丰富的项目经验。
资源包主要包含以下内容: ASP项目源码:每个资源包中都包含完整的ASP项目源码,这些源码采用了经典的ASP技术开发,结构清晰、注释详细,帮助用户轻松理解整个项目的逻辑和实现方式。通过这些源码,用户可以学习到ASP的基本语法、服务器端脚本编写方法、数据库操作、用户权限管理等关键技术。 数据库设计文件:为了方便用户更好地理解系统的后台逻辑,每个项目中都附带了完整的数据库设计文件。这些文件通常包括数据库结构图、数据表设计文档,以及示例数据SQL脚本。用户可以通过这些文件快速搭建项目所需的数据库环境,并了解各个数据表之间的关系和作用。 详细的开发文档:每个资源包都附有详细的开发文档,文档内容包括项目背景介绍、功能模块说明、系统流程图、用户界面设计以及关键代码解析等。这些文档为用户提供了深入的学习材料,使得即便是从零开始的开发者也能逐步掌握项目开发的全过程。 项目演示与使用指南:为帮助用户更好地理解和使用这些ASP项目,每个资源包中都包含项目的演示文件和使用指南。演示文件通常以视频或图文形式展示项目的主要功能和操作流程,使用指南则详细说明了如何配置开发环境、部署项目以及常见问题的解决方法。 毕业设计参考:对于正在准备毕业设计的学生来说,这些资源包是绝佳的参考材料。每个项目不仅功能完善、结构清晰,还符合常见的毕业设计要求和标准。通过这些项目,学生可以学习到如何从零开始构建一个完整的Web系统,并积累丰富的项目经验。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值