轉載請注明出處:https://www.cnblogs.com/White-xzx/
原文地址:https://arxiv.org/abs/1812.02425
Github: https://github.com/AaronHeee/MEAL
如有不准確或錯誤的地方,歡迎交流~
本文來自 AAAI 2019, Oral的一篇文章,主要的思想是通過知識蒸餾的方法將不同的已訓練的teachers模型,壓縮為一個簡單的student網絡,來學習多種模型的知識而不用產生額外的測試開銷。作者使用的是基於對抗的學習策略,設計了一個block-wise training loss引導和優化預先定義的student網絡,進行teachers模型知識的蒸餾,並同時提高辨別器網絡(discriminator)對學生和老師提取出的特征的區分能力。
【Abstract】
性能優異的模型通常集成多個基准網絡,然而模型的大小和前饋時間限制了這些模型在實際中的應用,尤其是當擁有較大測試集時。本文提出了基於對抗學習策略的模型壓縮方法MEAL,該方法包含三個重要的優勢:
①學生網絡和辨別器一起學習知識能夠達到比原始模型更好的優化效果;
②通過簡單的學生網絡實現更快的前饋速度,同時不降低性能;
③學生可以學習任意結構網絡模型的知識。
【Introduction】
該集成方法主要是集合多個網絡,將他們在test階段的預測通過加權平均或選擇進行融合。訓練時,將經過數據增強的輸入經過不同網絡結構網絡得到的輸出,進行集成預測;測試時,只使用一個簡單網絡;集成的各個網絡擁有預訓練模型,所以在集成過程中直接加載了預訓練模型,使用的監督標簽必須和預訓練過程使用的標簽是一致的。
傳統集成方法的不足:①知識或信息冗余;②集成模型非常大且慢;
作者通過不同神經網絡的不同輸出作為監督來引導目標網絡的訓練,參考網絡作為老師,目標網絡作為學生。學生網絡訓練過程中使用老師網絡產生的soft label進行監督訓練,作者認為label的信息必須更為翔實,而不是簡單地給一張圖片提供一個相同的類別,以下是soft label的一個例子:
老師網絡給出的soft label提供了不同類別的具體概率分布,使label能提供圖片中具有視覺聯系場景的信息覆蓋。
同時,為了進一步提高學生網絡的魯棒性,作者還引入了對抗學習的策略來使學生網絡產生與老師相同的輸出。
【Related Work】
【Overview】
與孿生網絡相似的網絡結構,包括兩個分支,分別為老師和學生,兩個分支的網絡結構可以相同也可以不同,但是為了能夠利用兩個網絡的中間輸出,所以兩個網絡分支必須有相同數目的block。MEAL網絡結構如下:
MEAL包括學生網絡、老師網絡、校准層(alignment layers)、相似度損失層和判別器。學生網絡和老師網絡產生中間輸出進行校正,校正層是一個自適應池化的過程,將相同或不同長度的特征向量作為輸入並產生固定長度的新特征。學生網絡與幾個判別器進行對抗訓練,使其產生與老師網絡相似的輸出。
【Adversarial Learning (AL) for Knowledge Distillation】
【Similarity Measurement】首先,我們在給定的數據集上使用交叉熵損失函數預訓練老師網絡,label是one-hot類型的圖片集標注;學生網絡在相同的數據集上進行訓練,使用的label是老師網絡產生的,即soft label。當學生網絡進行訓練時,老師網絡的參數固定,即不進行學習,同時最小化學生網絡輸出和soft label的相似度距離。
作者嘗試了三種距離度量方式,L1、L2和KL-divergence,下文Table 1比較了三種方法的效果。
【Intermediate Alignment】自適應池化:目的是對齊學生網絡和老師網絡的中間輸出,該層與普通的池化層類似,但能對不同的輸入產生相同長度的輸出;由於這個特殊性,我們能將不同老師網絡的輸出池化為與學生相同長度的輸出。中間輸出的損失函數:
自適應池化的過程:
由於采用了多個中間輸出層,所以最終的相似度損失為
【Stacked Discriminators】判別器主要判斷輸入的x是老師還是學生產生的,最大化以下公式的值,同時學生網絡為了盡可能產生於老師相似的輸出,所以追求最小化該公式的值
判別器結構:
多階段判別器(Multi-Stage Discriminators),使用多階段判別器能夠逐漸提煉學生的輸出,如Figure 3所示。最終的對抗損失是多個判別器損失的和
【Joint Training of Similarity and Discriminators】最終的損失
【Multi-Model Ensemble via Adversarial Learning (MEAL)】
【Learning Procedure】為了理解學生網絡的學習的內容,作者使用了兩種形式:①學生老師使用相同的結構;②選擇一種學生網絡的結構,在每次迭代的時候隨機選擇一種網絡結構作為老師。
學習過程分兩個階段:①預訓練幾個老師網絡形成model zoo;②最小化公式(11)的值
【Experiments and Analysis】