用於判別式人臉驗證的L2-約束softmax損失

机器之心分析师發表於2018-08-02

人臉識別任務中常用的 softmax 損失存在一些缺陷,為此,馬里蘭大學帕克分校的研究者提出了一種改進方法:L2-約束的 softmax 損失;並取得了優於標準 softmax 的表現。機器之心技術分析師對該研究進行了解讀,本文為解讀的中文版。

論文地址:https://arxiv.org/abs/1703.09507

英文解讀:https://syncedreview.com/2017/06/21/l2-constrained-softmax-loss-for-discriminative-face-verification/

用於判別式人臉驗證的L2-約束softmax損失

引言

CNN 近來取得了很大的成功,人臉識別也受益匪淺。人臉識別的一個基準包括一個序列網路和一個 softmax 標準。在這篇論文中,研究者分析了 softmax 損失的一些劣勢,然後提出了一種基於約束條件的 softmax 損失,即 L2 softmax 損失。

softmax 損失存在的問題

softmax 損失已經成為 TensorFlow、Torch 和 Caffe 等很多數學工具的標準內建損失函式之一。該函式主要用在分類任務中,既有優點,也當然有缺點。

softmax 損失的優點包括:

  1. 有效地分離多個類別
  2. 相比於對比損失(contrastive loss)或三重損失(triplet loss),在批選擇上沒有限制
  3. 容易實現

而這篇論文主要關注的缺點則包括:

  1. 如果類別過多,那麼在記憶體匹配上會出現問題(這是個常見問題)
  2. 由於其最大化條件機率,所以它很適合高質量影像(如下圖上一行)。但是,它會忽略訓練 minibatch 中的罕見困難影像(如下圖下一行).

用於判別式人臉驗證的L2-約束softmax損失

用於判別式人臉驗證的L2-約束softmax損失

上面的第一個缺點是很棘手的,除非使用取樣的 softmax 來解決。但對於第二個缺點,研究者提出了一種有界約束來降低其負面影響,並且導致更加關注相對困難的樣本。他們將其稱為 L2-softmax 約束,而且他們使用了一個定製的 L2 歸一化層和一個縮放層(scaling layer)來建模這種約束。我們將在下一節討論。

L2-softmax 損失

因為研究者並不是想提出中心損失(center loss [1])那樣的輔助損失,所以他們直接提出了一個單一的順序網路——“一損失系統”,這意味著 L2-softmax 損失可直接替代標準的 softmax 損失,如下式所示:

用於判別式人臉驗證的L2-約束softmax損失

這就是 L2-softmax 損失的整體目標,其中:

  • x_i 是規模為 M 的 mini-batch 內的一張輸入影像
  • y_i 是第 i 個目標
  • f(x_i) 是最後的全連線層之前的 d 維特徵描述量
  • C 是類別的數量
  • W 和 b 是網路中可訓練的權重和偏差

上面的第一個公式是普通的 softmax 損失公式,第二個公式是約束公式。α 是最有意思的一項:用作所有特徵向量的一個範數約束。好在其僅為網路引入了單個縮放引數,所以不會影響整體的訓練速度。

為什麼要為網路新增一個 L2 範數約束?你可以這樣看:其工作是更多地關注“壞”樣本(有更多光照變化、視角變化等)。然後,好特徵和壞特徵都會被固定在一個超球面上,而且由於 L2 範數,它們會得到相似的關注度。對於沒有約束的環境而言,給所有樣本平均化的關注是極其重要的。當它能很好地泛化到質量較差的樣本上時,它就可被視為為 softmax 分類器降低了非常好的樣本的相對重要性。如果這個過程在人臉驗證問題中實現,那麼這就能強化驗證訊號——透過迫使同一類別的影像在這個歸一化特徵空間中更接近彼此,不同類別的影像距離更遠,這樣正例對和負例對之間的邊界將變得更大。

用於判別式人臉驗證的L2-約束softmax損失上圖給出了使用不同損失的聚類結果:(a)softmax 損失,(b)L2-softmax 損失。與圖(a)相比,圖(b)中的類別方差更小,且圖(b)中的特徵的幅度受到了限制。

用於判別式人臉驗證的L2-約束softmax損失

如上圖所示,研究者使用了兩個層來建模這種約束:一個 L2 歸一化層和一個縮放層。基本而言,下面的約束等式

用於判別式人臉驗證的L2-約束softmax損失

就等於用於判別式人臉驗證的L2-約束softmax損失

其分別對應於這兩層所完成的工作(只是建模這個約束等式)。L2 歸一化層將輸入特徵向量 x 歸一化成單位向量 y。然後縮放層根據引數 α 將輸入單元向量 y 按固定尺度縮放。該網路中只引入了一個縮放引數,這個引數可以訓練得到,也可人工設定。

對於梯度,應當根據 α(對於可訓練的 α)計算梯度,以及根據輸入 x 計算梯度。

用於判別式人臉驗證的L2-約束softmax損失

上面兩個模組都是完全可微分的,而且可以被整合進一個端到端的訓練網路中。之後的等式是考慮了 α 和輸入特徵向量 x 的梯度。

實驗和結果

其訓練使用了 L2-softmax 損失,並且基於兩個不同的資料集。一個資料集被稱為 MS-small,包含 50 萬張人臉影像,分為 13403 個類別。另一個資料集被稱為 MS-large,包含 370 萬張人臉影像,分為 58207 個類別。研究者在 L2-softmax 損失和標準 softmax 損失之間做了大量比較試驗,還在 IJB-A、LFW 和 YTF 這三個流行的人臉驗證資料集上進行了評估。結果 L2-softmax 損失的表現優於標準的 softmax 損失。

在 IJB-A 上的結果

IJB-A(IARPA Janus Benchmark A)資料集包含 5399 張靜態影像和 20414 個影片幀,包含不同視角、解析度和光照變化的極端環境。

用於判別式人臉驗證的L2-約束softmax損失

從上表可以看到,不管 α 是可訓練引數還是人工固定的引數,基於 L2 約束 softmax 的損失總是優於 softmax 損失,尤其是 FAR 較小時。舉個例子,如果我們看 TAR@FAR = 0.0001 這一列(即表格中第一列資料),可以看到 L2-softmax 顯著優於 softmax,這意味著對於某些極其困難的樣本,L2-softmax 確實能關注到它們,這樣該系統就能從這些困難樣本中學習了。因此,給定不同的 FAR,L2-softmax 損失的 TAR 波動小於 softmax 損失。

在 LFW 上的結果

LFW(Labeled-face in the wild)資料集包含 13233 張從網上收集的正面人臉影像,來自 5749 個不同身份。

用於判別式人臉驗證的L2-約束softmax損失

如上圖所示,對於不同的 α,當其大於一個閾值(比如 8)時,L2-softmax(紅線)損失的驗證準確度總是優於 softmax 損失(綠線);而當使用固定的 α=16 時,能得到 98.82% 的最佳準確度。注意:

  1. 系統學習到的 α(40.7)依然優於純 softmax(98.02%)。
  2. 如果 L2 約束過於嚴格,例如將 α 固定為 1 或 4,我們看到準確度會顯著降低。原因是具有小半徑(α)的超球面整體而言在來自同樣類別的嵌入特徵上只有有限的表面積,而那些來自不同類別的嵌入特徵又相隔很遠。因此該系統的區分能力將不及“再 soft 一點”的約束。

在 YTF 上的結果

YTF(YouTube Face in the Video)包含來自 1595 個不同的人的 3425 段影片,平均長度為每段影片 181.3 幀。其評估標準設定與 LFW 評估一樣。

用於判別式人臉驗證的L2-約束softmax損失

這裡,L2-softmax 在 YTF 資料集評估上的結果為 95.54%,優於 softmax 的 93.82%;同樣,這是由於 L2-softmax 更為關注影片內更困難的幀。

分析師簡評


在這篇論文中,研究者為判別式特徵學習在標準 softmax 損失上新增了一個有效的 L2 約束。其核心思想是透過在一個固定半徑的超球面上強制使用特徵,使得大幅度特徵的相對重要性變得更小,小幅度特徵則變得更大,從而讓系統有可能在所有樣本上更平衡地分配關注,進而讓罕見困難樣本有“更大權重”。這種技巧所帶來的整體效果是極大提升系統在極端無約束環境中的識別效能。仍然還有待改進的一點是記憶體擬合問題。因為在這篇論文中,當在處理 MS-large 資料集時,他們使用了一個帶有 58207 個物件的 softmax,這確實需要考慮記憶體擬合問題。在我個人看來,我還希望能嘗試某種隨機方法來學習取樣的 softmax 分類器。

參考文獻

[1] Y. Wen, K. Zhang, Z. Li, and Y. Qiao. A discrimina- tive feature learning approach for deep face recognition. In European Conference on Computer Vision, pages 499–515. Springer, 2016.

相關文章