剪枝量化初完結,蒸餾學習又上場

dicksonjyl560101發表於2019-09-26



作者&編輯 | 言有三

1 剪枝

剪枝是一項古老的技術,從上個世紀傳承至今,在學術界和工業界相關的研究工作都是很活躍的。剪枝根據不同的粒度有很多種,小到一個卷積引數,大到一個網路層。

「知識星球」剪枝量化初完結,蒸餾學習又上場

下面是Google關於剪枝的一個典型研究。

「知識星球」剪枝量化初完結,蒸餾學習又上場

To prune, or not to prune

本文探討了具有同樣大小的稀疏大模型和稠密小模型的效能對比,在影像和語音任務上表明稀疏大模型普遍有更好的效能。

模型剪枝是一項重要的模型壓縮技術,它給網路引數帶來了稀疏性,在開源框架中可以通過和權重矩陣大小相等的掩膜來實現。

那麼,剪枝到底對效能會有什麼影響呢?首先看Inception V3模型的實驗,在稀疏性分別為0%,50%,75%,87.5%時的結果,此時模型中非零引數分別是原始模型的1,0.5,0.25,0.128倍,即實現了1,2,4,8倍的壓縮。

「知識星球」剪枝量化初完結,蒸餾學習又上場

可以看到,在稀疏性為50%,效能幾乎不變。稀疏性為87.5%時,指標下降為2%。

「知識星球」剪枝量化初完結,蒸餾學習又上場

上表展示了MobileNet的實驗結果,分別比較更窄的MobileNet和更加稀疏的MobileNet的結果,可以發現稀疏的MobileNet效能明顯優於稠密的MobileNet。

75%的Sparse Model比0.5倍寬的Dense Model在top-

1指標上超出了4%,而且模型更小。90%的Sparse Model比0.25倍寬的Dense Model在top-1指標上超出了10%,模型大小相當。

從這裡可以看出剪枝真的是一個非常有前途的課題,值得研究。

[1] Zhu M, Gupta S. To prune, or not to prune: exploring the efficacy of pruning for model compression[J]. arXiv preprint arXiv:1710.01878, 2017.

其他相關的內容如果感興趣可以移步有三AI知識星球。

「知識星球」剪枝量化初完結,蒸餾學習又上場

「知識星球」剪枝量化初完結,蒸餾學習又上場

2 量化

量化是深度學習模型在各大硬體平臺落地的重要基礎技術,從全精度到8bit及以下的相關研究和實踐都非常多。早期的研究關注在訓練後模型的權重量化,而現在更多的研究已經集中在訓練過程中同時完成量化,並且並不僅僅限制在模型的權重,而是從權重到啟用,甚至是誤差和梯度,並且開始關注混合精度量化,下面是一個典型的研究。

「知識星球」剪枝量化初完結,蒸餾學習又上場

HAQ

HAQ(Hardware-Aware Automated Quantization with Mixed Precision)是一個自動化的混合精度量化框架,使用增強學習讓每一層都學習到了適合該層的量化位寬。

不同的網路層有不同的冗餘性,因此對於精度的要求也不同,當前已經有許多的晶片開始支援混合精度。通常來說,淺層特徵提取需要更高的精度,卷積層比全連線層需要更高的精度。如果手動的去搜尋每一層的位寬肯定是不現實的,因此需要採用自動搜尋策略。

另一方面,一般大家使用FLOPS,模型大小等指標來評估模型壓縮的好壞,然後不同的平臺表現出來的差異可能很大,因此本文使用了新的指標,即晶片的延遲和功耗。

搜尋的學習過程是代理Agent接收到層配置和統計資訊作為觀察,然後輸出動作行為即權值和啟用的位寬。其中一些概念如下:

(1) 觀測值-狀態空間,一個10維變數,如下:

「知識星球」剪枝量化初完結,蒸餾學習又上場

(2) 動作空間,使用了連續函式來決定位寬,離散的位寬如下:

「知識星球」剪枝量化初完結,蒸餾學習又上場

(3) 反饋,利用硬體加速器來獲取延遲和能量作為反饋訊號,以指導Agent滿足資源約束。

(4) 量化,直接使用線性量化方法,其中s是縮放因子,clamp是截斷函式。

「知識星球」剪枝量化初完結,蒸餾學習又上場

c的選擇是計算原始分佈和量化後分布的KL散度,這也是很多框架中的做法。

「知識星球」剪枝量化初完結,蒸餾學習又上場

(5) 獎勵函式,在所有層被量化過後,再進行1個epoch的微調,並將重訓練後的驗證精度作為獎勵訊號。

「知識星球」剪枝量化初完結,蒸餾學習又上場

(6)代理,使用了深度確定性策略梯度(DDPG)方法。

下面我們看實驗結果,這是延遲約束量化下的結果。

「知識星球」剪枝量化初完結,蒸餾學習又上場

上圖是MobileNet-V1/V2模型在邊緣端和雲端裝置上的實驗結果,與固定的8bit量化方法相比,分別取得了1.4倍到1.95倍的加速。

「知識星球」剪枝量化初完結,蒸餾學習又上場

上圖分別是邊緣端和雲端裝置上MobileNet-V1各個網路層的量化特點,可以發現在邊緣端裝置上depthwise卷積有更少的bits,pointwise有更多,在雲端則是完全相反。這是因為雲裝置具有更大的記憶體頻寬和更高的並行性,而depthwise就是記憶體受限的操作,pointwise則是計算受限的操作,MobileNet-V2上能觀察到同樣的特點。

另外還有能量約束和模型大小約束的結果,讀者可以讀原始論文獲取細節。

[1] Wang K, Liu Z, Lin Y, et al. HAQ: Hardware-Aware Automated Quantization with Mixed Precision[C]//Proceedings of the IEEE Conference on Computer Vision and Pattern Recognition. 2019: 8612-8620.

更多相關內容感興趣請移步有三AI知識星球。

「知識星球」剪枝量化初完結,蒸餾學習又上場

3 蒸餾學習

人類學習都需要一個經驗更加豐富的老師引導,這一思想也可以更自然地遷移到深度學習模型的訓練上,即知識蒸餾(Knowledge Distilling)技術,由此引發了很多的相關研究,大佬雲集。下面是Hinton研究組最早期的經典方法。

「知識星球」剪枝量化初完結,蒸餾學習又上場

Knowledge Distilling

知識蒸餾(Knowledge Distilling)是一項重要的模型壓縮技術,它將Teacher模型的知識遷移到了Student模型上,有著很廣泛的應用。

知識蒸餾法包含了一個大模型,也被稱為teacher模型,一個小模型,也被稱為student模型,teacher模型和student模型的訓練是同時進行的。

Hinton最早在文章“Distilling the knowledge in a neural network”中提出了這個概念,核心思想是一旦複雜網路模型訓練完成,便可以用另一種訓練方法從複雜模型中提取出來更小的模型。

“蒸餾”的難點在於如何縮減網路結構但保留有效資訊,文中以softmax分類為例子,T就是一個常量引數:

「知識星球」剪枝量化初完結,蒸餾學習又上場

當T=1時,這就是softmax的定義,當T>1,稱之為soft softmax,T越大,因為Zk產生的概率差異就會越小。

文中提出這個方法用於生成軟標籤,然後將軟標籤和硬標籤同時用於新網路的學習。當訓練好一個模型之後,模型為所有的誤標籤都分配了很小的概率。然而實際上對於不同的錯誤標籤,其被分配的概率仍然可能存在數個量級的懸殊差距。這個差距,在softmax中直接就被忽略了,但這其實是一部分有用的資訊。文章的做法是先利用softmax loss訓練獲得一個大模型,然後基於大模型的softmax輸出結果獲取每一類的概率,將這個概率,作為小模型訓練時的標籤,網路結構如上圖。真實的損失函式包含了硬標籤(hard label)和軟標籤(soft label)兩部分。

MNIST和JAT資料集上的結果都驗證了該方法的有消性,如下圖:

「知識星球」剪枝量化初完結,蒸餾學習又上場

「知識星球」剪枝量化初完結,蒸餾學習又上場

[1] Hinton G, Vinyals O, Dean J. Distilling the knowledge in a neural network[J]. arXiv preprint arXiv:1503.02531, 2015.



https://www.toutiao.com/i6740454129195287048/



來自 “ ITPUB部落格 ” ,連結:http://blog.itpub.net/29829936/viewspace-2658424/,如需轉載,請註明出處,否則將追究法律責任。

相關文章