ICCV 2019 | 無需數據集的Student Networks
- 2019 年 11 月 12 日
- 筆記
出品 | AI科技大本營(ID:rgznai100)

本文是華為諾亞方舟實驗室聯合北京大學和悉尼大學在ICCV2019的工作。
摘要
在電腦視覺任務中,為了將預訓練的深度神經網路模型應用到各種移動設備上,學習一個輕便的網路越來越重要。當我們可以直接訪問訓練數據集時,現有的深度神經網路壓縮和加速方法對於訓練緊湊的深度模型是非常有效的,但是現實情況卻是,有了隱私保護,法規政策等,數據集的回去越來越困難,為此,本文提出了一種利用生成對抗網路(GANs)訓練高效深度神經網路的新框架DAFL(Data-Free Learning)。
該框架無需訓練數據集,具體來說,將蒸餾模型中預先訓練好的教師網路充當GAN中的判別器的角色,生成器的任務是生成讓判別器響應最大的樣本,然後利用生成的數據和教師網路,訓練出模型尺寸較小、計算複雜度較低的高效網路。實驗表明,在CIFAR-10和CIFAR-100中,利用零數據訓練的DAFL框架分別達到了92.22%和74.47%的正確率,同時在CelebA中,也獲得了80.56%的正確率,證明了DAFL的有效性。
引言
- CNNs的冗餘性
CNNs在電腦視覺中有廣泛的應用,但是好的性能表現通常依賴於很深,很寬的網路,這種設計模式對訓練提出了高要求,有大量的參數數據需要進行處理,這種情況下,想將網路應用到諸如自動駕駛,邊緣計算等內容上,幾乎是不可能的。雖然這些預訓練好的神經網路有許多參數,但是研究表明,在給定的神經網路中,丟棄85%以上的權值並不會明顯損害神經網路的性能,這說明這些神經網路存在顯著的冗餘。
- 數據的難獲得性
針對CNNs的冗餘,有很多壓縮和加速演算法,但是這些演算法都是基於豐富的訓練數據的支撐,容易忽視的一個點是,由於隱私和傳輸限制,訓練數據集在現實應用中通常是未知的,例如,用戶不想讓自己的照片泄露給別人,而且一些訓練數據集太大,無法快速上傳到雲端。
- Data-Free Learning
本文聚焦無訓練數據的情況,提出了一種不需要原始訓練數據集的深度神經網路壓縮新框架DAFL。具體來說,將給定的大型的教師網路作為生成對抗網路中的判別器部分,在對抗生成過程中,通過從網路中提取資訊,建立一個生成網路來代替原來的訓練集,從而為學習性能可接受的小網路提供參考。
無數據驅動的學生網路學習
現有的輕量級網路學習方法可分為兩類:數據驅動方法(Data-Driven Network)和無數據(Data-Free Network)方法。數據驅動的代表性演算法有兩個解決思路,一是消除減少原模型中的冗餘共結構和參數;二是蒸餾模型,利用教師網路訓練學生網路,但是這兩種方法都依賴大量訓練數據的支撐,一旦數據沒有,很難達到預期效果。這時候,就顯示出無數據方法的重要性了。本文提出一種新的無數據框架,通過在師生學習範式中嵌入一個生成網路來壓縮深度神經網路。
- 教師網路和學生網路的知識蒸餾
知識蒸餾模型將強大網路中的知識資訊傳輸到小網路中,期望得到一個體積小,正確率高的網路。定義蒸餾模型中的教師網路NTN_{T} 和學生網路 Ns{,對學生網路的優化可以通過下列損失函數表示:

其中,Hcrosscross} 表示交叉熵函數,ys{S和 yT分別表示學生網路和教師網路的輸出,可以通過下式得到:


- 利用GANs生成訓練樣本
為了在沒有原始數據集的情況下學習一個輕量級網路,本文利用GAN生成訓練樣本。生成對抗網路(GANs)被廣泛應用在樣本生成領域。GANs包括兩部分,一個生成器網路G和一個判別器網路D。G的作用是生成數據,D的作用是判別數據是真實圖片數據還是生成圖片數據。詳細說,GANs的流程可以這樣表示:輸入一個雜訊,z,送入生成器網路G,得到生成的數據x,對於任意一個GANs來說,損失函數可以用下式表示:

在對抗過程中,生成器G根據生成器產生的訓練誤差持續進化,對G的優化可以看做是下列問題的優化:

其中,D*是固定最優的判別器。
通過描述GANs的訓練流程,我們可以發現生成器很適合用來生成訓練數據,但是根據上列GANs的優化函數,判別器的訓練需要真實圖片,這顯然與零樣本不相符。
近來的工作已經證明,判別器D可以樣本中學習表示的層次,這說明判別器機制有在其它電腦視覺任務中的泛化能力。本文提出將一個深度神經網路直接作為判別器D,這樣,生成器G就可以直接進行優化而不用和D同時進行訓練,即在訓練G時,原網路D的參數是固定的。此外,原始的GANs中,判別器的目的是判定圖片是真實還是生成的,但是神經網路是進行分類的,如果用一個訓練好的神經網路作為判別器,輸出是影像類別,而不是影像的真實性。這樣一來,原始GANs中的損失函數也不再適用,需要設計幾個新的損失函數。
在影像分類任務中,深度神經網路在訓練階段利用交叉熵作為損失函數,監督分類網路生成與真實標籤相同的結果,在多分類任務中,網路輸出要接近一個one-hot向量,只有一個類別的概率為1,其餘均為0。

one-hot示例
具體過程為:
給定生成器G,教師網路 NT,隨機雜訊{ z1,z2,……,zn},生成器生成的影像{ x1,x2,……,xn},將這些生成影像送到教師網路中,得到輸出結果{ y1,y2,……,yn},然後通過下式計算預測類別標籤:

我們定義三個子損失來得到最終的損失函數。
- 交叉熵損失Lcross
如果G生成的影像與教師網路的訓練數據分布相同,那麼它們的輸出也應該與訓練數據具有相似的輸出。基於此,引入了one-hot loss,激勵教師網路對生成器生成影像的輸出接近one-hot向量,這樣倒逼生成器生成與原始訓練集相似的圖片。

其中, Hcross是交叉熵函數, yi是教師網路預測輸出,ti是真實標籤。通過one-hot loss,我們期望生成的影像能夠以較高的概率被教師網路劃分為一個特定的類別。
- 特徵激活損失La
除了教師網路的預測類標籤外,卷積層提取的中間特徵也是輸入影像的重要特徵,不同卷積層對應了不同的語義。由於教師網路中的卷積過濾器已經被訓練來提取訓練數據中的固有模式,因此如果輸入的影像是真實的,而不是一些隨機的向量,特徵圖往往會收到更高的激活值。因此,定義教師網路最後一層的提取特徵 xi為 fi,定義一個激活損失函數。

其中,||· ||1是l1範數。加負號的原因是想讓儘可能多的f被激活。
- 資訊熵損失Linfo
為了簡化深度神經網路的訓練過程,每一類訓練實例的數量通常是平衡的,以MNIST為例,有60000圖片,被分為10類,每一類6000張。1948年,香農提出了「資訊熵」的概念,解決了對資訊的量化度量問題。通常,一個信源發送出什麼符號是不確定的,衡量它可以根據其出現的概率來度量。概率大,出現機會多,不確定性小;反之不確定性就大。本文提出利用資訊熵損失來衡量生成影像的類平衡性。
具體來說,給定一個概率向量{p1,p2,......,pk},資訊熵會用來衡量資訊的混亂程度。p的資訊熵計算公式為:

H(p)的值表示p攜帶的資訊量,當所有的變數取值為1/k時,取得最大值。這裡涉及到資訊熵最大值問題,感興趣的同學可以查閱詳細資訊,最終證明,當所有概率取值相同且為1/k時,資訊熵最大。
我們把資訊熵的概念遷移到影像生成中來。給定一組教師網路的輸出向量,{ y1,y2,……,yn},對於每一類影像的生成概率我們可以表示為:

基於此,我們定義資訊熵損失函數如下:

當損失取得最小值的時候,向量中的每一項都相等且等於 1/k,這說明,生成器G可以以大致相同的概率生成每個類別的影像。因此,最小化生成影像的資訊熵可以得到一組類別均衡的影像。
- 總損失函數
基於上述三個子損失函數,我們可以得到最終的損失函數:

其中,α和 β是平衡三個任務的超參數,通過最小化上述函數,最優生成器G可以生成與之前用於訓練教師網路的訓練數據分布相似的影像。本文提出的方法可以直接模擬訓練數據的分布,更靈活、高效地生成新影像。
- 優化演算法
如下圖所示,DAFL演算法可以分為兩個步驟。

首先,將一個預訓練好的固定教師網路充當生成對抗網路中的判別器,利用上文中的總損失函數 Ltotal,優化了一個生成器G來生成與原始訓練影像分布相似的教師網路影像;其次,利用知識蒸餾的方法直接將知識從教師網路轉移到學生網路。對學生網路的優化方法,是利用LKD損失函數:

整體流程如下圖所示,通過從給定的教師網路中提取有用資訊,訓練生成器逼近原始訓練集中的影像。然後,利用生成的影像和教師網路有效地學習可移植的學生網路。

論文實驗
- 在MNIST數據集上的實驗
首先在MNIST數據集上進行實驗,MNIST數據集由10個類別(從0到9)的28×28像素影像組成,整個數據集包括6萬張訓練影像和1萬張測試影像。為了選擇超參數,從訓練影像中選取10,000張影像作為驗證集。然後,在全部60,000張影像上訓練模型,以獲得最終的網路。為了便於比較,設置了兩種結構,一種是基於卷積(用LeNet-5作為教師網路,用比教師網路參通道數少一半的LeNet-5-HALF作為學生網路),另一種是基於全連接層(教師網路是有兩個隱層,每個隱層1200個節點的HiltonNet,學生網路是有兩個隱層,每個隱層800節點的HiltonNet)。我們發現,學生網路的參數量明顯少於教師網路。在實驗中,設置損失函數中的超參數 α=0.1,β=5,訓練200輪。
實驗結果如下圖所示,在沒有原始數據的情況下,DAFL的學生網路分別取得了98.2%和97.91%的正確率,這些數據與利用原始數據訓練的教師網路性能相近,但是極大簡化了結構和參數量,證明了DAFL的有效性。

- 在CIFAR數據集上的實驗
在CIFAR上同樣有很好的性能表現,不再過多贅述。

- 結果可視化
(1)生成圖可視化對比
在研究了DAFL方法的有效性之後,進一步對MNIST數據集進行了可視化實驗。如下圖所示,(a)圖是MNIST數據集上的影像,(b)是生成器生成影像。通過損失函數深度挖掘教師網路的資訊,生成了與訓練影像較為相似的影像,這表明生成器能夠以某種方式學習數據分布。


(2)卷積核可視化
如下圖所示,可視化了LeNet-5教師網路和學生網路的過濾器。雖然學生網路是在沒有真實數據的情況下訓練的,但是通過所提出的方法學習的學生網路的卷積核仍然與教師網路的卷積核相似。可視化實驗進一步證明,該生成器可以生成與原始影像模式相似的影像,並且利用生成的樣本,學生網路可以從教師網路獲取有價值的知識。
結論
傳統的方法需要原始的訓練數據集來微調壓縮後的深度神經網路,使其具有可接受的精度。然而,由於一些隱私和傳輸限制,給定深度網路的訓練集和詳細的體系結構資訊通常是不可用的。在本文中,我們提出了一個新的框架來訓練一個生成器來逼近原始數據集而不需要訓練數據。然後通過知識蒸餾方案有效地學習可移植網路。在分類數據集上的實驗表明,該方法能夠在不需要任何訓練數據的情況下學習可移植的深度神經網路並取得很好的性能。
Paper link:
https://arxiv.org/abs/1904.01186
Code link:
https://github.com/huawei-noah/DAFL
(*本文為AI科技大本營投稿文章,轉載請微信聯繫 1092722531)

