模型压缩方法
- 低秩近似
神经网络的基本运算卷积,实则就是矩阵运算,低秩近似的技术是通过一系列小规模矩阵将权重矩阵重构出来,以此降低运算量和存储开销。目前有两种常用的方法:一是Toeplitz矩阵(指矩阵中每条自左上至右下的斜线上的元素相同)直接重构权重矩阵,二是奇异值分解(SVD),将权重矩阵分解为若干个小矩阵。 - 剪枝与稀疏约束
剪枝是模型压缩领域中一种经典的后处理技术,典型应用如决策树的前剪枝和后剪枝。剪枝技术可以减少模型参数量,防止过拟合,提升模型泛化能力。 剪枝被应用于神经网络中,遵循四个步骤: 一是衡量神经元的重要程度 二是移除掉一部分不重要的神经元 三是对网络进行微调 四是返回第一步,进行下一轮剪枝 稀疏约束与直接剪枝在效果上有着异曲同工之妙,其思路是在网络的优化目标中加入权重的稀疏正则项,使得训练网络的部分权重趋向于0,而这些0值元素正是剪枝的对象。因此,稀疏约束可以被视为动态的剪枝。 相对剪枝,稀疏约束的优点:只需进行一遍训练,便能达到网络剪枝的目的。 - 参数量化
相比于剪枝操作,参数量化则是一种常用的后端压缩技术。量化就是从权重中归纳出若干个有代表性的权重,由这些代表来表示某一类权重的具体数值。这些“代表”被存储在码本中,而原权重矩阵只需记录各自“代表”的索引即可,从而极大地降低了存储开销 - 二值网络
相当于量化方法的一种极端情况:所有参数的取值只能是+1或-1.现有神经网络大多基于梯度下降来训练,但二值网络的权重只有+1或-1,无法直接计算梯度信息,也无法更新权重。一个折中的方法是,网络的前向与反向回传是二值的,而权重的更新则是对单精度权重进行 - 知识蒸馏
知识蒸馏的目的是将一个高精度且笨重的teacher转换为一个更加紧凑的student。具体思路是:训练teacher模型softmax层的超参数获得一个合适的soft target集合(“软标签”指的是大网络在每一层卷积后输出的feature map),然后对要需要训练的student模型,使得同样的超参数值尽可能地接近teacher模型的soft target集合,作为student模型总目标函数的一部分,以诱导student模型的训练,实现知识的迁移。
squeezeNet的Fire Module有什么特点?
挤压:高维特征有着更好的表示能力,但使得模型参数急剧膨胀。为追求模型容量与参数的平衡,可使用1x1的卷积来对输入特征进行降维。同时,1x1的卷积可以综合多个通道的信息,得到更加紧凑的输入特征,从而保证了模型的繁华性。 扩张:通常3x3的卷积占用了大量的计算资源。可以使用1x1卷积来拼凑出3x3的卷积。
|