🎯

SphereFace

Tags
Re-identification
Created
2021/01/05 07:54
Publication
CVPR'17
Rate
3.5
Summary
Face recognition task를 학습하기 위한 기존의 Softmax loss를 feature의 각거리(cosine distance)로 재해석하여 변형한 페이퍼이다. (상세 페이지 참고)
FR(Face Recognition) 태스크는 사람의 얼굴을 알아보는 태스크인데, 주어진 얼굴을 특정 identity로 mapping하는 identification 태스크와 두 얼굴이 같은 사람인지 다른 사람인지를 판별하는 verification 태스크로 나뉠 수 있다. 이러한 FR 태스크의 핵심은 사람의 얼굴 이미지를 feature vector로 mapping하는 것인데, 궁극적인 목표는 intra-class distance(즉 서로 같은 identity들 간의 feature vector의 거리)의 maximum value가 inter-class(즉 서로 다른 identity들 간의 feature vector의 거리) distance의 minimum value보다 작아지도록 하는 mapping function을 찾아내는 것이다.
요즘에는 당연히도 CNN이 이러한 mapping function의 역할을 하며, FR 태스크의 주된 연구 방향은 CNN이 최대한 이상적인 mapping function을 학습할 수 있도록 하는 loss를 찾아내는 것이다. 이를 metric learning이라 한다.
기존의 FR 태스크는 통상적으로 Euclidean distance 기반의 Softmax loss를 주로 활용한다. 하지만 SphereFace는 이러한 방향에 물음을 던진다. Is Euclidean margin always suitable for learning discriminative face features?
논문에서 제시하는 답은 당연하게도 "아니다"이다. Binary classification 문제에서 통상적인 Softmax loss의 decision boundary는 (W1W2)xi+(b1b2)=0(W_1 - W_2) x_i + (b_1 - b_2) = 0 로 표현할 수 있는데, 두 벡터의 내적이 W1xi=W1xicos(θ1,i)W_1 x_i = ||W_1|| ||x_i|| cos(\theta_{1, i}) 라는 점에서 Softmax loss는 암시적으로 벡터들의 angular distribution을 학습한다는 사실을 유추해낼 수 있다. 이러한 상황에서 논문은 Softmax loss에 Euclidean margin constraint를 부과하는 것은 incompatible하다고 주장한다.
따라서 이러한 incompatibility를 해소하기 위해 논문에서는 angular margin 기반의 Softmax loss를 제안한다. 먼저 각 WiW_i의 L2 norm을 1로 제한(Wi=1||W_i|| = 1)하고, bias term을 0으로 고정한다. 그러면 이제 binary classification case에서의 decision boundary는 (W1W2)xi+(b1b2)=xi(cos(θ1)cos(θ2))=0(W_1 - W_2) x_i + (b_1 - b_2) = ||x_i|| (cos(\theta_1) - cos(\theta_2)) = 0이 된다. 이렇게 변형된 Softmax loss는 mapping function이 직접적으로 angular distribution을 학습하도록 한다.
하지만 이렇게 학습된 feature vector가 separable 하기는 하지만, 아직은 discriminative하지는 않다. (논문의 시각 자료를 보면 훨씬 직관적인 이해가 가능하다.) Discriminability가 중요한 이유는 (아마) open-world set에서도 robust한 성능을 내기 위해서이다. 따라서 discriminability를 확보하기 위해 multiplicative angular margin m2m ≥ 2을 도입한다. 즉, 역시 binary classification case에서의 decision boundary를 다음과 같이 변경한다: xi(cos(mθ1)cos(θ2))=0||x_i|| (cos(m \theta_1) - cos(\theta_2)) = 0 and xi(cos(mθ1)cos(θ2))=0||x_i|| (cos(m \theta_1) - cos(\theta_2)) = 0. Margin mm의 역할은 상당히 직관적인데, 각각의 class마다 훨씬 더 빡센 decision boundary를 학습하게 한다고 볼 수 있겠다. 즉 class 1을 제대로 구분하기 위해서는 mθ1<θ2m\theta_1 < \theta_2가 되어야 하며, class 2를 제대로 구분하기 위해서는 θ1>mθ2\theta_1 > m\theta_2가 되어야 한다.
최종적인 loss의 모습은 다음과 같다.
L=1NiNexp(xicos(mθyi,i))exp(xicos(mθyi,i))+jyiexp(xicos(θj,i))L = -\frac{1}{N} \sum_{i}^N{ \frac {\exp{( ||x_i|| \cos{( m\theta_{y_i, i} )} )}} {\exp{( ||x_i|| \cos{( m\theta_{y_i, i} )} )} + \sum_{j ≠ y_i}{\exp{( ||x_i|| \cos{( \theta_{j, i} )} )}}} }
또한 이렇게 되면 θ[0,π/m]\theta \in [0, \pi / m] 이라는 제약이 발생하는데, 이를 해소하기 위해서 논문에서는 [0,π/m][0, \pi /m] 구간에서 coscos 함수와 모양이 같으며 단조감수하는 approximation 함수 ψ\psi를 사용한다.
논문에서는 이러한 A-Softmax(Angular Softmax) loss는 inter-class margin을 확대하는 동시에, intra-class compactness를 학습할 수 있는 역량을 가지게 된다고 주장한다. 기하학적으로 생각할 때 이러한 angular distance는 hypersphere에서의 geodesic distance를 가리키는데, 결국 A-Softmax loss에 의해 학습된 feature vector는 hypersphere manifold 위에서 geodesic distance 기준으로 identity-discriminative하다고 볼 수 있다. 이러한 측면에서 저자는 A-Softmax loss는 SphereFace라 지칭한다.
이외에도 다음과 같은 SphereFace의 property를 제시하고 증명하는데, 증명은 trivial하다.
Property 1. Margin mm이 커질수록 manifold 위에서의 제한된 영역이 작아지고, (discriminability가 증가하는 한편) 학습이 더 어려워진다.
Property 2. Binary-class case에서 mmin2+3m_{min} ≥ 2 + \sqrt{3}이다.
Property 3. Multi-class case에서 mmin3m_{min} ≥ 3이다.
다양한 실험을 통해 학습된 feature의 hypersphere에서의 분포를 보여주는데, 이 결과가 상당히 인상적이다. 특히 margin mm이 증가함에 따라 feature discriminability가 증가하는 모습이 상당히 흥미롭다. 표에서 제시하듯 margin이 1 => 4로 증가함에 따라 성능이 개선되는 모습을 볼 수 있다.
Benchmarking 결과는 뭐 거의 모든 논문에서와 똑같이 동등한 조건(데이터셋, feature extractor 등)에서 다른 loss들에 비해 SphereFace가 우월하다는 것을 보여준다. 테스트 시에는 물론 두 feature 사이의 cosine distance를 score로 구한다.
E.O.D.