ICCV 2019 提前看|三篇論文,解讀神經網絡壓縮

2020-12-06 機器之心Pro

機器之心原創

作者:立早

編輯:H4O

本文是一篇關於神經網絡壓縮領域的論文解讀,通過對ICCV 2019中的三篇論文進行分析,讀者可以了解目前的發展趨勢。

神經網絡壓縮方向是目前深度學習研究的一個熱門的方向,其主要的研究方向是壓縮,蒸餾,網絡架構搜索,量化等。在 ICCV2019 中,不少的研究單位和學者都發表了神經網絡壓縮方向的論文。本文主要以其中三篇論文來研究神經網絡壓縮的目前發展趨勢。

論文 1:基於元學習的模型壓縮《MetaPruning: Meta Learning for Automatic Neural Network Channel Pruning》

論文地址:https://arxiv.org/abs/1903.10258

1 論文主旨概述

Meta learning 論文是曠世研究院提出的一種神經網絡壓縮方法。通道剪枝 [1] 作為一種神經網絡的壓縮方法被廣泛的實現和應用,一般剪枝算法通過對預訓練的大網絡裁剪次要的通道,之後微調,得到最終的剪枝網絡。隨著 AutoML[2] 的發展,metapruning 利用 autoML 的自動尋找最優結構的特點,脫離了人工設計的局限以及彌補剪枝算法的依賴數據的不足。本文從元學習的角度出發,直接用元學習得到剪枝網絡(pruned networks)的結構以及自生成權重,而不是保留原始網絡的重要參數。

2 方法:

近年來,有研究 [3] 表明無論是否保存了原始網絡的權值,剪枝網絡都可以達到一個和原始網絡相同的準確率。因此,通道剪枝的本質是逐層的通道數量,也就是網絡結構。鑑於此項研究,Metapruning 決定直接保留裁剪好的通道結構,區別於剪枝的裁剪哪些通道。

本文提出來一個 Meta network,名為 PruningNet,可以生成所有候選的剪枝網絡的權重,並直接在驗證集上評估,有效的搜索最佳結構。

Pruningnet training

PruningNet 是一個 meta network,以一組網絡編碼向量 (c1,c2,,,cl) 為輸入,輸出為剪枝網絡的權重。一個 PruningNet 的訓練方式如下圖 (1) 所示:

圖(1)PruningNet 的隨機訓練方法

圖 (1) 中,PruningNet 由多個 block 組成,其中的每個 block 由兩個全連接層組成。

在前向過程中,PruningNet 以網絡編碼向量(即剪枝網絡的每層通道數)為輸入,生成權重矩陣。同時,剪枝網絡以網絡編碼向量中的數值為輸出通道,並將生成的權重矩陣裁剪匹配剪枝網絡的輸入輸出。對於一個 batach 的輸入圖像,我們可以計算帶權重的剪枝網絡的前向損失。

在反向過程中,本文並不是更新剪枝網絡的權重,而是計算 PruningNet 的梯度,更新 PruningNet 的權重(全連接層參數)。

在整個訓練過程中,由於所有的操作都是可微的,所以能夠進行端到端的學習。通過隨機生成不同的網絡編碼向量,可以得到不同的剪枝網絡結構。

Pruned-network search-evolutionary algorithm

本文中,網絡向量編碼為 pruned networks 的基因。在硬約束的前提下,我們首先隨機選擇大量的基因並獲得相關的剪枝網絡的準確率。選擇前 top k 的基因,對其做變異和交叉,生成新的基因。同時對不符合要求的基因添加約束來消除。如此迭代數次,最終可以得到既滿足約束又獲得最高準確率的基因。具體算法如圖(2)所示:

圖(2)進化搜索算法

3 實驗和結果

圖(3)mobilenetV1 結構實驗

圖(4)mobilenet V2 實驗

圖(3)(4)表明 metaPruning 相比較一般基線模型相比,metaPruning 得到的結構在效率和 top1 上都有較大的優勢。

4 總結

本文提出的 metaPruning 的方法,從本質上來講屬於一種結構搜索的方法。跳出傳統剪枝的思路,不僅僅可以去除數據的約束,同時避免了微調的耗時。

該方法將根據不同的約束加入搜索中,靈活調整算法;可以應對帶 short-cut 的網絡結構;端到端的學習十分高效,且無需更新剪枝網絡的權重。

但是,這個網絡的生成過程中,需要注意以下的幾個問題:

(1)對訓練的硬體要求,PruningNet 和生成的剪枝網絡同時在訓練過程中,是否帶來了較大的 GPU 資源的消耗,導致生成過程較慢。

(2)在生成過程中雖說對樣本不做要求,但是簡單的幾個 batch 的樣本對模型的影響應該比較大。

參考文獻

[1] Hao Li, Asim Kadav, Igor Durdanovic, Hanan Samet, and Hans Peter Graf. Pruning lters for efcient convnets. arXiv preprint arXiv:1608.08710, 2016.

[2] Tien-Ju Yang, Andrew Howard, Bo Chen, Xiao Zhang, Alec Go, Mark Sandler, Vivienne Sze, and Hartwig Adam. Netadapt: Platform-aware neural network adaptation for mobile applications. In Proceedings of the European Conference on Computer Vision (ECCV), pages 285–300, 2018.

[3] Zhuang Liu, Mingjie Sun, Tinghui Zhou, Gao Huang, and Trevor Darrell. Rethinking the value of network pruning.arXiv preprint arXiv:1810.05270, 2018.

論文 2:無需數據的蒸餾方法《Data-Free Learning of Student Networks》

論文地址:https://arxiv.org/abs/1904.01186v1

該篇論文是華為提出的一篇蒸餾方向的論文,其主要的創新點是提出的蒸餾過程不需要原始訓練數據的參與。

1 論文概述

通常來說,知識蒸餾需要原始訓練數據的參與,才能達到一個較好的蒸餾效果,那麼在缺乏原始數據甚至無數據的時候,或者,老師模型只知道接口不知道其模型結構的時候,如何才能達到一個蒸餾的效果呢?此文章的出發點就在此,文章利用 GAN 生成圖像的特性來生成蒸餾所需數據。

2 Data-free 網絡壓縮方法

在神經網絡壓縮領域,SVD(singular value decomposition)[1],KD(knowledge distillation)[2],基本都是需要數據驅動的,在有原始數據參與的時候能達到一個較好的壓縮效果。無需數據驅動的壓縮方法較少,比如合併相似單元 [3],但是這些方法的效果並不如數據驅動的方法。

GAN 生成訓練樣本

網絡通常被用與生成樣本,包括生成器 G 和辨別器 D。對於一個普通的 GAN 網絡而言,給定一個帶噪聲的向量 z,其損失函數表示為公式(1):

利用公式(1)分別訓練 G 和 D。與普通 GAN 網絡不同的是,傳統 GAN 網絡中,D 網絡對於輸入的圖像,其輸出是判別真假的二分類。在本文中,我們給定 D 為預訓練完成的老師網絡,其輸出是圖像的類別數。為了適應這種情況下的 GAN 網絡,本文利用新的損失函數來更新訓練 G。具體的公式如下所示:

其中:

(1)Loh 表示 one-hot loss , 此時的 D 網絡輸出為類別數。假設對一個輸入為 X={X1,X2,,,Xn} 的圖像來說,D 的輸出為 {y1,y2,,,yn},根據輸出得到的預測的 label 為 {t1,t2,,,tn},Loh 則可以表示為輸出和預測值之間的交叉熵損失:

(2)La 表示激活損失,如果一個輸入圖像是真實的圖像而不是隨機向量生成的,那麼在 D 網絡中,經過 D 提取進過全連接層之前得到的輸出值 ft,其激活值應該為一個較高的值。所以,La 可以表示為如下的公式:

(3)Lie 損失表示的信息熵的大小。用于衡量生成樣本中的類別平衡情況。對於給定的輸出集合 {y1,y2,,,yn},每個類別的頻率分布可以表示為輸出的均值。那麼 Lie 可以用如下表示:

利用 GAN 蒸餾的算法步驟

本文算法主要分為兩步:

第一步,訓練生成器 G。利用預訓練的給定老師模型作為 D,訓練生成器 G。第二步,訓練學生網絡。利用 G 網絡生成訓練樣本,然後用這些樣本來進行知識蒸餾。其蒸餾的示意過程如圖(1)所示:

圖(1)利用 GAN 的知識蒸餾過程

3 實驗結果

圖(2)無數據蒸餾方法在 MNIST 上的實驗

圖(3)在 CIFAR 上的實驗

從圖(2)(3)中,我們可以看出無數據的 GAN 蒸餾方法相比較其他無數據的蒸餾方法能夠大幅度的提升蒸餾的效果。

4 總結

本文從無數據的情況出發,考慮到了蒸餾領域的一個比較常見的情況。本文提出的利用 GAN 的方法新穎且有效,利用 GAN 學習原始數據的分布情況,做到了一個神似而形不似的學習。但是這種 GAN 的生成樣本在蒸餾過程中保留了數據的分布,從而在蒸餾中也能達到一個好的效果。

但是,這種利用 GAN 的生成數據的方法在筆者看來是不是更適合作為一種數據增強的方式,從訓練時間上來看,加入了 G 網絡的生成過程,訓練過程較長且不太好控制收斂情況。

參考文獻

[1] Emily L Denton, Wojciech Zaremba, Joan Bruna, Yann LeCun, and Rob Fergus. Exploiting linear structure within convolutional networks for efcient evaluation. In NIPS, 2014.1, 2

[2] Geoffrey Hinton, Oriol Vinyals, and Jeff Dean. Distilling the knowledge in a neural network. arXiv preprint arXiv:1503.02531, 2015. 1, 2, 3, 5, 7, 8

[3] Suraj Srinivas and R Venkatesh Babu. Data-free parameter pruning for deep neural networks. arXiv preprint arXiv:1507.06149, 2015. 2, 3

論文 3:基於樣本之間相關性的蒸餾方法《Correlation Congruence for Knowledge Distillation》

論文地址:https://arxiv.org/abs/1904.01802

這篇論文是由商湯提出的一篇蒸餾方向論文,其主要的亮點在於研究樣本之間的相關性,利用這種相關性作為蒸餾的知識輸出。

1 論文概述

知識蒸餾方法 [1] 是老師-學生網絡的基礎方法,通常的知識蒸餾方法都是關注實例(instance level)層的約束,但是這種約束經常會忽略多示例之間的相關性。本文提出了一種基於實例之間的相關性的蒸餾方法。

2 Correlation Congruence 知識蒸餾

傳統蒸餾定義

傳統的蒸餾方法主要是用 kl 散度等距離度量的方法來表徵老師網絡和學生網絡的特徵之間的距離,例如公式(1)和(2)所示:

其中,fs 和 ft 分別表示學生和老師網絡的特徵,ps 和 Pt 分別表示學生和老師網絡的 softmax 輸出值。

這種蒸餾方法關注的是特徵圖之間的距離,但是由於學生網絡和老師網絡在擬合能力本質上的鴻溝,這種蒸餾方法並不能學到一個恆等映射使得學生網絡能夠更好的學習。

樣本間的關係一致性(correlation congruence):

不同於之前的方法,CCKD(correlation congruence knowledge distillation)方法不僅僅關注樣本實例層面的一致性,同時也關注實例之間的一致性,如圖 1 所示:

圖 1:CCKD 算法圖示

如圖 1 所示,CC(correlation congruence)為圖中最右邊的部分,表示實例之間的相關性信息,IC(instance congruence)則是實例層的相關信息。

我們用 Ft 和 Fs 來分別表示老師學生網絡的特徵表示的集合。可以用公式表示如下:

定義 C 為相關性矩陣,其中每一個元素表示 xi 和 yi 的關係,因此可以表示為公式(5):

其中,距離度量的方法可以有很多種。基於公式(5),我們可以得到 CCloss。如公式(6)所示:

蒸餾算法

CCKD 算法的 loss 由三部分組成,如公式(7)所示:

其中 Lce 為交叉熵所示,Lkd 為 t-s 之間的實例層的蒸餾損失,Lcc 則是實例間一致性的損失。

3 實驗結果

圖 2 CCKD 算法在 mnist 的實驗

圖3 CCKD 算法在 ImageNet1k 的實驗

圖 4 CCKD 在 MSMT17 的實驗

4 總結

在 KD 領域中,[2] 文章也提出來類似的思想,用特徵實例之間的距離來做知識蒸餾,就思想上來說並無差異。所以,如果從創新性上來說,本文應該對比同等論文的思想對比。

本文在做蒸餾的時候用上了三個損失的結合,做了充分的實驗證明算法的有效性。但是,在之後的研究中,三種損失的比重也是一個值得研究的方向。

參考文獻

[1] G. Hinton, O. Vinyals, and J. Dean. Distilling the knowledge in a neural network. arXiv preprint arXiv:1503.02531, 2015.1, 2, 3, 5, 6

[2]Passalis N , Tefas A . Learning Deep Representations with Probabilistic Knowledge Transfer[J]. 2018.

作者介紹:工學碩士,研究方向為模式識別。目前從事人臉識別、檢測和神經網絡壓縮方向的工作。希望能夠一直學習,多多交流,不斷進步。

相關焦點

  • ICCV 2019接收論文提前看,曠視11篇入選文章放出
    魚羊 發自 凹非寺 量子位 報導 | 公眾號 QbitAI ICCV 2019最終論文接收結果終於全部公布,這一次,一共有1077篇論文被接收,接受率為25%。
  • CVPR 2019Oral論文解讀|百度提出關於網絡壓縮和加速的新剪枝算法
    雷鋒網(公眾號:雷鋒網) AI 科技評論按:百度關於網絡壓縮和加速的論文《 Filter Pruning via Geometric Median for Deep Convolutional Neural Networks Acceleration》被 CCF A 類學術會議 CVPR 2019 收錄為 Oral 論文,這篇論文提出了新的基於濾波器的幾何中心(geometric
  • ICCV 2019 論文解讀:用圖神經網絡改善視頻的多標籤分類
    :雷鋒網)AI科技評論投稿,未經允許禁止轉載。作者 | 王磊本文介紹了汽車之家團隊在ICCV 2019一篇關於視頻理解論文相關的工作。針對視頻多標籤分類的問題,論文提出了將視頻多標籤之間相關性特徵加入到網絡之中,結果證明該方法可以顯著的提高視頻多標籤分類效果。
  • AAAI 2020 提前看 | 三篇論文解讀問答系統最新研究進展
    今年 AAAI 共接受了 8800 篇提交論文,其中評審了 7737 篇,接收 1591 篇,接收率為 20.6%。為了向讀者們介紹更多 AAAI2020 的優質論文,機器之心組織策劃了 AAAI 2020 論文分享,邀請國內外著名大學、研究機構以及工業界的研究人員詳細介紹他們發布在 AAAI 2020 的文章,歡迎大家持續關注。
  • 今日Paper|可視問答模型;神經風格差異轉移;圖像壓縮系統;K-SVD...
    from=leiphonecolumn_paperreview0211推薦原因這篇論文了介紹一種自動創建字體的方法,找到兩種不同字體之間的字體樣式差異,並使用神經樣式轉移將其轉換為另一種字體。這篇論文提出了一種新的神經風格差異和內容差異損失神經風格轉移方法。根據這些損失,可通過在字體中添加或刪除字體樣式來生成新字體。
  • 7篇必讀ACM MM 2019論文:圖神經網絡+多媒體
    已於2019年10月21日至25日在法國尼斯舉行。圖神經網絡在多媒體領域應用非常多,本文整理了七篇ACM MM 2019最新GNN相關論文,並附上論文連結供參考——個性化推薦、短視頻推薦、多視頻摘要、基於文本的行人搜索、視頻關係檢測、社區問答(CQA)系統等。來新智元 AI 朋友圈和AI大咖們一起討論吧。
  • CVPR2017精彩論文解讀:效果更顯著的模型壓縮算法和泛化優化算法
    下文是優必選雪梨AI研究院對其入選CVPR 2017的兩篇論文《基於低秩稀疏分解的深度模型壓縮算法》和《利用奇異值界定提升深度神經網絡訓練效果和識別精度》進行的解讀,除此之外他們還對會上Workshop競賽的進行了相關介紹。
  • 騰訊優圖的 ICCV 2017:12篇論文入選 CV 頂會,3篇Oral|ICCV 2017
    被譽為計算機視覺領域三大頂級會議之一的ICCV(另外兩個為CVPR、ECCV)近日揭曉收錄論文名單,騰訊優圖共有12篇論文入選,其中3篇被選做口頭報告(Oral),該類論文僅佔總投稿數的2.1%(45/2143)。本屆 ICCV 共收到2143篇論文投稿,其中621篇被選為大會論文,錄用比例29%。
  • 談一談逆勢而上的圖神經網絡
    NeurIPS 2020 | 圖機器學習NeurIPS'20: 80多篇與圖相關的論文整理與小結 (更新中)圖神經網絡說難不難,說容易不容易。如果你還沒有入門,不用著急,站在他人的肩膀上,你會看的輕鬆一點,歡迎參考從下面的學習路線1 Tutorial教程合集(入門必讀)為什麼要進行圖嵌入表示?
  • 74KB圖片也高清,谷歌用神經網絡打造圖像壓縮新算法
    最新的好消息是,谷歌團隊採用了一種GANs與基於神經網絡的壓縮算法相結合的圖像壓縮方式HiFiC,在碼率高度壓縮的情況下,仍能對圖像高保真還原。GAN(Generative Adversarial Networks,生成式對抗網絡)顧名思義,系統讓兩個神經網絡相互「磨鍊」,一個神經網絡負責生成接近真實的數據,另一個神經網絡負責區分真實數據與生成的數據。
  • 北大,華為Oral論文提出加法神經網絡
    演講主題:加法神經網絡:在深度學習中我們是否真的需要乘法?簡介:陳漢亭,北京大學智能科學系碩博連讀三年級在讀,同濟大學學士,師從北京大學許超教授,研究興趣主要包括計算機視覺、機器學習和深度學習。在 ICCV,AAAI,CVPR 等會議發表論文數篇,目前主要研究方向為神經網絡模型小型化。摘要:和廉價的加法操作相比,乘法操作需要更大的計算量。
  • 百度NLP | 神經網絡模型壓縮技術
    更複雜的模型、更強的特徵以及更多的數據對工業級應用提出了更高的要求,如何有效控制內存、減少計算量以及降低功耗是深度神經網絡模型發展面臨的重要問題。壓縮算法的研究不僅提升了模型的擴展潛力,並且使其具有更廣闊的應用場景和巨大的想像空間。在百度,以搜索場景為例,用於相關性排序的神經網絡參數規模達到億級,而線上環境對計算資源要求嚴格,模型難以擴展。
  • CVPR 2019 神經網絡架構搜索進展綜述
    圖片來源:Elsken et. al如果你對上述算法感興趣,我推薦閱讀Elsken等人的這篇綜述。他們還建立維護了一個網站,你可以在這裡找到最近的相關文章。  CVPR 2019上的NAS下面本文將目光轉向在CVPR 2019會議上登場的NAS相關工作。
  • 「一文看懂」深度神經網絡加速和壓縮新進展年度報告
    深度神經網絡,作為目前人工智慧的基石之一,其複雜性及可移植性將直接影響人工智慧在生活中的應用。因此,在學術界誕生了深度網絡加速與壓縮領域的研究。今天,來自中國科學院自動化研究所的程健研究員,將向大家介紹過去一年中,深度神經網絡加速和壓縮方面所取得的進展。文末,大講堂提供文中提到參考文獻的下載連結。
  • 解讀騰訊優圖ICCV2017 12篇論文:全球首個AI卸妝效果的算法等
    今年,即將於2017年11月8日在北京國家會議中心舉辦的AI World 2017世界人工智慧大會上,我們請到了騰訊優圖實驗室傑出科學家賈佳亞教授發表演講。 想了解更多關於騰訊優圖和計算機視覺的前沿動態?點擊文末閱讀原文,馬上參會!
  • 國內接收論文佔四成圖神經網絡大火,ACM CIKM2019最佳論文出爐
    國內學者佔據四成今年的 CIKM 收到 1676 篇提交論文(其中包括 1031 篇長論文和 471 篇短論文),經過同行評審,共有 202 篇長論文、107 篇短論文和 37 篇應用研究論文被接收。總接受率約為 21%。
  • 17篇論文,詳解圖的機器學習趨勢 | NeurIPS 2019
    在NeurIPS 2019上,僅主會場就有 100多個與圖相關的論文;另外,至少有三個workshop的主題與圖有關:我們希望在接下來的這篇文章裡,能夠儘可能完整地討論基於圖的機器學習的研究趨勢,當然顯然不會包括所有。
  • 從20 篇ICCV 2017錄用論文,看商湯科技四大攻堅領域|ICCV 2017
    在本屆 ICCV 大會,商湯科技與香港中大-商湯科技聯合實驗室共發表了 20 篇論文,其中包括 3 篇 Oral (錄取率僅 2.09%) 和 1 篇 Spotlight,領先 Facebook(15 篇)、Google Research(10 篇)等科技巨頭。
  • CVPR 2019:北郵提出新AI模型壓縮算法,顯著降低計算複雜度
    通道剪枝(Channel Pruning)通過移除神經網絡中冗餘通道,達到加速神經網絡推理過程和壓縮模型體積的效果,還可以獲得實際的加速效果,然而當前基於結構正則化的通道剪枝方法忽略了神經網絡中連續層之間的關聯關係。
  • 用循環神經網絡進行文件無損壓縮:史丹福大學提出DeepZip
    選自史丹福大學作者:Kedar Tatwawadi機器之心編譯參與:李澤南、黃小天神經網絡不僅可以分析、識別特徵,提出預測,還可以壓縮文件。史丹福大學的研究者最近提交的論文中,循環神經網絡捕捉長期依賴關係的優勢被用於無損壓縮任務中,這種被稱為 DeepZip 的技術已在文本和基因組數據文件中得到了實驗。研究人員稱,其結果頗具潛力。