近日,騰訊優圖實驗室在模型壓縮任務中獲得創新性突破,提出的基于濾波器骨架的逐條剪枝算法(Stripe-Wise Pruning,SWP),刷新了濾波器剪枝的SOTA效果。相關論文(Pruning Filter in Filter)已被機器學習領域的國際頂級會議Conference on Neural Information Processing Systems(NeurIPS 2020)收錄。
圖1 Stripe-Wise Pruning與幾種主流Pruning方式的區别
神經網絡的具有結構和參數這兩個屬性,這兩個屬性都具有重要意義。本文指出神經網絡的濾波器除了通常使用的參數屬性以外,還有一種形狀屬性。形狀屬性之前一直隐含在參數中,通過訓練每個濾波器的參數使其獲得不同的形狀。濾波器的形狀屬性具有重要的意義。具有合适形狀的濾波器,即使參數是随機的,也能具有較好的性能。
因此本文通過一種名為濾波器骨架(Filter Skeleton,FS)的模塊來顯性地學習濾波器的形狀(如圖中①)。當訓練結束,我們可以将FS乘回參數上,因此不會引入額外的參數(如圖中②)。
圖2 PFF方法流程示意圖
對于不在骨架上的參數,使用逐條裁剪的方法将其整條(stripe,1*1濾波器)裁剪掉。
具體的,首先通過卷積計算順序的變換,可以将濾波器從Filter wise等價變換為stripe wise(如圖中③)。接下來就可以使用正常的濾波器剪枝方法對其進行裁剪(如圖中④)。
該方法的創新點包括:
(1)提出濾波器除了參數屬性外,還存在形狀屬性,并且形狀屬性具有重要意義。
(2)提出濾波器骨架的模塊來學習濾波器的形狀,并可以指導模型剪枝。
(3)通過變換普通卷積為Stripe-Wise Convolution,結構化的實現逐條剪枝後的模型。
逐條剪枝算法在CIFAR10和ImageNet數據集上達到了SOTA效果。