作者:李珺 來源:人工智慧學習圈 本文未經授權,嚴禁轉載,轉載請聯繫作者本人。
深度學習模型不斷發展,其分類能力和準確度不斷提高。同時,隨著模型理論的不斷研究,模型結構呈現越來越深的趨勢,從16層的VGG,到22層的inception再到後來152層的ResNet,模型在不斷加深,參數量在逐漸增大,並且每秒浮點運算次數(FLOPS)也越來越高。固然硬體的發展能夠一定程度上解決計算複雜的問題,但是依然存在一些特殊條件,如硬體運算速度不高、模型存儲空間不足以及實時性要求高。因此,能夠用一個足夠小的模型實現滿足精度要求分類、檢測是目前很多學者關注的問題。小模型參數少、訓練速度快且運行耗時少、運算成本低,能夠滿足高實時性的和低性能的運算場景;同時,由於參數量的減少,所需的存儲空間減少,使模型能夠在低性能存儲設備上部署,並能實現雲端部署。
相關工作
Denton等人在一個預先訓練好的CNN模型上採用將奇異值分解(SVD)將其壓縮,Han等人提出了網絡剪枝的思想,即將預先訓練好的模型中低於一定閾值的參數替換為零,形成稀疏矩陣,從而提供了參數壓縮存儲的可能;隨後,他們將哈夫曼編碼應用於壓縮存儲,實現了模型的壓縮。但這些方法都僅限於在現有模型結構不變的基礎上優化存儲,並不能解決運算能力和速度的問題。
為了解決模型結構龐大的問題,最初的採用卷積神經網絡替換全連接網絡實現了初步意義上的壓縮;之後3*3卷機核替換7*7卷積核能夠有效減少參數量,而在之後的全卷積和1*1卷積同樣起到減少參數量的作用。而更有效的方法則是縮小模型結構。
網絡結構
本文提出了Fire模塊結構,其基本結構為一層壓縮層與一層擴展層的連接。壓縮層採用1*1卷積結構,同時將通道數按一定比例降低,從而有效減少了卷積核的參數量。在參數量減少的情況下,數據特徵被高度壓縮,為了確保數據特徵不失真,需要將數據復原,因此,本文在壓縮層後添加了擴展層『擴展層結構為一定數量的1*1卷積核與3*3卷積核的組成,3*3卷積核採用一定程度的稀疏操作,從而使其可壓縮,通道數在壓縮層的基礎上有一定增加,從而確保了模型能夠較大程度地保留特徵。
SqueezeNet的主要結構如圖所示:
本文在基本模型的基礎上提出了兩種改進模型,引入了ResNet中的殘差連接,在一定程度上犧牲模型體積的前提下,不同程度上提高了模型的準確率。本文將第一層Fire模塊的通道數設置為128,在每經過K層Fire模塊後,輸出通道增加increase*i/K個,increase為增加的通道數(文中設置為128),i為Fire模塊的層數。Fire模塊的輸出為模塊中擴展層的輸出,因此,Fire模塊的通道數即為擴展層的卷積核個數。而在Fire模塊中的壓縮層中,其通道數設置策略為將壓縮層通道數設置為擴展層通道數*SR,SR為壓縮比率取值為0到1。在Fire模塊的擴展層中,1*1卷積核與3*3卷積核的比例也是可調的,通過padding操作使1*1卷積和3*3卷積輸出的特徵圖尺寸一致便可以將其有效拼接,可以理解為3*3卷積為主要的特徵復原手段,1*1卷積為次要復原手段,因此權衡好兩種卷積核的比例是模型在體積和精度之間選擇的條件。
實驗
論文中,作者通過實驗對比了SqueezeNet基礎模型以及兩種改進版與AlexNet的原版和壓縮版,在對比精度外還重點對比了模型大小:
通過對比可見,深度壓縮方法可以有效壓縮參數體積同時確保模型精度,而本文提出的SqueezNet模型有效地減小了模型體積,使模型總參數量較少,從而可以壓縮到更小的尺寸,同時模型的精度還得到了保證。
在驗證了模型有效性的基礎上,本文嘗試研究了模型結構設計的超參數對模型精度的影響。設置不同的壓縮比率以及擴展層中3*3卷積核的佔比,來比較模型精度的變化。
壓縮率和卷積核比例
由左圖可以得到,壓縮比率在取0.5時模型精度達到85.3%,繼續增大壓縮比率模型精度增加不明顯,而降低會導致模型精度的大幅下降,通過權衡精度與體積,作者建議SR取0.5。由右圖可見,當3*3卷積核比例為50%時,模型精度達到85.3%,繼續增大壓縮比率模型精度增加不明顯,而降低會導致模型精度的大幅下降。作者建議了在保證最大精度基礎上的最小模型參數,即比例為50%。
此外,作者提出在基本模型的基礎上引入殘差連接,通過引入不同複雜程度的連接模塊,模型的性能有了不同程度的提升,而簡單旁路連接的精度提升最高,同時模型體積也沒有過大。
體積分別為4.8MB、 4.8MB、 7.7MB
本人嘗試復現論文結構,在西安景點、美食、民俗、特產、工藝品等圖像數據集上進行調優和測試。模型在SR取0.6,3*3卷積核比例取0.5時精度最高,達到了79.6%,而由於數據集樣本不平衡,對一定類別的分類結構較差。部分分類結果如下所示:
由於實驗條件有限,僅採用控制變量法驗證了部分參數,以上結果均為在數據集上調優迭代20個epoch的結果。本人未考慮模型尺寸。
五、結論
Squeezenet提出了Fire壓縮模塊,能夠在確保精度的基礎上有效減少參數量。同時作者研究參數選取的過程值得參考學習,對比研究的思想值得在今後科研中效仿。
測試數據樣例:
原文連結:https://zhuanlan.zhihu.com/p/158519674