Knot magnify loss for face recognition
1. Introduction
Deep Convolution Neural Networks (DCNN)으로 얼굴 인식을 할 때, 시점과, 해상도, 가려짐, 이미지 품질 뿐만 아니라 여러 품질에 대한 학습 데이터가 가지는 분포의 불균형(imbalance)이 성능을 떨어트리는 주요 요인입니다. 하지만 주로 사용되는 softmax loss는 샘플에 대하여 loss 가중치를 동일하게 사용하기 때문에 자주 보여지게 되는 샘플들로부터 배우게 되는 경향이 있습니다. 더군다나 보통 얼굴 데이터셋은 높은 품질의 샘플들이 많기 때문에, 이를 사용해 학습된 특징 추출기는 낮은 품질의 이미지에 대하여 성능이 떨어지게 됩니다.
이 논문에서는 Knot Magnify (KM) loss를 제안합니다. 이 loss를 사용하면 학습 중에 어려운 샘플에 대해서는 높은 가중치를, 쉬운 샘플들은 낮은 가중치를 부여해줍니다. 가려지거나, 블러한 얼굴과 같이 어려운 샘플 softmax 출력 값은 상대적으로 낮게 나오는 것을 발견했고 이를 이용하여 loss 가중치를 조절하였습니다.
KM loss는 softmax를 기초로 하기 대문에 기존 공개 딥러닝 툴박스에 쉽게 적용할 수 있고, DCNN이 어려운 샘플로부터 더 만ㅇ흔 정보를 배울 수 있도록 해 줍니다.
2. Related work
3. Proposed method
3.1. The softmax-based KM loss
Softmax loss는 다음과 같습니다.
$$ L_s = - \sum_k^n \log (p_k^i) $$
여기서 $p_k^i = \frac{e^{w_i f(x_k)}}{\sum_j e^{w_j} f(x_k) } $으로 softmax의 출력이며, $f(x_k)$는 샘플 $x_k$로 계산된 특징입니다. 한 샘플에 대한 softmax loss를 $S(p_k^i) = - \log(p_k^i)$라고 하겠습니다.
어려운 샘플에 대해 loss를 증폭시키기 위해서 가중치 항 $\frac{1}{( \gamma p_t + 1)^2}$을 추가하였습니다. 이 가중치 항은 쉬운 샘플에 대해서는 loss의 효과를 낮춰줄 것이고, 어려운 샘플에 대해서는 loss의 효과를 늘려줄 것입니다. 제안하는 KM loss는 아래와 같이 정리됩니다.
$$L_k = - \sum_k^n \frac{1}{(\gamma p_k^i + 1)^2} \log (p_k^i) = \sum_k^n K(p_k^i) $$
3.2. Theoretical analysis of the factor $\gamma$
쉬운 샘플과 어려운 샘플을 가르는 지점 $p_c$를 생각할 수 있습니다. 이를 critical point라고 합니다. 수식을 풀어보면 이 지점은 결국 $\gamma$에 의해 결정되며, 그 식은 아래와 같습니다.
$$p_c (\gamma) = \sqrt{\frac{1}{\gamma \log (1 + \gamma)} - \frac{1}{\gamma}}$$
아래는 각 $\gamma$에 대한 critical point의 위치입니다.
$\gamma$ | 0.1 | 1 | 2 | 4 | 6 | 8 |
---|---|---|---|---|---|---|
$p_c(\gamma)$ | 0.244 | 0.202 | 0.175 | 0.145 | 0.126 | 0.114 |
우리가 0.175를 critical point로 사용하겠다고 한다면 2가 적절한 $\gamma$임을 알 수 있습니다.
4. Experiments
4.1. Experiments settings
MS-Celeb-1M데이터셋에 대해서 Resnet-50으로 모델을 구성하여 256 차원의 특징을 추출하도록 학습하였습니다.
4.2. Experiments on LFW
LFW에 대한 Face Verification 결과입니다.
LFW에서의 Face Identification 결과입니다.
4.3. Experiments on CFP
Celebrities in Frontal-Profile (CFP)에서의 verification 결과입니다.
5. Conclusion