Approach
訓練和部署階段采用不同的模型形態(tài),可以類比于自然界中很多昆蟲有多種形態(tài)以適應不同階段的需求。具體地,如蝴蝶在幼蟲以蛹的形式存儲能量和營養(yǎng)來更好的發(fā)育,但是到了后期就為了更好的繁殖和移動它就呈現了另外一種完全不一樣的形態(tài)。這種方法可以稱為知識蒸餾,又叫孿生網絡。
所謂模型蒸餾就是將訓練好的復雜模型推廣能力“知識”遷移到一個結構更為簡單的網絡中?;蛘咄ㄟ^簡單的網絡去學習復雜模型中“知識”。大致可以分為兩個階段:
- 原始模型訓練:
- 根據提出的目標問題,設計一個或多個復雜網絡(N1,N2,…,Nt)。
- 收集足夠的訓練數據,按照常規(guī)CNN模型訓練流程,并行的訓練1中的多個網絡得到。得到(M1,M2,…,Mt)
- 精簡模型訓練:
- 根據(N1,N2,…,Nt)設計一個簡單網絡N0。
- 收集簡單模型訓練數據,此處的訓練數據可以是訓練原始網絡的有標簽數據,也可以是額外的無標簽數據。
- 將2中收集到的樣本輸入原始模型(M1,M2,…,Mt),修改原始模型softmax層中溫度參數T為一個較大值如T=20。每一個樣本在每個原始模型可以得到其最終的分類概率向量,選取其中概率至最大即為該模型對于當前樣本的判定結果。對于t個原始模型就可以t概率向量。然后對t概率向量求取均值作為當前樣本最后的概率輸出向量,記為soft_target,保存。

- 標簽融合2中收集到的數據定義為hard_target,有標簽數據的hard_target取值為其標簽值1,無標簽數據hard_taret取值為0。Target = ahard_target + bsoft_target(a+b=1)。Target最終作為訓練數據的標簽去訓練精簡模型。參數a,b是用于控制標簽融合權重的。
- 設置精簡模型softmax層溫度參數與原始復雜模型產生Soft-target時所采用的溫度,按照常規(guī)模型訓練精簡網絡模型。
- 部署時將精簡模型中的softmax溫度參數重置為1,即采用最原始的softmax

Experiment
- Mnist

- Speech Recognition

References:
https://zhuanlan.zhihu.com/p/24337627