본문 바로가기

Machine Learning Tasks/Face Recognition

Face Recognition - CosFace (2)

반응형

지난 포스트

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


Theoretical analysis for LMCL

Discriminative feature 학습을 위한 cosine 마진 $m$의 최적값을 무엇일까요? 먼저 $m$을 가함으로써 얻는 decision boundary 의 변화를 알아보겠습니다. 이진 분류의 경우에 $W_i, x$는 정규화되고 $\theta_i$는 $W_i, x$와의 각도라 할때, NSL의 decision boundary 는 $cos(\theta_1)-cos(\theta_2)=0$ 이 됩니다. 즉, $W_1, W_2$의 중간 지점이 되는데요, 지난 포스트에서도 언급했듯이 마진이 아예 존재하지 않으므로 중간 지점에 존재하는 $x$에 대해서는 명확한 판단이 어렵습니다. 하지만 LMCL의 경우에는 $cos(\theta_1)-cos(\theta_2)=m$ 이므로 class 1에 속하는 $x$에 대해서 $\theta_1$은 $\theta_2$보다 매우 작아야 합니다. 따라서 $m$의 존재로 인해 inter-class variance 는 커지고 intra-class variance 는 작아지게 되는 것이죠. 

Figure 3을 보면 angular margin의 최대값은 $W_1, W_2$로부터 정해지는 것을 알 수 있습니다. 만약, class 1에 속하는 모든 $x$가 $W_1$과 같고 class 2에 속하는 모든 $x$가 $W_2$와 같다면 (모든 feature vector 들이 각 클래스 중심에 위치하는 경우죠.) decision boundary 의 마진이 최대화되게 됩니다. 이 경우를 일반화해서 모든 feature 들이 weight 벡터가 hypersphere 상에 균등하게 퍼져 있는 상황에 맞게 잘 분리되어 있다고 가정하면 $m$의 이론적인 범위를 Equation 10과 같이 구할 수 있습니다. ($K$는 feature 차원, $C$는 클래스 개수)

Equation 10


먼저 $m$이 가질 수 있는 범위는 $0\geq m \geq (1-max(W_i^T W_j)), i, j \leq C, i\neq j$ 와 같이 주어집니다. $K=2$ 라면 weight 벡터가 단위 원상에서 균등하게 퍼져있는 경우이므로 $max(W_i^T W_j)=\frac{cos(2\pi)}{C}$ 이므로 Equation 10의 첫 번째 수식을 ($K=2$ 경우) 유도할 수 있습니다.

$K>2$ 경우에는 Equatino 11이 유도됩니다. $sum_{i,j, i\neq j}$의 모든 경우수는 $C(C-1)$개 이므로 Equation 11의 첫 번째 수식의 inequality 가 성립하고 지난 포스트에서의 $s$의 lower bound 증명하기 위한 과정과 비슷하게 두 번째 / 마지막 수식을 유도할 수 있습니다. 따라서 $max(W_i^T W_j) \geq \frac{-1}{C-1}$ 이므로 Equation 10의 두 번째 경우가 ($C\leq K+1$) $0\geq m \geq (1-max(W_i^T W_j)) \geq \frac{C}{C-1}$로 유도됩니다.

Equation 11

비슷하게 equality 는 모든 $i, j, i\neq j$에 대해 $W_i^T W_j$가 같고 $\sum_i W_i=0$ 일때 성립합니다. 이는 $C \leq K+1$인 조건에서 성립하게 되며, 이 조건에서는 두 개의 임의의 $W$ 사이의 거리가 같기에 $W$ 벡터가 $C=3$이면 정삼각형, $C=4$이면 정사면체를 구성하게 됩니다. 마지막 $C>K+1$ 경우에서는 Equation 11의 equality가 성립할 수 없습니다. 따라서 $C \leq K+1$과 같이 상한을 (upper bound) 구성할 수 없기에 $0\geq m \lll \frac{C}{C-1}$ 로 구합니다. (feature 차원에 비해 클래스 수가 많으므로 equality 를 만족할 수 없습니다.)


Equation 10을 보면 $C$가 커질수록 $m$의 상한 또한 자연스레 커지는 경향을 보입니다. 하지만 $C >K+1$ 경우라면 $m$의 상한이 매우 줄어들게 됩니다. 따라서 $m$이 크면 discriminative feature 학습 측면에서는 좋겠지만 이론적인 상한이 존재하고 너무 크다면 $cos(\theta_i) - m > cos(\theta_j), i\neq j$ 의 제약조건이 만족시키기 힘들기 때문에 훈련이 잘 안될 수도 있습니다. 실험에서도 $m$을 계속 증가시키면 최종적인 성능이 어느 시점부터 떨어진다고 합니다.

$m$에 따른 효과를 분석하게 위해 간단한 실험을 수행합니다. 8명의 사람에 대한 이미지에 대해 2 차원의 feature 를 추출합니다. Equation 10에 따라 $m\leq 1-cos(\frac{\pi}{4})\approx 0.29$이고 $m=0, 0.1, 0.2$에 대해서 실험을 수행합니다. Figure 4에서 볼 수 있듯이 원래의 softmax 의 decision boundary 는 애매하지만 LMCL의 $m$이 증가할수록 feature 의 discriminative 가 증가하여 intra-class variance 는 줄어들고 inter-class variance 는 늘어난 것을 볼 수 있습니다.

 

Experiements

Implementation details

SphereFace 와 마찬가지로 MTCNN 을 이용하여 얼굴 주요 landmark 를 추출한 뒤 정렬합니다. 이후 얼굴부분을 112x96 크기로 잘라내고 정규화시킵니다. 훈련으로는 small dataset / large dataset 을 사용하는데, small dataset 으로는 CASIA-WebFace 데이터셋을 사용하고 large dataset 으로는 여러 개의 공개 / 비공개 데이터셋을 합쳐 90K 사람의 5M개의 이미지를 사용합니다. Horizontal flipping 을 데이터 augmentation 으로 사용하고 테스트 데이터셋에 존재하는 사람을 훈련 데이터셋에서 제거하는 전처리 과정을 수행합니다. 모델로는 64개의 convolution 블락과 residual unit 으로 이루어진 CNN 모델을 사용합니다. SphereFace 와 마찬가지로 multi-GPU 를 사용하며 learning rate 를 초기에 0.1로 큰 값을 준 이후에 점차 감소시키는 decaying 기법을 사용합니다. 테스트 시에는 원래 이미지와 flipped 이미지의 feature 를 이어 붙인 것을 성능 평가를 위한 feature 로 사용하며 cosine 유사도 기반으로 face identification / verification 을 수행합니다.

Exploratory experiments

$m$에 따른 효과를 Figure 5와 같이 분석합니다. $m$이 0.45 보다 클때는 훈련에 실패했다고 하며 LFW / YTF 데이터셋에 대해 $m$에 따른 성능을 분석한 결과 $m=0.35$ 정도에서 최상의 결과를 얻었습니다.

Feature 정규화에 따른 성능 추이는 Table 1과 같습니다. LFW / YTF / MegaFace 데이터셋에 대해 일관적으로 feature 정규화한 것이 성능이 더 좋고 이는 feature 정규화를 통해서 angular 공간에서 feature 가 더욱 discriminative 해지도록 학습되기 때문입니다.

Evaluation on LFW and YTF

SphereFace 에서처럼 LFW / YTF 에서 각각 6000 쌍 이미지, 5000쌍 비디오를 뽑아내어 face verification 성능을 평가합니다. 결과는 Table 3과 같습니다.

Evaluation on MegaFace

MegaFace 는 large-scale 의 얼굴 인식 성능평가 벤치마크 데이터셋으로 갤러리셋과 프로브셋으로 구성되어 있습니다.  프로브셋은 Facescrub / FGNET 데이터셋이 사용되며 보통 Facescrub 데이터셋을 (530 명의 연예인에 대한 100K개의 이미지) 프로브셋으로 사용합니다. MegaFace Challenge 1의 갤러리셋은 690K 명에 대한 Flickr 이미지 1M개로 구성되어 있고, MegaFace Challenge 2에서는 Megaface 에서 제공한 672K 명에 대한 4.7M 이미지를 훈련 데이터를 사용하며 갤러리셋은 challenge 1의 갤러리셋과는 다른 1M개의 이미지로 구성되어 있습니다. 최종 결과는 Table 4, 5와 같으며 두 방법 모두 CosFace 의 결과가 가장 좋은 것을 확인할 수 있습니다. (3-patch ensemble 은 같은 얼굴 이미지에 대해 3개의 랜덤 cropping 을 수행해 patch 를 추출하고 이 3개의 patch에 대한 feature 를 이어붙인 것으로 지난 포스트를 참고하시길 바랍니다.)

 

참조

반응형