論文閱讀筆記:ArcFace: Additive Angular Margin Loss for Deep Face Recognition
- 1 背景
- 2 創新點
- 3 方法
- 4 模塊
- 4.1 Softmax
- 4.2 權重歸一化
- 4.3 乘性角度間隔
- 4.4 特征歸一化
- 4.5 加性余弦間隔
- 4.6 加性角度間隔
- 4.7 二值化情況下的比較
- 4.8 目標Logit分析
- 5 效果
- 5.1 消融實驗
- 5.2 和SOTA方法對比
論文:https://arxiv.org/pdf/1801.07698
代碼:https://github.com/deepinsight/insightface
1 背景
通過深度卷積網絡嵌入的人臉表示被認為是目前最先進的人臉驗證、人臉聚類和人臉識別方法。深度卷積網絡負責將人臉圖像(通常經過姿態歸一化步驟)映射為嵌入特征向量,使得同一個人的特征具有較小的距離,而不同個體的特征具有相當大的距離。
通過深度卷積網絡嵌入的各種人臉識別方法在三個主要屬性上是不同的。
第一個屬性是用于訓練模型的訓練數據。雖然公開可用的訓練數據有大量的ID,但它們存在注釋噪聲和長尾分布。由于在訓練數據規模上存在數量級上的差異,來自工業界的人臉識別模型的性能要遠遠優于來自學術界的模型。訓練數據的差異也使得一些深度人臉識別結果不完全具有可重復性。
第二個屬性是網絡架構和設置。高容量深度卷積網絡,如Resnet和Inception-ResNet可以獲得比VGG和Inception V1更好的表現。不同的深度人臉識別應用在速度和精度之間的均衡是不同的。對于移動設備上的人臉驗證,實時的運行速度和緊湊的模型尺寸至關重要,對于十億級別的安防系統,高精度和效率同等重要。
第三個屬性是損失函數的設計。
-
基于歐式間隔的損失。一個Softmax分類層在一組已知的ID上訓練,然后從網絡的中間層提取特征向量,并用于在訓練集ID之外的泛化識別。中心損失,范圍損失,間隔損失等通過增加額外的懲罰來壓縮類內差距或增加類間差距來提高識別率,但都是結合Softmax來訓練識別模型。然而,當身份數量增加到百萬級別時,基于分類的方法在分類層上 承受這巨大的GPU內存小號,并且需要為每個身份提供平衡和充足的訓練數據。對比損失和三元組損失使用了成對訓練策略。對比損失函數由正對和負對組成。損失函數的梯度拉攏正對,推開負對。三元組損失最小化錨與正樣本之間的距離,最大化錨與來自不同身份的負樣本之間的距離。然而,由于選擇有效的訓練樣本,對比損失和三元組損失的訓練過程非常困難。
-
基于角度和余弦間隔的損失。L-Softmax損失通過為每個身份添加乘性角度約束來提高特征區分度。SphereFace c o s ( m θ ) cos(m\theta) cos(mθ) 將L-Softmax應用于權值歸一化的深度人臉識別。由于余弦函數的非單調性,在SphereFace中應用分段函數來保證單調性。在SphereFace的訓練過程中,結合了Softmax損失,以方便和保證收斂。為了克服SphereFace的優化難度,加性余間隔際 c o s ( θ ) ? m cos(\theta)-m cos(θ)?m 將角間隔際移入余弦空間。加性余間隔際的實現和優化比SphereFace容易很多。與基于歐間隔際的損失相比,基于角和余間隔際的損失顯式地增加了對超球面體流形的判別性約束,這與人臉位于流形上的先驗是內在匹配的。
眾所周知,數據、網絡和損失這3個屬性對人臉識別模型的性能有著從高到低的影響。
2 創新點
在本文中,作者從上述的三個屬性為提高深度人臉識別做出貢獻。
-
作者以自動和手動兩種方式精細了訓練數據和測試數據。
-
本文提出的網絡結構在年齡和姿態的巨大變化下仍然具有魯棒性。并探索了速度和精度之間的權衡
-
作者提出了一種新的損失函數,加性角度間隔(ArcFace),用于學習高判別性的特征,以實現魯棒的人臉識別。
3 方法
如圖1所示,所提出的損失函數 c o s ( θ + m ) cos(\theta+m) cos(θ+m) 直接基于L2歸一化權重和特征在角度(弧度)空間中最大化決策邊界。
4 模塊
4.1 Softmax
應用最廣泛的分類損失函數Softmax loss如下:
其中 x i ∈ R d x_i∈R^d xi?∈Rd 表示第 i i i 個樣本的深層特征,屬于第 y i y_i yi? 類。本文將特征維數 d d d 設置為512。 W j ∈ R d W_j∈R^d Wj?∈Rd 表示最后一個全連接層中權重 W ∈ R d × n W∈R^{d×n} W∈Rd×n 的第 j j j 列, b b b 為偏差項。批次大小和類別數分別為 m m m 和 n n n。傳統的Softmax損失被應用于深度人臉識別。然而,Softmax損失函數沒有顯式地優化特征,使其對正樣本對具有較高的相似度得分,對負樣本對具有較低的相似度得分,從而導致性能較差。
4.2 權重歸一化
為了簡單起見,通常將固定偏差 b j = 0 b_j=0 bj?=0 。然而,對目標logit做出如下變換:
然后,通過L2標準化來固定 ∣ ∣ W j = 1 ∣ ∣ ||W_j=1|| ∣∣Wj?=1∣∣ ,這使得預測結果只依賴特征向量和權重之間的夾角。
在SphereFace的實驗中,L2權重歸一化對性能的提升不大。
4.3 乘性角度間隔
在SphereFace中,角度間隔 m m m 是通過角度上的乘法引入的:
其中 θ y i ∈ [ 0 , π / m ] \theta_{y_i}∈[0,\pi/m] θyi??∈[0,π/m]。為了消除這個限制,用分段單調函數 ψ ( θ y i ) \psi(\theta_{y_i}) ψ(θyi??) 代替 c o s ( m θ y i ) cos(m\theta_{y_i}) cos(mθyi??), ShereFace的表達式為:
其中 ψ ( θ y i ) = ( ? 1 ) k c o s ( m θ y i ) ? 2 k , θ y i ∈ [ k π m , ( k + 1 ) π m ] , k ∈ [ 0 , m ? 1 ] , m ≥ 1 \psi(\theta_{y_i})=(-1)^kcos(m\theta_{y_i})-2k,\theta_{y_i}∈[\frac{k\pi}{m},\frac{(k+1)\pi}{m}],k∈[0,m-1],m≥1 ψ(θyi??)=(?1)kcos(mθyi??)?2k,θyi??∈[mkπ?,m(k+1)π?],k∈[0,m?1],m≥1 是控制角間隔際大小的整數。然而,SphereFace的實現過程中,為了保證訓練的收斂性,引入了Softmax損失監督,權重由一個動態的超參數 λ \lambda λ 控制。加上額外的Softmax損失后, ψ ( θ y i ) \psi(\theta_{y_i}) ψ(θyi??)
實際上為:
其中 λ \lambda λ 是一個額外的超參數,開始設置為1000,隨著訓練過程減小到5,以便每個類的角度空間更加緊湊。這種額外的動態超參數 λ \lambda λ 使得訓練變得相對棘手。
這里的符號有點亂。 Σ \Sigma Σ 處的 m m m 前文指出是batch size。 c o s cos cos 處的 m m m 是角間隔際。
SphereFace使用角度間隔,使得同類樣本的角度更小,不同類樣本的角度更大。對于同類樣本,當 m > 1 m>1 m>1 時 c o s ? ( m θ y i ) cos?(mθ_{yi}) cos?(mθyi?) 相比于 c o s ( θ y i ) cos(θ_{yi}) cos(θyi?) 更小,從而產生更大的損失迫使 θ y i θ_{yi} θyi? 變小來增加同類特征相似度。在超球面上,角度間隔 m m m 相當于在決策邊界上增加了一個額外的裕量,使得分類邊界更加嚴格。
4.4 特征歸一化
特征歸一化被廣泛應用于人臉驗證,特征和權重歸一化背后的直觀解釋是去除徑向變化,并推動每個特征分布在超球流形上。作者通過L2歸一化和縮放 ∣ ∣ x i ∣ ∣ ||x_i|| ∣∣xi?∣∣ 到 s s s 來固定 ∣ ∣ x i ∣ ∣ ||x_i|| ∣∣xi?∣∣,其中 s s s 是超球半徑。本文采用 s = 64 s=64 s=64 進行人臉識別實驗。基于特征和權重歸一化,我們可以得到 W j T x i = c o s θ j W_j^Tx_i=cos\theta_j WjT?xi?=cosθj?。
如果將特征歸一化應用到SphereFace中,我們可以得到歸一化的SphereFace,記為SphereFace-FNorm:
直接歸一化后,梯度可能過小,導致訓練速度變慢甚至停滯,引入縮放系數 s s s 可以增大梯度,保證訓練穩定性。
4.5 加性余弦間隔
在加性余弦間隔中,角度間隔被移到 c o s θ cos \theta cosθ 的外側。因此他們提出角度間隔損失:
余弦間隔 m m m 設置為0.35。相比與SphereFace,加性余弦間隔(Cosine-Face)有三個優點:
-
非常容易實現,無需復雜的超參
-
在沒有Softmax監督的情況下,更加清晰,能夠收斂
-
性能提升明顯
c o s θ y i cos\theta_{y_i} cosθyi?? 需要大于 m m m 才能保證相似度為正,從而拉近了同類別特征。
4.6 加性角度間隔
雖然加性余弦間隔具有余弦空間到角度空間的一一對應關系,但這兩種間隔之間仍然存在差異。事實上,與余弦間隔相比,角度間隔具有更明確的幾何意義,角度空間中的間隔對應于超球面流形上的弧距離。
本文在 c o s θ cos \theta cosθ 內增加了一個間隔 m m m。當 θ ∈ [ 0 , π ? m ] \theta∈[0,\pi-m] θ∈[0,π?m] 時, c o s ( θ + m ) < c o s ( θ ) cos(\theta+m)<cos(\theta) cos(θ+m)<cos(θ) ,因此改約束對分類更加嚴格,提出的ArcFace定義為:
如果將提出的加性角度間隔 c o s ( m + θ ) cos(m+\theta) cos(m+θ) 展開,則 c o s ( θ + m ) = c o s θ c o s m ? s i n θ s i n m cos(\theta+m)=cos\theta cosm-sin\theta sinm cos(θ+m)=cosθcosm?sinθsinm,與加性余弦間隔 c o s ( θ ) ? m cos(\theta)-m cos(θ)?m 相比,本文提出的 ArcFace 類似,但由于 s i n θ sin \theta sinθ 的緣故,間隔是動態的。
在圖2中,作者對所提出的ArcFace進行了說明。ArcFace不僅可以壓縮特征區域,還可以對應超球面上的測地距離。
4.7 二值化情況下的比較
為了更好的理解從Softmax到ArcFace的過程,作者在表1和圖3中給出了二分類情況下的決策邊界。基于權重和特征歸一化,這些方法之間的區別在于把間隔放在了哪里。
4.8 目標Logit分析
為了研究為什么SphereFace,CosineFace和ArcFace可以提高人臉識別性能,作者分析了訓練過程中的目標 logit 曲線和 θ \theta θ 分布。
如圖4(a)中,作者繪制了Softmax,SphereFace,CosineFace和ArcFace的logit曲線。對于SphereFace,最佳設置為 m = 4 , λ = 5 m=4,\lambda=5 m=4,λ=5,與 m = 1.5 , λ = 0 m=1.5,\lambda=0 m=1.5,λ=0 的曲線類似。然而,SphereFace的實現要求 m m m 為整數。當嘗試最小乘法間隔, m = 2 m = 2 m=2 和 λ = 0 λ = 0 λ=0 時,訓練不能收斂。因此,從Softmax中略微減小目標logit曲線,可以增加訓練難度,提高性能,但減小過多會導致訓練發散。
CosineFace和ArcFace都遵循了這一觀點。從圖4(a)中可以看出,CosineFace沿著 y y y 軸的負方向移動目標logit曲線,而ArcFace沿著 x x x 軸的負方向移動目標logit曲線。現在我們可以很容易的理解從Softmax到CosineFace和ArcFace的性能提升。
這里的移動是相較于softmax的目標logits曲線來看的。
對于邊界 m = 0.5 m = 0.5 m=0.5 的ArcFace,當 θ ∈ [ 0 、 180 ° ] θ∈[ 0、180 °] θ∈[0、180°] 時,目標logit曲線不是單調遞減的。事實上,當 θ > 151.35 ° θ > 151.35 ° θ>151.35° 時,目標logit曲線上升。然而,如圖4 ( c )所示,當從隨機初始網絡開始時, θ θ θ 具有高斯分布,其中心位于 90 ° 90 ° 90°,最大角度低于 105 ° 105 ° 105°。ArcFace的增加間隔在訓練過程中幾乎從未達到。因此,不需要對此進行明確的處理。
這里是在 θ ∈ [ π ? m , π ] \theta∈[\pi-m,\pi] θ∈[π?m,π] 的情況。
在圖4 ( c )中展示了CosineFace和ArcFace在訓練開始、中間和結束三個階段的 θ θ θ 分布。分布中心由 90 ° 90 ° 90° 逐漸向 35 ° ? 40 ° 35°-40° 35°?40° 移動。在圖4 ( a )中,可以發現ArcFace的目標logit曲線在 30 ° ? 90 ° 30° - 90° 30°?90° 之間低于CosineFace的目標logit曲線。因此,所提出的ArcFace在該區間內比CosineFace施加了更嚴格的邊距懲罰。
在圖4 ( b )中展示了Softmax,CosineFace和ArcFace在訓練批次上估計的目標logit收斂曲線。我們還可以發現,在開始時,ArcFace的邊距懲罰比CosineFace重,因為紅色的點線比藍色的點線更低。在訓練結束時,ArcFace比CosineFace收斂得更好,因為 θ θ θ 的直方圖在左邊(圖4(c )),目標logit收斂曲線更高(圖4(b))。從圖4 (c )中,我們可以發現在訓練結束時,幾乎所有的 θ θ θ 都小于 60 ° 60 ° 60°。
該域之外的樣本是最難的樣本,也是訓練數據集的噪聲樣本。即使CosineFace在 θ < 30 ° θ < 30° θ<30°時施加了更嚴格的邊界懲罰(圖4(a)),在訓練結束時也只有很少部分 θ \theta θ 達到了這個域圖4 ( c ) )。因此,我們也可以理解為何SphereFace在這一部分中即使有比較小的余量也能獲得非常好的性能。
總之,當 θ ∈ [ 60 ° 、 90 ° ] θ∈[ 60°、90°] θ∈[60°、90°] 時,添加過多的間隔懲罰可能會導致訓練發散,例如. Sphere Face ( m = 2 , λ = 0 m = 2 , λ = 0 m=2,λ=0 )。當 θ ∈ [ 30 ° , 60 ° ] θ∈[ 30 ° , 60 °] θ∈[30°,60°] 時增加間隔可以潛在地提高性能,因為這一部分對應于最有效的半難的負樣本。當 θ < 30 ° θ < 30 ° θ<30° 時,增加間隔并不能明顯改善性能,因為這段時間對應的是最簡單的樣本。當我們回到圖4(a)并對 [ 30 ° , 60 ° ] [ 30 ° , 60 °] [30°,60°] 之間的曲線進行排序時,我們可以理解為什么在它們的最佳參數設置下,性能可以從Softmax,SphereFace,CosineFace到ArcFace提高。注意,這里的 30 ° 30 ° 30° 和 60 ° 60 ° 60° 分別為容易和困難訓練樣本的粗略估計閾值。
5 效果
5.1 消融實驗
當使用conv3 × 3和step = 1作為第一個卷積層時,網絡輸出為7 × 7。相比之下,如果使用conv7 × 7和step = 2作為第一個卷積層,網絡輸出僅為3 × 3。從表2中可以明顯看出,在訓練過程中選擇較大的特征圖可以獲得更高的驗證精度,對應SE-LResNet50E。
網絡結構設置實驗,多種設置如下:
-
Option-A:使用全局池化層( GP )
-
Option-B:在GP后使用一個全連接( FC )層
-
Option-C:在GP后使用FC -批標準化( BN )
-
Option-D:在GP后使用FC - BN -參數化校正線性單元( PReLu)
-
Option-E:在最后一個卷積層后使用BN - Dropout - FC - BN
權重衰減值實驗效果。
角度間隔 m m m 的消融實驗。
不同的損失的效果對比。
不同backbone的消融實驗。
5.2 和SOTA方法對比
通過使用Triplet Loss微調后的效果。