趙文忠


摘要??? 人臉識別已經成為計算機視覺領域最熱門的應用之一,在我們身邊,到處都有人臉識別的技術。人臉識別算法主要包含人臉檢測(Face Detection)、人臉對齊(Face Alignment)、人臉特征表征(Feature Representation)。這篇文章將詳細介紹在人臉識別中用到的各種損失函數以及在主要人臉數據集上的測試結果。
【關鍵詞】人臉識別 SoftmaxL-SoftmaxA-SoftmaxCosFaceArcFace
1 引言
人臉識別是基于人的臉部特征信息進行身份識別的一種生物識別技術,由于人臉識別相對于一般的識別問題,存在人臉對比這樣一個需求,這就將人臉識別的主要方向變成了尺度學習問題而并非簡簡單單的分類問題。而近幾年技術上的發展也基本是圍繞損失函數展開,以此在有限的數據集上得到更高的識別精度。
2 損失函數
用于人臉識別的損失函數,從Softmax,Contrastive Loss,Triplet Loss,Center Loss,Norm Face,Large MarginLoss,A-SoftmaxLoss,Coco Loss,以及今年的AM,AAM,InsightFace。這些損失函數在聚類上大致上可以分為下面兩個類:
(1)單純聚類:ContrasitveLoss,Center Loss,NormFace,Coco Loss;
(2)加Margin聚類:TripletLoss,Large Margin Loss,A-SoftmaxLoss,AM,AAM,InsightFace。
在距離度量上可以分為下面兩個類:
(1)歐式距離:Contrastive Loss,CenterLoss,NormFace,Triplet Loss;
(2)Cosine距離/角度距離:Large Margin Loss,A-SoftmaxLoss,Coco Loss,AM,AAM,InsightFace。
可以看到,目前的主要方向,在從歐氏距離往角度距離發展的同時,中間出現了像NormFace,CocoLoss這些進行了特征歸一化,權重歸一化操作的損失函數。
2.1 SoftmaxLoss
Softmax損失函數是Sotfmax激活函數加上CrossEntropy,Softmax的作用是將特征經過線性組合轉化成概率,然后使用CrossEntropy來計算損失。早期深度人臉識別方法,框架為CNN+Softmax,以“超多分類”這樣一種比較難的任務訓練CNN,強迫網絡在第一個FC層形成比較緊湊的,判別力很強的深度人臉特征,之后用于人臉識別。Softmax函數定義如下:
進一步根據交叉熵函數計算每一個樣本i的損失:
y為一個one-hot向量,它只在正確類別上的分量為1,而其他分量都為0。因此損失函數可以進一步轉換為:
從以上可知,取log里面的值就是這組數據正確分類的Softmax值,它占的比重越大,這個樣本的損失也就越小。Softmax損失函數訓練的深度特征,可以有效區分類間差異,把整個人臉空間,按照人的個數進行劃分,保證每個人是可分的。但是對于類內的分布沒有很好的約束,并不能夠有效地學習得到使得類內較為緊湊、類間較離散的特征。而人臉識別要求同人照片之間的距離盡量近,不同人照片之間的距離盡量遠,即同人之間緊湊,不同人之間分離。所以Softmax損失函數并不合適人臉識別任務。所以,我們需要改進SoftmaxLoss。
2.2 ModifiedSoftmaxLoss
我們可以將SoftmaxLoss損失函數進一步細化:
2.3 Large-MarginSoftmaxLoss
LargeMarginSoftmax(L-Softmax)Loss是LargeMargin系列的開創算法,表達式如下:
然后加強分類條件,強制讓對應類別的W和x夾角增加到原來的m倍,ψ(θ)是cos(mθ)的單調函數版本:
L-Softmax由于沒有對權重歸一化,所以它不僅可以從角度上區分不同的類,還能從權重的模(長度)上區分。當m=1時,就是Modified Softmax Loss。m越大,代表對該類的分類要求越高。
L-Softmax Loss與ModifiedSoftmax Loss的不同之處在于L-SoftmaxLoss有兩個分隔的決策平面且決策平面分隔的大小還是與m的大小成正相關,而ModifiedSoftmax Loss兩個不同類的決策平面是同一個。
2.4 Angular SoftmaxLoss
Angular Softmax(A-Softmax)Loss是L-Softmax的改進,就是在L-Softmax Loss的基礎上添加了兩個限制條件||W||=1和b=0,使得預測僅取決于W和x之間的角度。歸一化了權值W,讓訓練更加集中在優化深度特征映射和特征向量角度上,降低樣本數量不均衡問題:
其中9。e[0.7%m],因為在這個范圍之外可能會使得mo,.>8,j≠y(這樣就不屬于分類y;),但cos(m6)>cos(O2)仍可能成立,而我們的Loss方程用的還是cos(O)。為了避免這個問題,我們可以重新設計一個函數來替代cos(m.s),其中定義如下:
這個函數的定義可以使得ψ隨,單調遞減,如果m0O,s馬d>,j≠Jy,那么必有ψ(@yui) 個人認為A-Softmax是基于一個假設:不同的類位于一個單位超球表面的不同區域。從上面也可以知道它的幾何意義是權重所代表的在單位超球表面的點,在訓練的過程中,同一類的輸入映射到表面上會慢慢地向中心點(這里的中心點大部分時候和權重的意義相當)聚集,而到不同類的權重(或者中心點)慢慢地分散開來。m的大小是控制同一類點聚集的程度,從而控制了不同類之間的距離。 A-Softmax Loss在使用時需要注意的一些特性如下: (1)通常情況下,m值越大,學習到的特征區分性更強,但學習難度更大,通常m取4時可以取得較好的效果。 (2)針對二分類問題,m最小值值需滿足:。 (3)針對多分類問題,m最小值需滿足:。 2.5 AdditiveMarginLoss AM-Softmax在A-Softmax的基礎上,乘性margin改成了加性margin,即cos(mθ)變成了cosθ-m,在權值W歸一化的基礎上對特征f也做了歸一化。作者這樣改變之后前向后向傳播變得更加簡單。其中W和f都是歸一化過的,作者在論文中將m=0.35。定義如下: 相比A-Softmax性能有提升,最重要的是訓練難度大幅降低,不需要退火優化。值得注意的是,歸一化是收斂到好的點的保證,同時采用固定尺度因子s=30。到底什么時候需要歸一化什么時候又不需要呢?這實際上依賴于圖片的質量。我們看一個公式如下 其中α就是向量x的模,它說明模值比較小的,會有更大的梯度反向傳播誤差系數,這實際上就相當于難樣本挖掘了。不過,也要注意那些質量非常差的,模值太小可能會造成梯度爆炸的問題。 2.6 Large Margin Cosine Loss Large Margin Cosine Loss(CosineFace)與AM-Softmax完全一樣,同樣的加性margin,同樣的特征歸一化,工作完成比AM-Softmax早。主要做了一下兩點的改進: (1)損失函數的不僅對權重進行了正則化,還對特征進行了正則化。 (2)形式做了稍微的改變,將超參數m由乘法運算變成了減法運算。 CosineFace中新提出的損失函數為LargeMarginCosineLoss(LMCL),表示形式為: 作者在文中與其他幾種損失函數進行了對比,來證明此種損失函數的優勢,以兩鐘情況的類別為例: 如圖1所示,Softmax的決策邊界可以寫成如下的形式,可以看出決策邊界由權值變量和角度的cosine值一起決定,這樣子就導致了,在cosine維度進行度量的時候,兩個類別之間會出現重疊(margin<0)。 而NSLLoss是指權值和特征都進行正則化。這樣子決策邊界就可以寫成如下的形式,從而,在cosine維度進行度量的時候,兩個類別之間有一個明確的決策邊界。但是,由于邊界空間為0(margin=0),導致處于邊緣的情況,很容易出現分類錯誤。 注意,在LMCL中,作者證明了s的范圍,如下所示: 并且,還分別驗證了m的取值和是否正則化特征對網絡的影響。 2.7 Additive Angular Margin Loss Additive Angular Margin Loss(ArcFace)在A-Softmax的基礎上,同樣改用加性margin但形式略有區別,cos(mθ)變成了cos(θ+m),同樣也做了特征歸一化,固定因子s=64。在基于L2正則化權重和特征的角度空間中,直接最大化決策邊界。相比于加性margin和乘性margin,ArcFace能獲得更具有判別能力的特征。 ArcFace提出的監督信號更傾向于角度上的分解,有更好的幾何解析能力,重要的是,在基于L2正則化權重和特征的角度空間中,直接最大化決策邊界。相比于A-Softmax和AM-Softmax,ArcFace能獲得更具有判別能力的特征。 3 實驗結果 表1是不同的損失函數在不同測試集上的確認率。訓練數據集為CASIA-Webface,數據集中有10575個人,494414張照片。網絡結構采用ResNet50。 4 結束語 人臉識別是一個非常復雜的計算任務,在這篇文章中,我們主要介紹、分析了用于訓練人臉識別模型的各種損失函數。它們就像一把尺子,用來度量模型,指導模型訓練。對模型的精度起到舉足輕重的作用。 參考文獻 [1]SunY,ChenY,WangX,et al. Deep learning face representation by joint identification-verification [C]. NIPS,2014. [2]SunY,WangX,Tang X. Deeply learned face representations are sparse, selective, and robust [C].CVPR,2015. [3]SunY,LiangD,WangX,et al. Deepid3: Face recognition with very deep neural networks [J]. arXiv, 2015. [4]LiuW,WenY,YuZ,et al. Large-Margin Softmax Loss for Convolutional Neural Networks [C]. ICML, 2016. [5]SphereFace: Deep Hypersphere Embedding for Face Recognition. Weiyang Liu, YandongWen,ZhidingYu,Mi ngLi,BhikshaRaj,Le Song. ICML 2017. [6]WangF,XiangX,ChengJ,et al. NormFace: L2 Hypersphere Embedding for Face Verification [C]. ACM MM, 2017. [7]LiuW,WenY,YuZ,et al. SphereFace: Deep Hypersphere Embedding for Face Recognition [C].CVPR. 2017. [8]LiuY,LiH,Wang X. Rethinking feature discrimination and polymerization for large-scale recognition [C]. NIPS workshop, 2017. [9]WangF,LiuW,LiuH,et al. Additive Margin Softmax for Face Verification [C]. ICLR 2018 (Workshop). [10]WangH,WangY,ZhouZ,et al. CosFace: Large Margin Cosine Loss for Deep Face Recognition [C]. CVPR, 2018. [11]JiankangDeng,JiaGuo,StefanosZafeiri ou. ArcFace: Additive Angular Margin Loss for Deep Face Recognition [J]. arXiv:1801.07698. (Submitted to IJCV).