🌃

RegularFace: Deep Face Recognition via Exclusive Regularization

Tags
Re-identification
Created
2021/01/31 08:25
Publication
CVPR'19
Rate
3
Summary
(상세 페이지 참고)
Face recognition은 사람의 얼굴을 알아보는, 즉 이 사람이 누구이고 저 사람이 누구인지를 알아내는 태스크이다. 흔한 전략은 얼굴 이미지로부터 CNN을 통해 추출해낸 feature 간의 거리를 가지고 사람의 얼굴을 알아보자는 것인데, 예컨대 feature distance가 특정 treshold 값 이하이면 같은 사람이라고 예측한 것으로 보는 식이다.
이러한 상황에서 feature가 가져야 할 핵심 특성 두 가지가 바로 1) intra-class compactness(동일 인물의 feature들이 최대한 서로 가깝게 위치함)와 2) inter-class separability(서로 다른 인물의 feature들이 서로 멀리 떨어져 있음)이다. 페이퍼가 주장하기로는 최근 face recognition의 많은 연구들이 intra-class compactness를 확보하고자 했지만, 그 동안 inter-class separability에 대한 연구는 활발히 이루어지지 않았다. 따라서 페이퍼에서는 inter-class separability를 확보하기 위한 exclusive regularization method를 제안한다.
막 엄청 관심이 많은 페이퍼는 아니니 새로운 부분인 loss를 위주로 정리한다.

Intra-class Compactness

먼저 intra-class compactness에 대한 최근의 연구 동향에 대해 알아본다. 대표적으로 center loss와 SphereFace 모델에서 제안한 angular softmax loss가 있다.
먼저 center loss는 아주 간단한데, 어떠한 identity를 가진 이미지들의 feature embedding이 그 identity의 center embedding과 가깝도록 L2 loss를 통해 유도한다. 이 때 yiy_i는 sample ii의 identity label을 의미하고, xix_i는 이미지 ii의 feature embedding, cyic_{y_i}는 해당 identity의 center embedding을 의미한다.
Lcenter=12i=1Nxicyi22L_{center} = \frac{1}{2} \sum_{i = 1}^N{ || x_i - c_{y_i} ||^2_2 }
또 angular softmax loss는 말그대로 softmax loss인데, input 값으로 angle을 사용한다고 볼 수 있다. 즉 통상적인 softmax loss는 아래와 같은데, (여기서 WWKK dimension의 feature embedding을 CC class의 사후확률로 mapping하는 행렬이다.)
pc(xi)=exp(WcTxi+bc)j=1Cexp(WjTxi+bj)p_c(x_i) = \frac{ \exp{( W_c^T x_i + b_c )} }{\sum_{j = 1}^C{ \exp{( W_j^T x_i + b_j )} }}
Angular softmax loss는 WjW_jxix_i의 각도를 나타내는 ϕi,j\phi_{i, j}를 이용하여 다음과 같이 구한다.
pc(xi)=exp(xicos(ϕi,c))j=1Cexp(xjcos(ϕi,j))p_c(x_i) = \frac{ \exp{( || x_i || \cos{( \phi_{i, c} )} )} }{\sum_{j = 1}^C{ \exp{( || x_j || \cos{( \phi_{i, j} )} )} }}
한편 SphereFace에서는 decision boundary의 margin을 확보하기 위해 다음과 같이 확장판 angular softmax loss를 사용한다!
pc(xi)=exp(xicos(mϕi,c))exp(xicos(mϕi,c))+jyiCexp(xjcos(ϕi,j))p_c(x_i) = \frac{ \exp{( || x_i || \cos{( m \phi_{i, c} )} )} } {\exp{( || x_i || \cos{( m \phi_{i, c} )} )} + \sum_{j ≠ y_i}^C{ \exp{( || x_j || \cos{( \phi_{i, j} )} )} }}
위와 같은 확장판의 의미를 직관적으로 이해하는 것이 나에게는 꽤 어려운 일이었다. Posterior probability 값에 따른 loss 값의 변화를 생각해보면 이해가 쉬운데, simplicity를 위해 위 식의 (...)\sum{(...)} 부분을 B로, 나머지 부분을 A로 간주하고, cosine 함수는 일단 무시하자. 그러면 loss값의 변화를 나타내는 factor kk를 이용해 standard softmax loss와 확장된 softmax loss의 관계를 다음과 같이 표현할 수 있다.
kAA+B=mAmA+Bk=mA+mBmA+Bk \frac{A}{A + B} = \frac{mA}{mA + B} \\{}\\ k = \frac{mA + mB}{mA + B}
따라서 m=1m = 1일 때 k=1k = 1이어서 확장판이 standard 버전과 같고, m>1m > 1이라면 B가 커질수록 kk 값이 커짐을 관찰할 수 있다. 이를 softmax와 접목해 생각해보면, 사후 확률(posterior probability) AA가 작을수록 (즉 BB가 커질수록) kk 값이 커져 그 probability가 과대평가되고, 사후 확률이 클수록 (즉 AA가 클수록, BB가 작을수록) 사후 확률이 과소평가됨으로써 posterior probability가 평준화됨을 알 수 있다. 즉, softmax 값이 고만고만해진다는 소리이다. 따라서 이러한 확장판은 margin을 확보하는 데 도움이 된다. (참고로 사후 확률이라는 용어는 적합하지 않다. Normalization 되지 않은 사후 확률 정도로 생각해 두자.)

Intra-class Separability

거두절미하고, 페이퍼에서는 특정 class $i$의 intra-class separability를 다음과 같이 평가할 수 있다고 주장한다.
Sepi=maxcosij(φi,j)=maxijWiWjWiWj\text{Sep}_i = \text{maxcos}_{i ≠ j}{(\varphi_{i, j})} \\{}\\ = \text{max}_{i ≠ j}{\frac{ W_i W_j }{ ||W_i|| ||W_j|| }}
말로 설명하자면, class ii와 가장 유사한 (각도를 가진) class jj와의 유사도이다. 따라서 전체적인 intra-class separability를 고려하면, 이러한 sep의 mean과 variance가 둘 다 낮은 것이 이상적이다. 어쨌거나 위를 이용하여 바로 intra-class separability를 위한 loss를 다음과 같이 계산한다.
Lr(W)=1CimaxijWiWjWiWjL_r{(W)} = \frac{1}{C} \sum_i{ \text{max}_{i ≠ j}{\frac{ W_i W_j }{ ||W_i|| || W_j || }} }
최종적인 loss는 위와 같은 intra-class separability loss와 위에서 소개한 inter-class compactness loss 중의 하나를 사용하면 된다. 물론 balance parameter λ\lambda를 이용하여 두 값을 중재한다. 더 자세한 사항들은 페이퍼를 참고하자!
개인적으로 survey 같은 느낌이 나서 나름대로 흥미롭게 읽은 페이퍼이다.
E.O.D.