卷积神经网络的压缩

参考:《解析深度学习——卷积神经网络原理与视觉实践》

网址:http://lamda.nju.edu.cn/weixs/book/CNN_book.pdf

一、模型压缩原因

巨大的存储代价以及计算开销,严重制约了深度网络在移动端等小型设备上的应用;

模型内部参数存在着巨大的冗余。

二、据压缩过程对模型结构破坏程度进行模型压缩技术分类

前端压缩:指不改变原网络结构的压缩技术,主要包括知识蒸馏、紧凑的模型结构设计以及滤波器层面的剪枝等。

后端压缩:包括低秩近似、未加限制的剪枝、参数量化以及二值网络等,目标在于尽可能减小模型大小,因而对原始网络结构极大程度的改造。

两种压缩技术可以相互结合,将“前端压缩”的输出作为“后端压缩”的输入,能够在最大程度上减少模型的复杂度。

三、不同操作方法

(1)低秩表示

基本思想:用若干个小规模矩阵近似重构权重矩阵。

  • 使用结构化矩阵来进行低秩分解的算法
  • 直接使用矩阵分解来降低权重矩阵的参数

存在问题:
低秩近似算法在中小型网络模型上取得了很不错的效果,但其超参数量与网络层数呈线性变化趋势,随着网络层数的增加与模型复杂度的提升,其搜索空间会急剧增大。当面对大型神经网络模型时,是否仍能通过近似算法来重构参数矩阵,并使得性能下降保持在一个可接受范围内?

(2)剪纸与稀疏约束

        

(3)参数量化

所谓“量化”,是指从权重中归纳出若干“代表”,由这些“代表”来表示某一类权重的具体数值。“代表”被存储在码本之中,而原权重矩阵只需记录各自“代表”的索引即可,从而极大地降低了存储开销。这种思想可类比于经典的词包模型。

(4)二值网络

二值网络可以被视为量化方法的一种极端情况:所有参数的取只能是+1、-1.

(5)所谓“知识蒸馏”,其实是迁移学习的一种,其最终目的是将一个庞大而复杂的模型所学到的知识,通过一定的技术手段迁移到精简的小模型上,使得小模型能够获得与大模型相近的性能。

猜你喜欢

转载自blog.csdn.net/Z199448Y/article/details/85756946