对模型进行参数量化的主要目的为减小模型存储体积,解决模型在移动设备的存储问题与计算过程中的数据传输瓶颈问题。参数量化还用来改变模型参数的数据表示方法,通常模型参数类型为浮点型,而有些硬件平台仅支持定点数据类型,需对浮点数进行定点化处理 。
参数量化主要分为两个主要研究方向,一个研究方向是权值共享,即多个网络连接的权重共用一个权值,主要代表性研究工作如下.文献【1】利用k均值聚类算法计算权重的多个聚类中心,将权重量化为距离最近的聚类中心,通过训练微调的方式对
权重进行补偿.文献【2】设 计 了 一 种 新 型 的 网 络 架构hashnet,利用哈希函数随机将网络连接权重分组到哈希(hash bucket),每个哈希桶内的网络连接共享相同的权重参数,该方法与特征哈希类似(feature hashing),将高维数据降到低维空间,该方法可显著减小模型体积,并对输出精度影响较小文献[43]提出一个量化神经网络架构(Q-CNN),基于k 均值聚类算法加速和压缩模型的卷积层和全连接层,通过减小每层输出响应的估计误差可实现更好的量化结果,并提出一种有效的训练方案抑制量化后的多层累积误差 。
参数量化的第二个研究方向是模型权重的低比特表示方法.文献【3】对深 度 卷 积 神 经 网 络 模 型 参数的数据表示方法进行研究,针对浮点数和定点数建立分析模型,探索两种数据表示形式对模型性能的影响以及相应硬件的实现代价.文献【4】开发并测试8-bit近似算法,将32bit的梯度和激活值压缩到8-bit,通过GPU集群测试模型和数据的并行化性能,在保证模型预测精度的条件下,提出的方法取得两倍 的 数 据 传 输 加速.文献【5】基于maxout模型在3个数据集上对浮点型、定点型和动态定点型3种运算方式进行评估,分析计算精度对最终训练误差的影响,实验显示低精度的运算不仅可应用于模型预测,还可用于模型训练过程,但模型参数、激活值和梯度值需根据实际应用条件而采用不同的精度.文献【6】提出一种模型近似框架 ristretto,用于分析模型卷积层和全连接层的权重和输出的数值分辨率,进而将浮点型参数转化为定点型数值,并通过训练过程对定点型模型进行微调,在容许误差为1%的条件下,将 caffenet和 squeezenet压缩到8-bit参数形式