Data-Free Learning of Student Networks
論文地址:https://arxiv.org/pdf/1904.01186
開源地址:https://github.com/huawei-noah/DAFL
論文作者:Hanting Chen, Yunhe Wang, Chang Xu, Zhaohui Yang, Chuanjian Liu, Boxin Shi;Chunjing Xu, Chao Xu, Qi Tian(北京大學電子與計算機工程學院,華為諾亞方舟實驗室等)
前言
本文將對ICCV2019會議論文《Data-Free Learning of Student Networks》進行解讀,這篇論文在神經網路壓縮領域有相當高的實用價值。作者從難以獲取teacher網路原始訓練集的角度出發,提出了一種將teacher網路用作固定的判決器,利用GAN(Generative Adversarial Networks)的生成器來產生模擬原始訓練集的訓練樣本,進一步訓練、獲得具有較小尺寸和複雜度的student(portable)網路。
實驗結果表明,作者所提出的DAFL(Data-Free Learning)方法在MNIST、CIFAR、CelebA等資料集上具有很好的效能,相對於KD(Knowledge Distillation)等方法具有更好的實用性。
背景
神經網路壓縮演算法目前根據有無原始資料的參與分為兩種。
Data-Driven類
Hinton等提出了一種知識蒸餾方法(knowledge distillation,KD),該方法提煉出經過預訓練的teacher網路的資訊,以學習portable (student )網路【Geoffrey Hinton, Oriol Vinyals, and Jeff Dean. Distillingthe knowledge in a neural network. arXiv preprintarXiv:1503.02531, 2015】。Denton等利用低秩分解(SVD)來處理全連線層的權重矩陣【Emily L Denton, Wojciech Zaremba, Joan Bruna, Yann Le- Cun, and Rob Fergus. Exploiting linear structure within convolutional networks for efficient evaluation. In NIPS, 2014】。Han等採用修剪、量化和霍夫曼編碼來獲得緊湊的深度CNN,使之具有較低的計算複雜度【Song Han, Huizi Mao, and William J Dally. Deep compression:Compressing deep neural networks with pruning, trained quantization and huffman coding. arXiv preprint arXiv:1510.00149, 2015】。Li等進一步提出了一種特徵模擬框架,以訓練有效的卷積網路進行目標檢測【Quanquan Li, Shengying Jin, and Junjie Yan. Mimicking very efficient network for object detection. In CVPR, pages 7341-7349. IEEE, 2017】。
上述方法在大多資料集上取得了良好的效果,但如果沒有原始訓練資料集,則很難應用。
Data- Free類
Lopes等利用原始訓練資料集記錄的 “後設資料”(meta-data)(例如,每層啟用的平均值和標準偏差),但大多數訓練過的CNN很難提供此資料【Raphael Gontijo Lopes, Stefano Fenu, and Thad Starner.Data-free knowledge distillation for deep neural networks.arXiv preprint arXiv:1710.07535, 2017】。Srinivas和Babu提出在完全連線的層中直接合並相似的神經元來壓縮網路,但這很難應用於未詳細說明結構和引數資訊的卷積層和網路【Suraj Srinivas and R Venkatesh Babu. Data-free parameter pruning for deep neural networks. arXiv preprint arXiv:1507.06149, 2015】。
實際上,由於如涉及隱私、傳輸限制等因素,原始訓練資料集和詳細的網路結構、引數等很難獲取,這就意味著上述兩類方法難於應用。
整體架構
GAN有一個生成器和一個判決器,給定的teacher網路同時作為GAN的判決器,不對其進行任何更新。Random Signals(隨機訊號)輸入到GAN的生成器,變換為模擬的原始資料,由判決器進行識別。生成器生成一組資料後,再透過KD方法對student網路的引數進行更新。
Data-free Student Network learning
Teacher-Student關係
由於很難獲取原始訓練資料集,有時也無法獲得引數和詳細結構資訊。作者從teacher-student學習範例來著手。作者認為KD並未利用給定網路的引數和體系結構的資訊,儘管可能僅提供有限的介面(如輸入和輸出介面),但仍然可以從teacher網路繼承一些有用的資訊。令N_T和N_S表示teacher網路和所需的portable/student網路,可用以下基於知識提煉的損失函式來最佳化student網路:
其中H_cross為交叉熵損失,y_T^i=N_T (x^i)和y_s^i=N_s (x^i)分別是N_T和N_S的輸出。利用知識轉移技術,可在沒有給定網路特定架構的情況下最佳化portable網路。
用GAN生成訓練樣本
one-hot損失函式
GAN由生成器G和判決器D組成,G用來生成資料,D用來識別真實影像與G生成的影像之間的差異。若獲得最優的G,必須先得到一個最佳判決器D^*,而判決器一般需要真實的影像進行訓練。作者認為給定的深度神經網路已經在大規模資料集上得到了很好的訓練,因此它也可以從影像中提取語義特徵,因此不需額外的判決器,所以作者將之視為固定的判別器。
另外,判決器的輸出是顯示輸入影像在vanilla GANs中是真實還是偽造的機率。但是,考慮到將teacher網路作為判別器,其輸出是影像分類。為此作者設計了一些新的損失函式。
如給定一組隨機向量{z^1,z^2,···,z^n},透過公式x^i=G(z^i),生成影像{x^1,x^2,···,x^n}。將這些圖片輸入到teacher網路,由公式y_T^i=N_T (x^i),獲得輸出{ y_T^1, y_T^2,···,y_T^n}。再根據公式t^i=arg max(y_T^i),可獲得預測的標籤{t^1,t^2,···,t^n}。如果G生的影像遵循與原始訓練資料相同的分佈,則它們應具有相似的輸出。因此,作者引入了one-hot損失,來使生成圖片的輸出接近teacher網路one-hot向量。把{t^1,t^2,···,t^n}作為ground-truth標籤,作者設計的one-hot損失函式為
其中,N_cross為交叉熵損失函式。
特徵圖啟用損失
作者認為由卷積層提取的中間特徵也是輸入影像的重要資訊。將teacher網路提取的x^i的特徵表示為f_T^i,它對應於全連線層之前的輸出。由於已對teacher中的過濾器進行了訓練以提取訓練資料中的固有模式,如果輸入影像是真實的而不是一些隨機向量,則特徵圖往往會收到更高的啟用值。因此,作者將啟用損失函式定義為:
其中,‖·‖_1是常規的l1範數。換言之,如輸入影像觸發了teacher網路的某些特徵提取器,則意味與真實影像相似,是真實圖片的機率較大。
影像的資訊熵損失函式
作者採用資訊熵損失來衡量生成影像的類平衡。給定一個機率向量 {p_1,p_2,···,p_k},測量混亂度資訊熵p的計算方式是H_info (p)=-1/k ∑_ip_i log(p_i)。H_info(p)的值表示p擁有的資訊量,當所有變數等於1時將取最大值。給定一組輸出向量{ y_T^1, y_T^2,···,y_T^n},每個類生成的影像的頻率分佈是1/n ∑_iy_T^i 。因此,作者將生成影像的資訊熵損失定義為
當損失最小時,1/n ∑_iy_S^i 向量中每個元素都等於1/k,意味著G可以以大致相同的機率生成每個類別的影像。因此,最小化所生成影像的資訊熵可以導致合成影像的平衡集合。
透過結合上述三個損失函式,得到最終的目標函式
α和β是平衡三個不同項的引數。作者認為該方法可以直接模擬訓練資料的分佈,更加靈活,高效地生成新影像。
最佳化
作者設計的學習過程可以分為兩個訓練階段。首先,將teacher網路作為固定判決器。使用上述的L_Total損失函式,最佳化生成器G。其次,我們利用KD方法將知識直接從teacher網路轉移到student網路。使用KD的損失L_KD來最佳化具有較少引數的student網路。
實驗
MNIST實驗
作者分別使用基於卷積的結構和由全連線組成的網路。前者,採用LeNet-5為teacher網路,使用LeNet-5-Hafl(修改後的版本為每層通道數的一半)作為student模型。後者,teacher網路由兩個有1200個單元的隱藏層組成(Hinton-784-1200-1200-10),student網路由兩個有800個單元的隱藏層組成(Hinton-784-800-800-10)。表1為MNIST實驗結果。
作者首先採用隨機生成的正態分佈資料來作為訓練集時,student網路準確度僅有88.01%,再用USPS資料集訓練student網路準確度也僅達到94.56%,說明原始訓練集的效果是其他資料集難以替代。作者提出的DAFL方法達到了98.20%的準確度。
在全連線結構上,與前者結果類似,DAFL方法達到了97.91%的準確度。
消融實驗
作者用隨機生成的樣本,student網路的準確度只有88.01%。僅用one-hot損失或特徵圖啟用損失,所產生的樣本不均衡,會導致較差。將L_oh或L_a與L_ie結合時,student網路分別為97.25%和95.53%。一起使用時,可達到最佳效能。
視覺化結果實驗
說明生成器確實以某種方式在學習原始資料分佈。
第一卷積層中過濾器的視覺化結果如下所示,表明student網路從teacher網路獲取了某些有價值的知識。
CIFAR資料集實驗
作者進一步使用ResNet-34作為teacher網路,ResNet-18作為student網路。
在CIFAR-10上,KD的student網路為94.34%的準確度,DAFL方法可達到92.22%準確度,進一步說明DAFL方法可更好地模擬原始資料。
CIFAR資料集CelebA
作者將AlexNet網路設定為teacher網路,student網路設定為AlexNet-Hafl(修改後的版本為每層通道數的一半)。
DAFL的student網路的準確度為80.03%,與teacher網路的準確度幾乎相當。
擴充套件實驗
作者使用生成的影像訓練與teacher網路具有相同架構的student網路。重新訓練的student網路的準確度與teacher網路的準確度非常接近。
總結
神經網路壓縮演算法通常需要原始訓練資料。但在實際中,由於某些隱私和傳輸限制,要獲取給定網路的訓練資料和詳細網路結構資訊並非易事。在本文中,作者提出了一個新穎的框架來訓練生成器,以模擬原始訓練資料集。然後透過KD方法有效地學習、得到portable網路。在MNIST、CIFAR等資料集上的實驗表明,作者所提出的DAFL方法可獲得效能較好的portable網路,顯示了一定的實用價值。