AI实战:深度学习模型压缩加速方法汇总

深度学习模型压缩加速方法可大致分为2大类

  • 1、设计新的卷积计算方法

    设计新的卷积计算方法,从而减少参数,达到压缩模型的效果,例如 SqueezedNet、mobileNet

    比如:depth-wise 卷积、point-wise 卷积(Depthwise卷积与Pointwise卷积详解

  • 2、在已训练好的模型上做裁剪

    先训练好模型,再在其上做fine-tuning,主要方法包括:

    • 剪枝
      神经网络是由一层一层的节点通过边连接,每个边上会有权重,所谓剪枝,就是当我们发现某些边上的权重很小,可以认为这样的边不重要,进而可以去掉这些边。在训练的过程中,在训练完大模型之后,看看哪些边的权值比较小,把这些边去掉,然后继续训练模型。

    • 权值共享
      就是让一些边共用一个权值,达到缩减参数个数的目的。假设相邻两层之间是全连接,每层有1000个节点,那么这两层之间就有1000*1000=100万个权重参数。可以将这一百万个权值做聚类,利用每一类的均值代替这一类中的每个权值大小,这样同属于一类的很多边共享相同的权值,假设把一百万个权值聚成一千类,则可以把参数个数从一百万降到一千个。

    • 量化
      一般而言,神经网络模型的参数都是用的32bit长度的浮点型数表示,实际上不需要保留那么高的精度,可以通过量化,比如用0~255表示原来32个bit所表示的精度,通过牺牲精度来降低每一个权值所需要占用的空间

    • 二值权重网络(BWN)

      二值权重网络是一种只针对神经网络系数二值化的二值网络算法。BWN只关心系数的二值化,并采取了一种混和的策略,构建了一个混有单精度浮点型中间值与二值权重的神经网络–BinaryConnect。BinaryConnect在训练过程中针对特定层的权重进行数值上的二值化,即把原始全精度浮点权重强行置为-1、+1两个浮点数,同时不改变网络的输入和层之间的中间值,保留原始精度。而真正在使用训练好的模型时,由于权重的取值可以抽象为-1、+1,因此可以采用更少的位数进行存放,更重要的是,很显然权重取值的特点使得原本在神经网络中的乘法运算可以被加法代替。理论上可以得到2倍的加速比。

    • 二值神经网络(BNN)

      BNN要求不仅对权重做二值化,同时也要对网络中间每层的输入值进行二值化,这一操作使得所有参与乘法运算的数据都被强制转换为“-1”、“+1”二值。我们知道计算机的硬件实现采用了二进制方式,而神经网络中处理过的二值数据 恰好与其一致,这样一来就可以考虑从比特位的角度入手优化计算复杂度。

      BNN也正是这样做的:将二值浮点数“-1”、“+1”分别用一个比特“0”、“1”来表示,这样,原本占用32个比特位的浮点数现在只需1个比特位就可存放,稍加处理就可以实现降低神经网络前向过程中内存占用的效果。同时,一对“-1”、“+1”进行乘法运算,得到的结果依然是“-1”、“+1”,通过这一特性就可将原本的浮点数乘法用一个比特的位运算代替,极大的压缩了计算量,进而达到提高速度、降低能耗的目的。然而,大量的实验结果表明,BNN只在小规模数据集上取得了较好的准确性,在大规模数据集上则效果很差。

    • 同或网络(XNOR-net)

      XNOR-net是一种针对CNN的简单、高效、准确近似方法,核心思想是:在BNN的基础上,针对二值化操作给每一层数据造成的误差,引入最佳的近似因子,以此来弥补二值化带来的精度损失,提高训练精度的同时还能保持BNN在速度和能耗方面的优势。

      同或网络在大规模数据集上的效果取得了巨大进步,其中在ImageNet上的正确性只比全精度的相同网络低10个百分点。但在很多复杂任务中,这一结果依然不能满足生产需要。

    • 三值权重网络(TWN)

      TWN的核心在于计算出量化阈值Δ,将数值大小处于阈值内的数据强置为0,其他值依然强置为-1或+1,对于阈值的计算,作者也给了论证,能够最小三值化误差所带来的精度损失,还能够使神经网络权重稀疏化,减小计算复杂度的同时也能得到更好的准确率和泛化能力。在运行效率上,TWN与BWN相当,但是准确率却有着明显的提升。

    • 量化神经网络(QNN)

      Song Han等人在量化神经网络(QNN)方面做了大量研究工作。这一网络的主要目的是裁剪掉数据的冗余精度,原本32位精度的浮点数由“1 8 23”的结构构成,裁剪的方法是根据预训练得到的全精度神经网络模型中的数据分布,分别对阶码和位数的长度进行适当的减少。实验证明,对于大部分的任务来说,6位比特或者8位比特的数据已经能够保证足够好的测试准确率。

猜你喜欢

转载自blog.csdn.net/zengNLP/article/details/104449025
今日推荐