본문 바로가기

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$는 각각 훈련 데이터의 개수, 클래스 개수이고 $f_{j}$ 는 마지막 fully-connected layer 를 거친 $j$ 번째 activation 입니다. SpherFace 경우와 마찬가지로 바이어스 항을 0으로 세팅한다면, $f_j = W_j^T x=\Vert W_j\Vert \Vert x\Vert cos(\theta_j)$ 로 표현할 수 있습니다. ($\theta_j$는 $W_j$와 $x$의 각도입니다.)

Equation 1

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

Equation 2

마찬가지로 NSL 은 정확한 분류만을 위해 동작하다 보니 class 1에 대해서는 $cos(\theta_1) > cos(\theta_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(\theta_1) - m > cos(\theta_2)$ 조건을 만족하도록 $m$을 추가합니다. $cos(\theta) -m$은 $cos(\theta)$에 비해 값이 더 작으므로 더 엄격한 discriminative 조건이 부여됬다고 이해할 수 있습니다. 결과적으로 이를 목적 함수에 반영하면 Equation 3의 LMCL이 유도됩니다. 이때, $\Vert W_i\Vert=1, \Vert x\Vert=s$ 조건이 부여됩니다.

Equation 3

Comparison on different loss function

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

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

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

LMCL은 각도 공간에서 마진을 부가하는 A-Softmax 와 달리 cosine 값 공간 자체에 마진을 부가함으로써 Equation 4와 같은 decision boundary 를 생성합니다. 따라서 class 1에 대해 $cos(\theta_1)$은 증가하고 $cos(\theta_2)$는 감소하도록 학습되고 Figure 2에서 볼 수 있듯이 $\sqrt{2}m$의 마진 공간이 생성된 것을 할 수 있습니다. 이 마진으로 인해 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을 적용한다면 $\Vert x\Vert (cos(\theta_i) -m) > \Vert x\Vert cos(\theta_j)$ 조건을 적용하게 됩니다. 만약 훈련 초기에 $cos(\theta_i) -m > cos(\theta_j)$ 라면, cosine 값이 최적화되는 대신에 $\Vert x \Vert $가 줄어들게 되버리는 현상이 발생합니다. 따라서 $\Vert x\Vert=s$로 고정시켜주는 것이 필요합니다.

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

Equation 5


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

Equation 6

$f(x) = e^{sx}$는 convex 함수이므로 Jensen's inequality를 이용하여 Equation 7을 유도할 수 있습니다. ($\sum_{i,j,i\neq j}$ 부분에서 $C$개의 클래스에 대한 총 경우수는 $C(C-1)$개 입니다.)

Equation 7

이후에 Equation 8을 이용하면 Equation 9를 얻을 수 있고 이를 정리하면 최종적으로 Equation 5가 유도됩니다. Equation 8에서 $i\neq j$ 인 부분으로 $(\sum_i W_i)^2 - (\sum_i W_i^2)$를 유도할 수 있고 $(\sum_i W_i)^2 \geq 0$ 이므로 마지막 $\geq -C$ 부분이 유도됩니다. ($\sum_i W_i^2=-C$)

Equation 8
Equation 9

Equation 5의 equality는 $i\neq j$의 모든 $i, j$에 대하여 $W_i^T W_j$가 같고 $\sum_i W_i=0$ 일때 성립합니다. 이러한 경우는 $K$ 차원에서 최대 $K+1$개의 벡터가 존재할 때 성립하므로 feature 차원이 $K$라면 $C \leq K+1$ 일때에만 equality 가 성립합니다.


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


다음 포스트

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

반응형