大家好,歡迎來到專欄《AutoML》,在這個專欄中我們會講述AutoML技術在深度學習中的應用,這一期講述在模型剪枝中的應用。
作者&編輯 | 言有三
我們往期的文章中介紹了各種各樣的模型壓縮技巧,那麼是否也可以使用AutoML技術來用於模型壓縮,比如剪枝呢。
1 AMC
AutoML for Model Compression(AMC)是一個利用強化學習自動搜尋並提高模型剪枝演算法質量的框架,其完整的流程如下:
在一般的剪枝演算法中,我們通常遵循一些基本策略:比如在提取低階特徵的引數較少的第一層中剪掉更少的引數,對冗餘性更高的FC層剪掉更多的引數。然而,由於深度神經網路中的層不是孤立的,這些基於規則的剪枝策略並不是最優的,也不能從一個模型遷移到另一個模型。
AMC方法便是在該背景下,利用強化學習自動搜尋並提高模型壓縮的質量,該框架是每一層進行獨立壓縮,前一層壓縮完之後再往後層進行傳播,t層接受該層的輸入特徵s_t,輸出稀疏比率a_t,按照a_t對該層進行壓縮後,智慧體移動到下一層L_t+1,使用驗證集精度作為評估,虛擬碼如下:
作者們對兩類場景進行了實驗,第一類是受延遲影響較大的應用如移動APP,使用的是資源受限的壓縮,這樣就可以在滿足低FLOP和延遲,小模型的情況下實現最好的準確率;這一類場景作者通過限制搜尋空間來實現,在搜尋空間中,動作空間(剪枝率)受到限制,使得被智慧體壓縮的模型總是低於資源預算。
另一類是追求精度的應用如Google Photos,就需要在保證準確率的情況下壓縮得到更小的模型。對於這一類場景,作者定義了一個獎勵,它是準確率和硬體資源的函式。基於這個獎勵函式,智慧體在不損害模型準確率的前提下探索壓縮極限。
每一層的狀態空間為(t, n, c, h, w, stride, k, FLOP s[t], reduced, rest, at−1),t是層指數,輸入維度是n×c×k×k,輸入大小是c×h×w,reduces就是前一層減掉的flops,rest是剩下的flops。
因為剪枝對通道數特別敏感,所以這裡不再是使用離散的空間,如{128,256},而是使用連續的空間,使用deep deterministic policy gradient (DDPG)來控制壓縮比率,完整的演算法流程如下:
對於細粒度的剪枝,可以使用權重的最小幅度作為閾值,對於通道級別的壓縮,可以使用最大響應值。
在谷歌Pixel-1 CPU和MobileNet模型上,AMC實現了1.95 倍的加速,批大小為1,節省了34%的記憶體。在英偉達Titan XP GPU 上,AMC實現了1.53 倍的加速,批大小為50。
2 關於模型優化的推薦資料
如果說要我在深度學習這麼多方向裡選擇一個的話,我會毫不猶豫地選擇模型優化,這也是我一直在做的事情。
公眾號寫過很多的模型解讀了,如下是一些總結:
「AI不惑境」移動端高效網路,卷積拆分和分組的精髓
「AI不惑境」殘差網路的前世今生與原理
知識星球也有一個模型結構1000變板塊,是比公眾號的內容更深更廣。如果感興趣的話這周加入最合適,雙十一優惠還在。
之前在阿里天池也做了幾場直播,往期視訊如下:
模型的優化技術包括設計更高效的模型結構,模型剪枝,量化技術等,如今隨著AutoML技術的發展,也有了更廣闊的空間,下面提供了一些參考資料大家可有閱讀。
[1] He Y, Lin J, Liu Z, et al. Amc: Automl for model compression and acceleration on mobile devices[C]//Proceedings of the European Conference on Computer Vision (ECCV). 2018: 784-800.
[2] Luo J H, Wu J. Autopruner: An end-to-end trainable filter pruning method for efficient deep model inference[J]. arXiv preprint arXiv:1805.08941, 2018.
[3] Zhou D, Jin X, Wang K, et al. Deep Model Compression via Filter Auto-sampling[J]. arXiv preprint arXiv:1907.05642, 2019.
[4] Carreira-Perpinán M A, Idelbayev Y. “Learning-Compression” Algorithms for Neural Net Pruning[C]//Proceedings of the IEEE Conference on Computer Vision and Pattern Recognition. 2018: 8532-8541.
總結
這次我們介紹了AutoML在模型剪枝中的一個經典案例