原文鏈接:http://arxiv.org/pdf/2009.08169? ?發(fā)表:WACV2021
code:無(wú)
編輯:牛濤
文章在introduction部分描述了一堆剪枝方法钱床,然后給出他們存在的幾個(gè)問(wèn)題典蜕,一個(gè)是重要性評(píng)判需要人為設(shè)定并且很直覺(jué)鳍咱;另一個(gè)是layer-by-layer的迭代剪枝是不合理的妈倔,因?yàn)樗胁煌瑢拥膄ilter是聯(lián)合貢獻(xiàn)出結(jié)果的,獨(dú)立的剪一層并不合理(個(gè)人認(rèn)為有待商榷)伏伯。此外傲霸,迭代剪枝也可能剪掉下個(gè)iteration重要的filter(就是別用硬剪枝唄)
卷積操作定義如下:
BN層定義如下:
卷積層和BN層可以合并成如下:
咱也不知道這段是想說(shuō)明啥,反正下一段作者就開(kāi)始說(shuō)bn層的系數(shù)逐漸趨于零可以用來(lái)減掉filter互站。
由于當(dāng)bn層的lambda小于一定閾值時(shí),直接將其置零將幾乎不給網(wǎng)絡(luò)帶來(lái)?yè)p失僵缺,所以用下式的方式做了個(gè)截?cái)?/p>
但是上式在幾乎所有位置導(dǎo)數(shù)都是0胡桃,那你沒(méi)法反向傳播不完?duì)僮訂幔岳弥蓖ü烙?jì)(STE)來(lái)做個(gè)修正磕潮,這個(gè)STE被廣泛利用在參數(shù)量化里翠胰,比如二值網(wǎng)絡(luò)。求導(dǎo)變成如下:
有了這個(gè)就可以利用SGD對(duì)網(wǎng)絡(luò)稀疏訓(xùn)練了自脯,還缺一個(gè)東西就是損失函數(shù)的設(shè)計(jì)之景。
其中第二項(xiàng)為
說(shuō)白了,就是距離目標(biāo)參數(shù)量P*和目標(biāo)Flops M*的差距膏潮。
那么P~和M~咋計(jì)算呢锻狗?按常規(guī)想法肯定是用個(gè)什么工具測(cè)量,但那樣不是數(shù)學(xué)公式的話就也沒(méi)法作為反向傳播的一部分更新網(wǎng)絡(luò)了焕参,所以下面這個(gè)我覺(jué)得才是本文精髓轻纪。
簡(jiǎn)要地說(shuō),上式就是每層參數(shù)乘以當(dāng)前的剪枝率叠纷,只是剪枝率這東西是利用φ函數(shù)得出的刻帚,妙哇。M的話也同理讲岁。
文章偽代碼如下:
實(shí)驗(yàn)結(jié)果:
有一個(gè)地方比較有意思
文章可視化了ResNet56的每層剪枝率我擂,發(fā)現(xiàn)越往后剪枝率越高衬以,同時(shí)每個(gè)stage是差不多的,這可能對(duì)以后設(shè)置剪枝率是一種指導(dǎo)校摩。