天天看點

Face Model Compression by Distilling Knowledge from Neurons 論文了解引入模型蒸餾技術student network神經元篩選論文實驗思考部分自己的實驗過程

引入

一. 背景

  • 為保證人臉識别技術的精度要求,需要大而複雜的單個或者組合的深度神經網絡實作。
  • 該技術欲遷移至移動終端與嵌入式裝置中。

二. 解決方法

運用模型壓縮技術,用小的網絡去拟合大量資料。

大型 teacher network的知識作為監督,訓練一個小而緊湊的student network,運用到了 domain knowledge。

模型蒸餾技術

一. 《Distilling the Knowledge in a Neural Network》

方法:使用軟化标簽機率(soften label probabilities)表征知識。

問題:簡單的蒸餾網絡不易拟合複雜的初始網絡。

二. 本論文觀點

2.1 方法

使用teacher network的更高隐層top hidden layer的神經元進行知識表征,即:高層神經元的輸出feature作為knowledge,監督student network訓練。

可将此蒸餾視為回歸問題。

2.2 優點

  • 保證小網絡得到的資訊和标簽機率soft target 資訊量相同;
  • 小網絡的得到的監督資訊更加緊湊;
  • 小網絡結構更加緊湊。

2.3 蒸餾實作

2.3.1 前提條件

  • teacher network為已訓練的、高精度單個或者組合的網絡;
  • student network為已設計好網絡結構的、結構簡單的、記憶體占用小的神經網絡;
  • teacher network與student network使用相同資料集,資料集不需要存在類别标簽;
  • teacher network的最高層神經元的feature輸出與student network的最高層神經元的feature輸出維數相同;

2.3.2 蒸餾過程

  1. teacher network:輸入圖檔,得到最高層神經元的圖檔feature輸出;
  2. 将feature傳輸給student network;
  3. student network使用teacher network的featuer輸出作為監督,進行訓練。loss函數見student network章節。
Face Model Compression by Distilling Knowledge from Neurons 論文了解引入模型蒸餾技術student network神經元篩選論文實驗思考部分自己的實驗過程

圖1:蒸餾過程流程圖

2.4 引申:teacher network神經元輸出篩選算法

2.4.1 對象

teacher network的最高層神經元的輸出feature。

2.4.2 神經元的篩選算法

loss function

詳見 神經元篩選 章節

2.4.3 篩選操作

篩選出與人臉識别最為相關的神經元并保留其feature輸出,篩選出不相關的神經元并删除其feature輸出。

2.4.4 篩選結果

  • 直覺改變:減少feature次元;
  • 内在改變:

    減少feature中重複功能的資料;

    減少feature中的噪聲,即于人臉識别無關的資訊;

  • 最終效果:提高feature準确率。

2.5 成果

2.5.1 訓練過程

使用 DeepID2+ 和 DeepID3 網絡作為teacher network,其輸出feature作為監督,訓練預先設計更加簡單的網絡結構的student network。

2.5.2 蒸餾結果

測試條件:使用LFW測試。

測試結果:student network占用空間小(結構更簡單、更緊湊,參數更少), 精度更高,速度更快。

  • 使用 DeepID2+ 的組合作為teacher network;
  • student network比teacher network精度提高0.06%;
  • student netwok隻占用4M的存儲空間,每秒處理照片250張:
  • student network實作teacher network的51.6倍的壓縮;
  • student network實作teacher network的90倍的提速。

student network

Face Model Compression by Distilling Knowledge from Neurons 論文了解引入模型蒸餾技術student network神經元篩選論文實驗思考部分自己的實驗過程

圖2:loss函數

  • M:訓練集共M張圖檔;
  • fi:第i張圖檔從teacher中提取出的特征;
  • W:student模型的參數;
  • g(·):圖檔從送入student network到得到feature的非線性過程。

神經元篩選

一. 對象

teacher network的高隐層神經元。

二. 原因

  • 神經元可能攜帶了大量資訊,包含與人臉識别有關的資訊的同時,也包含了與人臉識别無關的資訊(噪聲)。
  • 經過神經元篩選後留下的神經元的輸出,作為student network的監督。監督資訊越緊湊,訓練的小模型能力越強,可能會比teacher模型有更好的表現。

2.1 人臉特征屬性分類

  • IA屬性 identity-related attributes:性别、種族、五官形狀等;
  • NA屬性 non-related attributes:表情、光照、圖檔品質等;

2.2 神經元功能

2.2.1 功能測試

2.2.1.1 神經元功能
Face Model Compression by Distilling Knowledge from Neurons 論文了解引入模型蒸餾技術student network神經元篩選論文實驗思考部分自己的實驗過程

圖3:神經元功能事例

  • 網絡:T1(DeepID2+)。
  • 神經元: top hidden layer。
  • 黃色:與該神經元相關的屬性。
  • 黑色上标:神經元編号。
2.2.1.2 神經元功能統計
Face Model Compression by Distilling Knowledge from Neurons 論文了解引入模型蒸餾技術student network神經元篩選論文實驗思考部分自己的實驗過程

圖4:神經元功能統計事例

(一)前提條件

  • 選擇the top hidden layer的80個神經元。
  • 将神經元分為四組:IA,NA,IA+NA,inhibit未激活。

(二)結果統計

  • 大部分神經元與IA有關,可以很好的用于人臉分類;
  • 四分之一的神經元與NA,NA+IA有關,學習到與人臉識别無關的特征,也可了解為過拟合現象,比方該神經元與微笑、耳環、口紅有關;
  • 少部分神經元未處于被激活狀态。
2.2.1.3 結論
  • 每個神經元不僅僅與單個屬性相關;
  • 某些神經元與IA屬性、NA屬性同時相關;
  • 少部分神經元與IA屬性、NA屬性同時不相關。

三. 神經元篩選

3.1 标準

模型的精度與泛化能力,是神經元選擇優劣的評估标準。

3.2 目标

  • 篩選與更有區分性的IA屬性相關的神經元,進而得到有用知識。
  • 讓類間距離,即為IA特征更遠;類内距離,即為NA特征更近。

3.3 已有算法

mean field algorithm

Michael I. Jordan, Z. Ghahramani, Tommi S. Jaakkola, and Lawrence K. Saul. An introduction to variational methods for

graphical models. In Machine Learning, vol.37, no.2, 1999.

3.4 篩選過程

3.4.1 神經元選擇過程
  1. 選擇已訓練、有較高人臉識别精度的網絡作為teacher network ;
  2. 在teacher 模型的the top hidden layer選擇神經元。

3.4.2 訓練集資料

Face Model Compression by Distilling Knowledge from Neurons 論文了解引入模型蒸餾技術student network神經元篩選論文實驗思考部分自己的實驗過程

題5:訓練集資料

  • Ii:第i張圖檔。
  • fi:第i張圖檔從teacher中提取出的特征。當teacher 為多個DNN的組合時,fi表示多個DNN的top layers輸出的feature拼接。
  • M:訓練集共M張圖檔。

3.4.3 teacher network

3.4.3.1 the top hidden layer的神經元的表示
Face Model Compression by Distilling Knowledge from Neurons 論文了解引入模型蒸餾技術student network神經元篩選論文實驗思考部分自己的實驗過程

圖6:神經元的表示

yi:yi∈{0,1},0表示未被選擇,1表示選中。

N:the top hidden layer的N個神經元。

3.4.3.2 函數解析

(一)總篩選公式:energy function

Face Model Compression by Distilling Knowledge from Neurons 論文了解引入模型蒸餾技術student network神經元篩選論文實驗思考部分自己的實驗過程

圖7:energy function (loss function)

  • λ:超參數

(二)公式解析:the top hidden layer的單個神經元

Face Model Compression by Distilling Knowledge from Neurons 論文了解引入模型蒸餾技術student network神經元篩選論文實驗思考部分自己的實驗過程

圖8:單個神經元的篩選公式

Face Model Compression by Distilling Knowledge from Neurons 論文了解引入模型蒸餾技術student network神經元篩選論文實驗思考部分自己的實驗過程

圖9:單個神經元的篩選公式解析1

  • 神經元yi的輸出對應向量xi。
  • 目标:某個神經元輸出向量中,關于的IA的值相差很大,關于NA的值相差很小。
    Face Model Compression by Distilling Knowledge from Neurons 論文了解引入模型蒸餾技術student network神經元篩選論文實驗思考部分自己的實驗過程
    圖10:單個神經元的篩選公式解析2

(三)公式解析:the top hidden layer的兩個神經元

Face Model Compression by Distilling Knowledge from Neurons 論文了解引入模型蒸餾技術student network神經元篩選論文實驗思考部分自己的實驗過程

圖11:多個神經元的篩選公式

  • 神經元yi的輸出對應向量xi,神經元yj的輸出對應向量xj。
  • 目标:增大兩個神經元輸出的差異性。差異性越大,loss值越小。
    Face Model Compression by Distilling Knowledge from Neurons 論文了解引入模型蒸餾技術student network神經元篩選論文實驗思考部分自己的實驗過程
    圖12:多個神經元的篩選公式解析

論文實驗

一. 資料集

  • 訓練資料集:CelebFaces+ 與 WDRef

    29w 張人臉圖檔,1.2294w個分類

  • 測試:LFW

二. teacher network

Teahcer-1(T1):DeepID2+

Teacher-2(T2):DeepID3

原因:DeepID2+,DeepID3在LFW上達到很高的精度,模型相對複雜。

Face Model Compression by Distilling Knowledge from Neurons 論文了解引入模型蒸餾技術student network神經元篩選論文實驗思考部分自己的實驗過程

圖13:teacher network網絡結構

三. student network

Face Model Compression by Distilling Knowledge from Neurons 論文了解引入模型蒸餾技術student network神經元篩選論文實驗思考部分自己的實驗過程

圖14:student network網絡結構圖1

Face Model Compression by Distilling Knowledge from Neurons 論文了解引入模型蒸餾技術student network神經元篩選論文實驗思考部分自己的實驗過程

圖15:student network網絡結構圖2

四. 實驗結果

4.1 單網絡模型T1作為teacher network

Face Model Compression by Distilling Knowledge from Neurons 論文了解引入模型蒸餾技術student network神經元篩選論文實驗思考部分自己的實驗過程

圖16:T1作為teacher network 訓練S,最終測試結果對比圖

4.1.1 網絡解釋

  • T1:teacher network DeepID2+。
  • S-1-of-K:student network 使用hard target 訓練。
  • S-soft target:使用《Distilling the Knowledge in a Neural Network》論文中,teacher network 的soft target +資料集hard target方法訓練。
  • S-neurons:使用the top hidden layer的神經元(不篩選)輸出feature,作為标簽訓練的student network。
  • S-selection:使用the top hidden layer的篩選後的神經元輸出feature,作為标簽訓練的student network。

4.1.2 網絡精度

  • S-selection:學習移除了噪聲的T1,精度達到最高。
  • S-1-of-K:使用softmax訓練小網絡,小網絡能力較弱。

結論:

使用選擇後的神經元輸出作為監督,學生網絡的精度要比老師網絡的精度高。

4.1.3 收斂速度

(一)實驗結果統計
Face Model Compression by Distilling Knowledge from Neurons 論文了解引入模型蒸餾技術student network神經元篩選論文實驗思考部分自己的實驗過程

圖17:T1作為teacher network 訓練S,網絡收斂速度對比圖

(二) 網絡分析
  • T1,S-1-of-K,S-soft target:

    每張圖檔,使用softmax計算比例,m=512,n=12294,需要計算 n*m 次。

    Face Model Compression by Distilling Knowledge from Neurons 論文了解引入模型蒸餾技術student network神經元篩選論文實驗思考部分自己的實驗過程
    圖18:softmax 的 loss 計算公式
  • S-neurons:

    每張圖檔,對比兩個向量的512維的歐氏距離。

  • S-selection:

    每張圖檔,對比兩個向量的422維的歐氏距離。

    公式見 ** student network** 章節。

(三) 結論
  • 使用hard target作為監督,大網絡T1比小網絡S-1-of-K收斂快;
  • 使用soft target作為監督,溫度參數t越大,收斂越快。 **S-soft target(t→ +∞) **收斂最快。因為:當t越大,soft target 攜帶更少的0值,更多資訊。
  • S-selection的收斂速度比S-neurons快;
  • S-selection的參數比T1少42倍;
  • S-selection的收斂速度比T1快5倍。

4.2 單網絡模型T2作為teacher network

Face Model Compression by Distilling Knowledge from Neurons 論文了解引入模型蒸餾技術student network神經元篩選論文實驗思考部分自己的實驗過程

圖19:T2作為teacher network 訓練S,最終測試結果對比圖

4.2.1 網絡解釋

  • DeepID3作為teacher network(T2),S作為student network(S-selection);
  • T2的網絡結構為S-selection網絡結構的2倍深度;
  • 對于使用CelebFaces+與 WDRef訓練、已收斂的S-selection網絡,使用LFW資料集fine-tune,得到S-selection+。

4.2.2 網絡精度

  • S-selection的LFW測試的精度比T2低0.15%;

    表明:深度網絡拟合困難。

  • S-selection+的LFW測試的精度比T2高0.1%

    表明:

    • 合适的fine-tune訓練,可以提升網絡精度;
    • 對于S-selection+的人臉識别訓練,為無監督訓練;對于S-selection+的網絡特征提取訓練,為有監督訓練。

4.3 多網絡組合模型

Face Model Compression by Distilling Knowledge from Neurons 論文了解引入模型蒸餾技術student network神經元篩選論文實驗思考部分自己的實驗過程

圖20:T1-6ensemble 作為teacher network 訓練S,最終測試結果對比圖

4.3.1 網絡解釋

  • T1-6ensemble:

    每個T1對應人臉的一個區域:左眼,右眼,鼻子,左邊嘴,右邊嘴,整個臉部區域。

  • S-soft target 網絡,監督标簽使用T1-6ensemble網絡soft target的平均值。
  • S-neurons 使用T1-6ensemble網絡所有feature的輸出,并做拼接。
  • S-selection 使用T1的篩選神經元的6個網絡的feature輸出,并作拼接。
  • S-selection+ 使用使用T1-6ensemble網絡,CelebFaces+與 WDRef訓練,LFW資料集fine-tune。

4.3.2 網絡精度

  • T1-6ensemble,計算比單個T1的最高精度高0.54%;
  • S-selection的精度比T1-6ensemble組合低0.12%;
  • S-selection+的精度比T1-6ensemble組合高0.06%。

表明:

  • 多網絡組合模型拟合困難;
  • 合适的fine-tune可以提升網絡精度。

4.4 不同網絡結構的速率與複雜度測試

網絡結構:T1、T2、T1-6ensemble、S。

4.4.1 測試結果統計

<img src="//upload-images.jianshu.io/upload_images/4148675-445843fea6bc1909.png?imageMogr2/auto-orient/strip%7CimageView2/2/w/1240" _xhe_src="//upload-images.jianshu.io/upload_images/4148675-445843fea6bc1909.png?imageMogr2/auto-orient/strip%7CimageView2/2/w/1240" data-original-src="http://upload-images.jianshu.io/upload_images/4148675-445843fea6bc1909.png?imageMogr2/auto-orient/strip" alt="" 圖21:不同網絡結構的速率與複雜度測試統計圖。"="" style="cursor: zoom-in;">

圖21:不同網絡結構的速率與複雜度測試統計圖。

(a)速度測試統計:不同網絡結構處理每張圖檔的耗時(ms);

(b)網絡壓縮率測試統計:不同網絡結構的參數量。

4.4.2 速度測試

(一)測試條件
  • 測試硬體:Intel Core 2.0GHz CPU(用于模仿無法提供強大GPU計算能力的移動終端或嵌入式裝置);
  • 測試标準:處理每張圖檔耗時(ms)。
(二)測試結果
  • S網絡結構,處理每張圖檔耗時4ms;
  • S的速度是T1的12.5倍;
  • S的速度是T2的130倍;
  • S的速度是T1-6ensemble的90倍(S的精度比T1-6ensemble高0.06%)。

4.4.3 網絡壓縮率測試

(一)測試條件

測試标準:網絡訓練時與測試時的參數量;

  • 訓練參數:學習能力;
  • 測試參數:網絡複雜度。
(二)測試結果
  • S的參數量是T1-6ensemble的51.6×倍(S的精度比T1-6ensemble高0.06%),即為壓縮T1-6ensemble 網絡51.6×倍。
  • S的學習能力是T1-6ensemble的225倍。

思考部分

  1. student network結構加入殘差結構是否可以提升網絡精度;
  2. 在拟合深度teacher network時,可否考慮加寬student network網絡;
  3. 如何篩選teacher network神經元;
  4. 是否有更好的篩選teacher network神經元的loss函數;
  5. 對于student network,可否将teacher network的feature與hard target按比例組成loss;
  6. teacher network 的feature次元範圍控制:512維,256維,或者128維;
  7. 将傳統softmax訓練好的小網絡,通過teacher network的feature作為label進行fine-tune,減少訓練時間,提高訓練精度;
  8. 可否使用GAN來生成student network網絡參數;
  9. 本論文提出的不選擇神經元,得到S-neurons模型的方法,趕腳和GAN的生成網絡很眼熟呢····

···

自己的實驗過程

一. 實驗流程

  1. 準備資料集;
  2. 使用已模組化的高精度大網絡作為teacher network 提取資料特征;
  3. 圖檔、特征預處理;
  4. student network訓練;
  5. 得到student network。

二. 具體細節

2.1 資料準備

  1. 資料集:MsCelebV1-Faces-2R-center 。
  2. 資料量:100w張照片。從495w張圖檔種随機抽取100w張照片。

2.2 teacher network

網絡結構:殘差網絡;

網絡精度:99.6%;

輸出feature:512維;

大小:15M;

單張圖檔正向提取特征:6ms。

2.3 提取資料特征值,預處理

  1. 使用teacher network提取100w條feature。
  2. 100w張圖檔與對應的feature處理為hdf5格式。

2.4 student network

2.4.1 資料

圖檔:MsCelebV1-Faces-2R-center 中随機抽取的100w張圖檔,其都已被teacher network提取feature。

label:100w條512維的feature。

2.4.2 網絡

  1. 修改激活函數:将論文中 relu 改為 prelu ;
  2. 添加PreProcessLayer層:圖檔通過PreProcessLayer層,減去127.5,除以128。
  • hdf5格式不支援單獨對圖檔進行操作;
  • 如果在存儲hdf5時,對圖檔進行預處理(減去127.5,除以128,變為float格式),則hdf5的結構占用存儲空間太大。
  1. 網絡輸出:未篩選神經元,輸出512維;
  2. 梯度下降:momentum。

2.4.3 student loss 初始值

  • teacher network 的特征值 做完歸一化之後 範圍在(-1,1)之間。
  • student network 的特征值初始化為0附近

    計算loss使用歐氏距離 || xt - xs ||^2, caffe 中未 * 0.5 ,是以loss 初始為 1 * batch_size。

2.4.4 結果

  1. 收斂情況(moblieID_00001_iter_96000.caffemodel)
  • 96000次疊代;
  • 學習率:0.00001;
  • 最終驗證集loss:177.093
  1. lfw測試精度:acc: 0.9837 +/- 0.0070;
  2. 單張圖檔平均正向提取特征時間:0.638ms;
  3. 網絡大小:20M(未删除3個全連接配接層)。
  4. 網絡參數個數:

    5166520個參數

    • conv1:(1+4·4)·64

      //1為偏置量

    • conv2:64·(1+3·3)·64

      //第一個64為上一個conv的神經元數目

    • conv3:64·(1+3·3)·64
    • ip1:64·13·11·500+500

      // 64·13 ·11 為減采樣之後的唯獨,第二個500為偏置量

    • ip2:500·500+500

      //第一個500為上一層fc的神經元數目,最後一個500為偏置量

    • ip3:500·512+512

思考:

多次遷移學習是否有值得借鑒的意義?

參考論文:Paying More Attention to Attention:Improving the Performance of Convolutional Neural Networks via Attention Transfer

借鑒原因:

  1. 對于深度學習而言,越高層雖然包含的語義資訊會越多,但是也越是不可控的。是以,單獨使用最後一層的feature map 用于遷移,是否可替換使用網絡不同層次的feature map輸出進行遷移?
  2. 多次遷移這種方法沒有最終确定在哪一層效果會更好,是以如果确定哪一層進行遷移需要對于網絡的了解、實驗、經驗。

作者:W姓大寶

連結:http://www.jianshu.com/p/e02048ea204a

來源:簡書

著作權歸作者所有。商業轉載請聯系作者獲得授權,非商業轉載請注明出處。