29.深度学习模型压缩方法-3

29.1 后端压缩

(1)低秩近似

  • 在卷积神经网络中,卷积运算都是以矩阵相乘的方式进行
  • 对于复杂网络,权重矩阵往往非常大,非常消耗存储和计算资源
    • 低秩近似就是用若干个低秩矩阵组合重构大的权重矩阵,以此降低存储和计算资源消耗。
事项 特点
优点 可以降低存储和计算消耗; 一般可以压缩2-3倍;精度几乎没有损失;
缺点 模型越复杂,权重矩阵越大,利用低秩近似重构参数矩阵不能保证模型的性能 ; 超参数的数量随着网络层数的增加呈线性变化趋势,例如中间层的特征通道数等等。 随着模型复杂度的提升,搜索空间急剧增大。

(2)未加限制的剪枝

  • 完成训练后,不加限制地剪去那些冗余参数。
事项 特点
优点 保持模型性能不损失的情况下,减少参数量9-11倍; 剔除不重要的权重,可以加快计算速度,同时也可以提高模型的泛化能力;
缺点 极度依赖专门的运行库和特殊的运行平台,不具有通用性; 压缩率过大时,破坏性能;

(3)参数量化

  • 神经网络的参数类型一般是32位浮点型,使用较小的精度代替32位所表示的精度。或者是将多个权重映射到同一数值,权重共享
    • 量化其实是一种权值共享的策略
    • 量化后的权值张量是一个高度稀疏的有很多共享权值的矩阵,对非零参数,我们还可以进行定点压缩,以获得更高的压缩率。
事项 特点
优点 模型性能损失很小,大小减少8-16倍;
缺点 压缩率大时,性能显著下降; 依赖专门的运行库,通用性较差;
  • 最为典型就是二值网络、XNOR网络等。其主要原理就是采用1bit对网络的输入、权重、响应进行编码
    • 减少模型大小的同时,原始网络的卷积操作可以被bit-wise运算代替,极大提升了模型的速度
    • 但是,如果原始网络结果不够复杂(模型描述能力),由于二值网络会较大程度降低模型的表达能力
    • 因此现阶段有相关的论文开始研究n-bit编码方式成为n值网络或者多值网络或者变bit、组合bit量化来克服二值网络表达能力不足的缺点

(4)二值网络

  • 相对量化更为极致,对于32bit浮点型数用1bit二进制数-1或者1表示,可大大减小模型尺寸
事项 特点
优点 网络体积小,运算速度快,有时可避免部分网络的overfitting
缺点 二值神经网络损失的信息相对于浮点精度是非常大;
粗糙的二值化近似导致训练时模型收敛速度非常慢

(5)三值网络

事项 特点
优点 相对于二值神经网络,三值神经网络(Ternary Weight Networks)在同样的模型结构下可以达到成百上千倍的表达能力提升;并且,在计算时间复杂度上,三元网络和二元网络的计算复杂度是一样的。例如,对于ResNet-18层网络中最常出现的卷积核(3x3大小),二值神经网络模型最多可以表达2的3x3次方(=512)种结构,而三元神经网络则可以表达3的3x3次方(=19683)种卷积核结构。在表达能力上,三元神经网络相对要高19683/512 = 38倍。因此,三元神经网络模型能够在保证计算复杂度很低的情况下大幅的提高网络的表达能力,进而可以在精度上相对于二值神经网络有质的飞跃。另外,由于对中间信息的保存更多,三元神经网络可以极大的加快网络训练时的收敛速度,从而更快、更稳定的达到最优的结果。

大数据视频推荐:
网易云课堂
CSDN
人工智能算法竞赛实战
AIops智能运维机器学习算法实战
ELK7 stack开发运维实战
PySpark机器学习从入门到精通
AIOps智能运维实战
腾讯课堂
大数据语音推荐:
ELK7 stack开发运维
企业级大数据技术应用
大数据机器学习案例之推荐系统
自然语言处理
大数据基础
人工智能:深度学习入门到精通

你可能感兴趣的:(29.深度学习模型压缩方法-3)