正在加载图片...
李江昀等:深度神经网络模型压缩综述 ·1233. 权重 聚类索引 32位浮点数 2位无符号整型数 聚类中心 微调过来的聚类中心 209 -0.98 1.48 0.09 2.00 1.96 0.05 -0.14 -1.08 2.12 1.50 1.48 聚类 091 192 0 -1.03 0.00 0.04 乘以 187 0 1.53 1.49 3 -1.00 学习率 -0.97 梯度 -0.03 -0.01 0.03 0.02 0.03 012 0.02 007 04 0.01 0.01 0.02 0.12 0.03 0.01 0.02 0.02 分组 降维 -0.01 0.02 0.04 0.01 0.02 -0.01 0.01 0.04 -0.02 0.04 0.07 -0.02 0.01 -0.02 -0.01 -0.02 0.01 0.01 0.03 图2 通过标量量化与中心体微调实现权重共享[4) Fig.2 Weight sharing by sealar quantization (top)and centroid fine-tuning bottom)(4) 会明显下降 络,分别为二值权重网络(binary-weight-networks)和 3量化 同或网络(XNOR-networks).二值权重网络通过对 滤波器权重进行二值量化节省32倍内存.同或网 量化主要思想是降低权重所需要的比特数来压 络对输入以及滤波器权重均进行二值量化,结果可 缩原始网络,主要包括低精度和重编码两类方法. 以提速58倍,减少内存32倍.Li等]对同或网络 对于卷积神经网络来说,网络模型权重都是单精度 改进,将卷积神经网络网络层输入进行高精度二值 浮点型32位.低精度方法使用更低位数的浮点数 量化,从而实现高精度二值网络计算,同或网络也是 或整型数对其进行训练、测试或存储:重编码方法对 对每个卷积神经网络网络层权值和输入进行二值 原有数据进行重新编码,采用更少的位数对原有数 化,这样整个卷积神经网络计算都是二值化,计算速 据进行表示,实现了模型的压缩. 度快,占内存小.Hwang与Sung[4s]提出基于重训练 低精度:Gupta等〔]基于随机修约的卷积神经 的反向传播优化定点设计.定点网络使用3值权重 网络训练中使用16比特定点表示法,显著降低内存 和3位表示信号,结果与浮点型网络相比精度下降 和浮点运算,同时分类准确率几乎没有受到损失. 很微弱.Hou等6)提出具有对角近似牛顿算法直 Han等人[4]提出对数据冗余精度进行裁剪.原本 接最小化二值化权值损失的海森近似.底层近端步 的32位精度浮点数由“1,8,23”结构构成,根据预 骤有封闭形式解决方案,二阶信息可以从Adam优 训练得到的全精度神经网络模型中的数据分布分别 化器已经计算的二阶矩有效获得.Lee等[an]提出基 对阶码和位数的长度进行适当的减少.实验表明, 于迭代解决L1正则化最小二乘和L2约束最小二乘 对于大部分人物来说,6比特或者8比特的数据已 问题的稀疏编码算法.此算法明显加快稀疏编码速 经足够保证测试的准确率.目前工业界对于8位整 度,并获得比之前更大的稀疏码本.Gudovskiy与 型或者16位半精度浮点数量化技术已经成熟,比如 Rigazio)提出用于无乘法卷积神经网络推理的普 TensorFlow-lite[o]和Nvidia的TensorRT均已经支持 遍低精度结构ShiftCNN.ShiftCNN基于2的幂加权 8位整型数据的网络训练以及存储. 表示,因此只执行移位和加法操作.Meller等[9]提 重编码:Courbariaux等[al-]提出在运行时使用 出适当因子分解可以显著降低量化引起的退化.一 二值化权重和激活二值化神经网络.网络训练时, 个给定网络有许多因子分解,它们在不改变网络功 二值化权重与激活用来计算参数梯度,并在前传过 能情况下改变网络权重.Xu等提出基于强化学 程中用位运算代替算术运算大大降低内存大小 习的动态网络量化框架,由位宽控制器与量化器组 Rastegari等[s]提出两个标准卷积神经网络近似网 成.利用策略梯度训练一个中间体通过位宽控制器李江昀等: 深度神经网络模型压缩综述 图 2 通过标量量化与中心体微调实现权重共享[14] Fig. 2 Weight sharing by scalar quantization (top) and centroid fine鄄tuning (bottom) [14] 会明显下降. 3 量化 量化主要思想是降低权重所需要的比特数来压 缩原始网络,主要包括低精度和重编码两类方法. 对于卷积神经网络来说,网络模型权重都是单精度 浮点型 32 位. 低精度方法使用更低位数的浮点数 或整型数对其进行训练、测试或存储;重编码方法对 原有数据进行重新编码,采用更少的位数对原有数 据进行表示,实现了模型的压缩. 低精度:Gupta 等[39] 基于随机修约的卷积神经 网络训练中使用 16 比特定点表示法,显著降低内存 和浮点运算,同时分类准确率几乎没有受到损失. Han 等人[14]提出对数据冗余精度进行裁剪. 原本 的 32 位精度浮点数由“1,8,23冶 结构构成,根据预 训练得到的全精度神经网络模型中的数据分布分别 对阶码和位数的长度进行适当的减少. 实验表明, 对于大部分人物来说,6 比特或者 8 比特的数据已 经足够保证测试的准确率. 目前工业界对于 8 位整 型或者 16 位半精度浮点数量化技术已经成熟,比如 TensorFlow鄄lite [40]和 Nvidia 的 TensorRT 均已经支持 8 位整型数据的网络训练以及存储. 重编码:Courbariaux 等[41鄄鄄42] 提出在运行时使用 二值化权重和激活二值化神经网络. 网络训练时, 二值化权重与激活用来计算参数梯度,并在前传过 程中用位运算代替算术运算大大降低内存大小. Rastegari 等[43]提出两个标准卷积神经网络近似网 络,分别为二值权重网络(binary鄄weight鄄networks)和 同或网络(XNOR鄄networks). 二值权重网络通过对 滤波器权重进行二值量化节省 32 倍内存. 同或网 络对输入以及滤波器权重均进行二值量化,结果可 以提速 58 倍,减少内存 32 倍. Li 等[44] 对同或网络 改进,将卷积神经网络网络层输入进行高精度二值 量化,从而实现高精度二值网络计算,同或网络也是 对每个卷积神经网络网络层权值和输入进行二值 化,这样整个卷积神经网络计算都是二值化,计算速 度快,占内存小. Hwang 与 Sung [45]提出基于重训练 的反向传播优化定点设计. 定点网络使用 3 值权重 和 3 位表示信号,结果与浮点型网络相比精度下降 很微弱. Hou 等[46] 提出具有对角近似牛顿算法直 接最小化二值化权值损失的海森近似. 底层近端步 骤有封闭形式解决方案,二阶信息可以从 Adam 优 化器已经计算的二阶矩有效获得. Lee 等[47]提出基 于迭代解决 L1 正则化最小二乘和 L2 约束最小二乘 问题的稀疏编码算法. 此算法明显加快稀疏编码速 度,并获得比之前更大的稀疏码本. Gudovskiy 与 Rigazio [48]提出用于无乘法卷积神经网络推理的普 遍低精度结构 ShiftCNN. ShiftCNN 基于 2 的幂加权 表示,因此只执行移位和加法操作. Meller 等[49] 提 出适当因子分解可以显著降低量化引起的退化. 一 个给定网络有许多因子分解,它们在不改变网络功 能情况下改变网络权重. Xu 等[50] 提出基于强化学 习的动态网络量化框架,由位宽控制器与量化器组 成. 利用策略梯度训练一个中间体通过位宽控制器 ·1233·
<<向上翻页向下翻页>>
©2008-现在 cucdc.com 高等教育资讯网 版权所有