蒸餾法——人臉識別

1,Model Distillation with Knowledge Transfer from Face Classification to Alignment and Verification

1)初始化策略:

1.1)使用softmax損失先進行預訓練優化,

2) 對於非分類任務的蒸餾法損失函數如下所示:

其中第一項是特定任務的損失函數,第三項是特定任務的蒸餾損失項,第二項是原始hinton論文中的softmax損失,

對齊任務:

人臉對齊主要是對每張人臉圖像定位出5個關鍵點的位置,所以通常人臉對齊是迴歸任務,因此,訓練神經網絡使用下面的歐式距離損失函數,Rt是教師網絡的迴歸預測層,Pt是目標預測的soft概率,另外一個Kt可以是迴歸預測層的前一個隱層

最終的目標損失爲:

人臉verifacation:

教師網絡的訓練使用triplet損失:實驗如下圖所示:在隨機初始化的情形下,使用soft目標得到了最好的性能

對於少量標籤的訓練集CASIA-WebFace,學生網絡可能超越教師網絡,比如學生網絡98.2,教師網絡97.67%對於MS-Celeb-1M,學生網絡無法超越教師網絡,沒有任何學生網絡超越教師網絡99.11%

 

2, Face Model Compression by Distilling Knowledge from Neurons

通過神經元選擇策略訓練學生網絡,教師網絡最頂層最有代表力的神經元,採用這些有代表力神經元對應的特徵訓練學生網絡

下面公式的f是從教師模型中得到的,I是學生網絡的輸入圖像,W是學生網絡的一系列參數

下面介紹如何獲取fi,在一個全連接的graph上,每個節點代表一個神經元,每條邊表示這一對神經元的關係,每個節點都有一個二元潛在變量,{0,1}分別代表該神經元是否被選擇,給定N個神經元的圖,

上面公式前後兩部分分別代表選擇的神經元i的一元勢函數和神經元i、j的二元勢函數,

f是懲罰函數,xi代表神經元i擁有判別力的程度,二元勢函數代表神經元之間的相似性,通過最小化損失函數希望xi和xj差異越大越好,綜上,希望選擇的神經元,自己具有好的判別力,同時和別的神經元差異越大越好(相關性越小越好);

3,Low-resolution Face Recognition in the Wild via Selective Knowledge Distillation

識別人臉分辨率32*32,模型大小0.15mb, cpu每秒418張人臉,gpu上每秒9433張。

低分辨率人臉識別模型現在主要有兩大類,一類是hallucination類,另一類是embedding,其中前者的方法有Jian[9, Simultaneous hallucination and recognition of low-resolution faces based on singular value decomposition]發現同一個人臉圖像在不同分辨率下的奇異值有線性關係,所以先對人臉特徵進行svd分解得到高分辨率和低分辨率圖像之間的映射關係;embedding方法直接得到低分辨率圖像的特徵, Ren[12]提出了kernel方法來將不同分辨率的人臉圖像映射到無窮子空間,總結,embedding方法就是將高分辨率人臉的知識遷移到低分辨率上;

教師模型使用訓練好的vggface或者vggface2,教師模型的訓練數據未知。

學生網絡的目的是識別低分辨率的人臉,人臉輸入大小是32*32;學生網絡學習的是大模型的1*1*D層,D等於教師模型的輸出人臉特徵,mimic層可以用來和教師網絡的特徵層近似,mimic層一般需要上千的神經元,但是人臉特徵不要這麼高的維度,所以在mimic層之後會有idenetity層,可以是256或者128等用於進行人臉特徵表示,indentity之後才接softmax。

由於並不是訓練集中所有的人臉都是對蒸餾有意義的,所以從教師stream裏選擇最具有代表性的人臉,這些有代表性的人臉具有小的類間相似度,和大的類內相似度,(就是某個人的某張照片和別人長得很像,但是和自己的其他照片並不像)。爲了達到這個目的,將蒸餾問題作爲一個圖上的前向推理過程,其中節點代表人臉,邊代表關係,但是直接建模圖中節點和邊太多,所以作者選擇了每個人臉類別的中心節點,下面公式中f代表每個人臉向量,u代表該人的中心向量,u的計算就是該類別人臉所有特徵的平均

上面公式中的a爲長度爲所有人臉數的向量,值爲1代表該人臉特徵爲代表性的,其他爲0;d(fi,uc)代表當前人臉特徵和別的人臉中心cos距離,所以公式前半部分表示選擇最具有代表性的人臉和其他類的人臉距離很小, 後半部分的權重參數是個負數,所以第二項代表同一類的兩個人臉向量d(fi,fj)要越大越好;綜上上面公式說明最具有代表性的人臉選擇準則:和別的人臉中心距離近,並且和自己同類的人臉距離遠。

上面公式可以用graph-cut算法求解,可以直接在教師網絡得出的訓練集的人臉特徵中挖掘得到有代表性的人臉。

所以蒸餾法中學生網絡主要做這幾件事:1)通過對有代表性的人臉和教師網絡迴歸來訓練學生網絡;2)從低分辨率的人臉中挖掘未知的人臉線索,所以學生網絡的訓練使用如下的目標損失:

上面公式中第一項是分類損失,是基於所有低分辨率人臉,第二項是蒸餾損失,但是隻是學生網絡到mimic層的結果和教師網絡蒸餾。

公式3中隨着權重lamda的增大,可以有效的剔除掉噪聲樣本,

這些噪聲樣本中有遮擋,側臉,光線等問題,教師網絡學習的並不好,所以這些樣本需要被捨棄掉,所以本文的方法在找到有代表性的人臉的同時還會捨棄掉一些不好的訓練樣本,避免教師網絡對學生網絡產生誤導。

 

 

 

 

 

 

 

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章