论文部分内容阅读
近年来深度神经网络(Deep Neural Networks,简称DNNs)从众多机器学习方法中脱颖而出,引起了人们的广泛的兴趣和关注。相对于传统的机器学习算法,深度神经网络具有海量的参数和复杂的网络连接,这让深度学习模型能够自适应地学习特征表示,因此在一些常见的计算机视觉任务(比如:图像分类、物体检测等)中,深度神经网络往往比传统机器学习算法表现出更好的性能。但同时深度神经网络中冗余的参数和网络连接也使得深度学习模型需要消耗巨大的存储资源和计算资源,使得一些资源受限的平台无法有效的运行深度学习模型,出现卡顿、发热现象,甚至可能损坏器件,这导致深度神经网络难以广泛应用到手机等移动嵌入式设备。为了解决深度神经网络在资源受限平台的部署问题,对深度模型进行压缩是一种常用的方式,主要有模型剪枝、知识精炼、低秩分解、精细化的模型结构设计和模型量化这些方法。在这些方法中有些压缩的算法实现步骤繁琐,大量的超参数需要调节,甚至有些方法还对原始的网络结构进行了改变,更重要的是这些算法往往会造合成性能损失。模型压缩的优化目标是在不降低模型的性能或将模型的性能降低很少的情况下,大幅度的减少模型的存储量,从而让深度模型高效率的部署到一些资源受限的平台上。为了方便嵌入式系统进行移位运算,本文通过指数量化的方式对深度神经网络量化压缩,将深度模型中的权重量化为2的n(n为整数)次幂。这种压缩方法简单,压缩过程中不改变网络的模型结构,模型能正常收敛,保存模型时只需保存码本和权重对应的索引,有效降低深度学习模型的储存空间而且不影响模型的性能。本文使用了两种压缩方法,分别为指数量化压缩编码和动态指数量化压缩编码,其中动态指数量化编码是对指数量化编码的改进,在模型训练过程中同时对量化码本进行更新,使码本尽可能减小较大权重参数量化引起的误差。本文的主要工作内容有以下几点:1)通过对现有量化压缩方式的归纳总结,本文选取了指数量化作为本文的量化方法,并通过分析和推导,证明了指数量化时,权重绝对值越大,量化误差越大,从而制定了指数量化的优化策略。2)使用指数量化编码的方式对深度模型进行压缩,通过全精度模型得到指数量化压缩模型的码本,让模型中的权重在码本中更新,最终收敛。实验发现,指数量化压缩能有效逼近初始全精度模型,将模型的大小压缩到原来的1/10,几乎不影响模型的性能。3)改进指数量化压缩,提出了动态指数量化压缩编码,在更新模型参数的同时更新模型的码本,使码本尽可能减小较大权重参数引起的量化误差。相对于指数量化压缩,这种压缩方式无需预训练模型作为初始化模型,得到的压缩模型无论在训练速度还是识别精度均有较大的提升。4)讨论了各种对指数量化性能影响因素,比较了不同正则化和码本对模型量化的影响,并对这些因素进行了分析。通过大量的对比实验,进一步说明本文方法的有效性。本文提出的方法能对模型做到精度无损压缩,在多个模型上均有显著效果,具有很强的实用性。