轉載請註明出處:https://www.cnblogs.com/White-xzx/git
原文地址:https://arxiv.org/abs/1812.02425
github
Github: https://github.com/AaronHeee/MEAL網絡
若有不許確或錯誤的地方,歡迎交流~函數
本文來自 AAAI 2019, Oral的一篇文章,主要的思想是經過知識蒸餾的方法將不一樣的已訓練的teachers模型,壓縮爲一個簡單的student網絡,來學習多種模型的知識而不用產生額外的測試開銷。做者使用的是基於對抗的學習策略,設計了一個block-wise training loss引導和優化預先定義的student網絡,進行teachers模型知識的蒸餾,並同時提升辨別器網絡(discriminator)對學生和老師提取出的特徵的區分能力。性能
【Abstract】學習
性能優異的模型一般集成多個基準網絡,然而模型的大小和前饋時間限制了這些模型在實際中的應用,尤爲是當擁有較大測試集時。本文提出了基於對抗學習策略的模型壓縮方法MEAL,該方法包含三個重要的優點:測試
①學生網絡和辨別器一塊兒學習知識可以達到比原始模型更好的優化效果;優化
②經過簡單的學生網絡實現更快的前饋速度,同時不下降性能;spa
③學生能夠學習任意結構網絡模型的知識。設計
【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的類似度距離。
做者嘗試了三種距離度量方式,L一、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】