Loading [MathJax]/jax/output/CommonHTML/jax.js
본문 바로가기

Machine Learning Tasks/Face Recognition

Face Recognition - CosFace (1)

반응형

지난 포스트에의 SphereFace 는 기존의 softmax loss 에서 W를 정규화시켜 angular 공간을 통해 feature 를 구분하고 angular margin m을 통해 intra-class variance 를 최소화하고 inter-class variance 를 최대화함으로써 기존 얼굴 인식 알고리즘에 비해 높은 성능을 거두었습니다. 이번 포스트에서 살펴볼 CosFace 는 SphereFace 개념에서 더 나아가 feature x까지 정규화하고 angular margin 을 cosine 값 자체에 더함으로써 SphereFace 에 비해 더 높은 성능을 거두었습니다. 

먼저 얼굴 인식을 위한 CosFace 의 훈련 / 테스트 과정을 (Figure 1) 살펴보면 SphereFace 와 기본적으로 같습니다. 얼굴 인식은 open-set 분류이므로 CosFace 에서 제안한 LMCL (Large Margin Cosine Loss) 를 사용해 훈련하고 테스트 시에는 마지막 fully-connected layer 직전의 feature 를 사용하여 face identification / verification 을 수행합니다.

 

CosFace

Large margin cosine loss

Equation 1의 softmax loss 로부터 시작합니다. N,C는 각각 훈련 데이터의 개수, 클래스 개수이고 fj 는 마지막 fully-connected layer 를 거친 j 번째 activation 입니다. SpherFace 경우와 마찬가지로 바이어스 항을 0으로 세팅한다면, fj=WTjx=Wjxcos(θj) 로 표현할 수 있습니다. (θjWjx의 각도입니다.)

Equation 1

효과적인 feature 학습을 위해서 Wi=1이 되도록 정규화하고, 얼굴 인식 테스트때 cosine similarity 를 가지고 판단하니 feature x의 크기 또한 x=s로 고정시켜 테스트 스코어에 반영되지 못하도록 합니다. 이 수정 사항을 반영하면 Equation 2가 유도되고 이는 SphereFace 의 modified softmax loss 와 거의 유사합니다. CosFace 에서는 Equation 2를 NSL (Normalized version of Softmax Loss) 라 부릅니다.

Equation 2

마찬가지로 NSL 은 정확한 분류만을 위해 동작하다 보니 class 1에 대해서는 cos(θ1)>cos(θ2) 조건만을 만족하면 되기에 얼굴 인식을 위한 discriminative 를 달성하기 충분치 않습니다. (discriminative: 1) minimize intra-class variance, 2) maximize inter-class variance) 따라서 CosFace 또한 목적함수에 마진을 (margin) 삽입하게 되는데 그 모양이 SphereFace 와 약간 다릅니다.

Cosine 안의 각도에 마진 m을 곱한 SphereFace 와 달리 CosFace 에서는 cosine 값 자체에 마진 m을 추가합니다. 즉, class 1에 대해서 cos(θ1)m>cos(θ2) 조건을 만족하도록 m을 추가합니다. cos(θ)mcos(θ)에 비해 값이 더 작으므로 더 엄격한 discriminative 조건이 부여됬다고 이해할 수 있습니다. 결과적으로 이를 목적 함수에 반영하면 Equation 3의 LMCL이 유도됩니다. 이때, Wi=1,x=s 조건이 부여됩니다.

Equation 3

Comparison on different loss function

Figure 2는 이진 분류에 대해 softmax / NSL / A-Softmax / LMCL loss 함수를 cosine 값 공간에서 비교한 것입니다. 먼저 Softmax loss 의 decision boundary 는 W1cos(θ1)=W2cos(θ2) 로 결정됩니다. 따라서 decision boundary 가 W의 크기와 각도로 결정되어 Figure 2에서 볼 수 있듯이 클래스 결정 구간이 겹치는 경우가 발생합니다. 특히, 얼굴 인식 테스트시에는 feature vector 간의 cosine similarity 를 사용하므로 softmax loss 는 적합하지 않습니다.

NSL은 W1,W2를 크기가 1이 되도록 정규화하므로 decision boundary 가 cos(θ1)=cos(θ2)로 결정됩니다. Decision boundary 상에서 W 크기에 따른 효과를 없앴으므로 cosine 값으로 구분이 가능하나 그 경계가 너무 tight 합니다. 따라서 작은 perturbation 만으로도 클래스 결정이 바뀔 수 있는 여지가 존재합니다.

SphereFace 의 A-Softmax 의 decision boundary 는 class 1에 대해 cos(mθ1)cos(θ2), class 2에 대해 cos(mθ2)cos(θ1)로 결정되어 각각 θ1θ2m, θ2θ1m 의 조건을 가지게 됩니다. Softmax, NSL과 달리 회색 구간으로 표현된 경계 구간 사이의 마진이 생성된 것을 볼 수 있습니다. 하지만 마진이 θ 값에 따라 일정하지 않습니다. Figure 2에서 볼 수 있듯이 θ가 줄어들수록 마진이 감소하며 θ=0일 경우 마진이 존재하지 않습니다. 이같은 경우에는 두 개의 서로 다른 클래스가 매우 비슷하여 W1,W2 사이의 각도가 매우 작을 경우에 문제가 될 수 있으며, SphereFace 에서 보았듯이 cosine 값이 주기함수이므로 ψ 라는 piecewise 단조감소 함수를 목적 함수에 대체하는 부가적인 technique 이 필요합니다.

LMCL은 각도 공간에서 마진을 부가하는 A-Softmax 와 달리 cosine 값 공간 자체에 마진을 부가함으로써 Equation 4와 같은 decision boundary 를 생성합니다. 따라서 class 1에 대해 cos(θ1)은 증가하고 cos(θ2)는 감소하도록 학습되고 Figure 2에서 볼 수 있듯이 2m의 마진 공간이 생성된 것을 할 수 있습니다. 이 마진으로 인해 NSL과 같이 작은 perturbation 에 부정확한 예측이 유도되는 것을 방지할 수 있으며 SphereFace 와 같이 각도에 따른 마진 변화가 일어나지 않습니다.

Equation 4

Normalization on features

CosFace 는 weight / feature vector 에 대해 모두 정규화를 적용하여 radial 방향으로 벡터 크기가 일정하게 함으로써 순수히 각도만으로 feature 를 구분합니다. 따라서 feature vector 가 hypersphere 상에 위치하고 s는 hypersphere 의 크기를 정하게 됩니다. 먼저 feature vector 의 정규화는 왜 필요할까요? 먼저 원래의 softmax loss 를 생각해보면 feature 정규화가 없을 때에는 cosine 값과 feature vector 의 L2-norm 을 동시에 학습하게 됩니다. 따라서 cosine 값에 적용되는 조건은 상대적으로 완화되고 cosine 상에서 학습이 어려운 샘플들은 상대적으로 학습이 쉬운 L2-norm 을 줄임으로서 쉽게 학습이 되버리는 경향이 있습니다. Feature vector 의 크기를 동일하게 함으로써 목적 함수가 cosine 값에만 의존하게 만들어 discriminative 한 feature 학습을 수행할 수 있습니다. 

또한, feature vector 정규화 없이 LMCL을 적용한다면 x(cos(θi)m)>xcos(θj) 조건을 적용하게 됩니다. 만약 훈련 초기에 cos(θi)m>cos(θj) 라면, cosine 값이 최적화되는 대신에 x가 줄어들게 되버리는 현상이 발생합니다. 따라서 x=s로 고정시켜주는 것이 필요합니다.

그렇다면 s를 어떻게 설정해야 할까요? LMCL을 효과적으로 사용하기 위해서는 s를 충분히 크게 설정해야 합니다. 정규화된 x,W가 주어지고 C를 클래스 개수라 하고 x가 hypersphere 상에서 클래스에 따라 군집되어 있으면서 잘 펼쳐져 있다고 가정했을 때 s의 하한은 (lower bound) Equation 5로 주어집니다.

Equation 5


Equation 5의 Pw는 feature가 hypersphere 상에서 클래스 중심에 (W) 위치할 최저 기대확률로 Equation 6을 유도할 수 있습니다. Equation 6의 첫 번째 수식은 class i에 대한 Pw 수식이고 (WTiWi=1) 이것에 역수를 취하면 두 번째 수식을 유도할 수 있습니다. 이후 C개의 클래스에 대해 더하고 나누어주면 마지막 수식을 유도할 수 있습니다.

Equation 6

f(x)=esx는 convex 함수이므로 Jensen's inequality를 이용하여 Equation 7을 유도할 수 있습니다. (i,j,ij 부분에서 C개의 클래스에 대한 총 경우수는 C(C1)개 입니다.)

Equation 7

이후에 Equation 8을 이용하면 Equation 9를 얻을 수 있고 이를 정리하면 최종적으로 Equation 5가 유도됩니다. Equation 8에서 ij 인 부분으로 (iWi)2(iW2i)를 유도할 수 있고 (iWi)20 이므로 마지막 C 부분이 유도됩니다. (iW2i=C)

Equation 8
Equation 9

Equation 5의 equality는 ij의 모든 i,j에 대하여 WTiWj가 같고 iWi=0 일때 성립합니다. 이러한 경우는 K 차원에서 최대 K+1개의 벡터가 존재할 때 성립하므로 feature 차원이 K라면 CK+1 일때에만 equality 가 성립합니다.


따라서 Equation 5를 기준으로 생각해보면, 최적의 Pw를 얻기 위해서는 (W가 이상적으로 hypersphere 상에서 퍼져 있고 각 클래스 별로 뭉쳐져 있는 경우) s가 충분히 커야 합니다. 또한, Pw를 유지한 상태에서 클래스 개수 C가 늘어나게 된다면 s도 이에 맞게 충분히 커져야 합니다. C가 늘어날수록 상대적으로 작고 컴팩트한 hypersphere 상에서는 수렴이 더 어려울 것이기 때문입니다. 결론적으로 feature 가 작은 intra-class distance 를 가지고 큰 inter-class distance 를 가지기 위해서는 충분히 큰 s가 필요합니다. 


다음 포스트

[Machine Learning/기타] - Face Recognition - CosFace (2)

반응형