论文品读:Stability Based Filter Pruning for Accelerating Deep CNNs

2018年的论文,提出了一种新的评价卷积核重要程度的方式。

主要思想是比较改变损失函数前后训练得到的两套参数,如果某个位置的参数改变的幅度大,就认为该参数是敏感的不稳定的,那就是不重要的,优先裁剪。

具体过程如下

1.正常训练得到基础模型参数。

2.改变损失函数并训练1到3个epoch得到新的模型参数,新的损失函数为左边公式的L,C是原始损失函数,K代表网络有几层,S通过右边公式得到。右边公式的f_{j,l}^{i}代表网络的第i层第j个卷积核的第l个点的值。左边示意图中的红色的值应该用f_{1,1}^{i}表示,代表第i层第一个卷积核的第一个点的值,右图应该用f_{2,2}^{i}表示,代表第i层第2个卷积核的第2个点的值。公式中的Ⅱ的含义是,如果括号里的表示成立则为1,否则为0.

论文品读:Stability Based Filter Pruning for Accelerating Deep CNNs_第1张图片论文品读:Stability Based Filter Pruning for Accelerating Deep CNNs_第2张图片

论文品读:Stability Based Filter Pruning for Accelerating Deep CNNs_第3张图片                        论文品读:Stability Based Filter Pruning for Accelerating Deep CNNs_第4张图片

3.然后对于某层的某个卷积核,后参数所有点的值的和的绝对值    跟    前参数所有点的值的和的绝对值   的比值作为衡量该层该卷积核的重要性,比值大的就认为是不稳定的是不重要的。

4.每次裁剪之后微调2-5个epochs

但是问题是作者只给出了某个层内的各个卷积核的重要性对比,没有给出层间的重要性比较方式,而且论文还直接指定了每层要裁剪的通道个数???

你可能感兴趣的:(论文赏析,模型压缩)