논문

하루에도 수만개의 글자를 읽고 있습니다. 하루에도 수백장의 종이를 들춰 읽습니다.
이것은 그 읽기에 대한 일기입니다.

Feature learning for one-shot face recognition

1. Introduction

기존 얼굴 인식 분야에서 사용되는 Softmax loss나 center loss, A-softmax, triplet loss 등의 로스 함수들은 one-shot face recognition에 사용하기에는 적당하지 않았습니다. 딥러닝은 많은 수의 트레이닝 데이터를 필요로 하는데, 얼굴 인식 분야에서는 사람마다 하나 혹은 아주 조금의 샘플들만 수집이 가능합니다. 이러한 트레이닝 데이터의 불균형 때문에 인식 성능이 떨어지게 됩니다.

Guo 1는 MS-Celeb-1M을 이용하여 연구를 하였는데, 총 21000명의 데이터셋을 열 개 이상의 샘플을 갖는 20000명과 한개의 샘플을 갖는 1000명으로 나누고 이를 각각 base set, novel set으로 이름 붙였습니다.

기존의 학습 방법으로 학습하면 novel 클래스는 분류기의 가중치 벡터의 놈이 작기 때문에 더 작은 특징 공간을 갖는다고 알려져 있습니다. 또한 학습 샘플이 부족하면 클래스 내 클러스터링을 저하시키고, center loss가 제 역할을 못하게 됩니다.

이를 해결하기 위해 이 논문에서는 balancing regularizer와 shifting center regeneration을 제안합니다.

2. Proposed method

2.1. One-shot Learning with Balancing Regularizer

기존의 로스는 softmax에서 bias를 사용하지 않는 방법을 사용하기에 이는 각 클래스마다 fully-connected 레이어를 사용한 것과 근본적으로 같습니다. 이 방법을 one-shot face recognition 문제에 적용하면 novel 클래스의 가중치 벡터의 놈이 base 클래스보다 작아지기에 성능이 떨어진다는 것이 Guo1의 연구에서 밝혀졌습니다. 가중치 벡터가 작아져 특징 공간의 더 작아지기 때문입니다.

Balancing regularizer는 이 문제를 해결하기 위해 가중치에 L2-normalization를 직접 적용하지 않고 명시적으로 가중치의 길이를 제한할 수 있도록 항을 추가하였습니다.

$$L_b = \frac{1}{|K|} \sum_{k \in K}||||w_k||^2_2 - \beta||^2_2$$

여기서 $\beta$는 상수 항으로 가중치 벡터의 대강의 길이를 나타냅니다. 이 regularizer를 사용함으로써 base, novel 클래스 비슷한 특징 공간을 갖게 해 줍니다.

2.2. Shifting Center Regeneration

Center loss는 클래스 간 분리(inter-class discrimination)와 클래스 내 응집(intra-class compactness)을 좋게 하는 효과가 있습니다. 하지만 클래스의 샘플이 하나가 있을 경우 클래스의 센터는 샘플 그 자체이기 때문에 center loss의 효과가 없어지게 됩니다.

이를 해결하기 위해 Figure 2 (c)에서처럼 center를 regeneration하여 shift시켜주는 방법을 제안하였습니다. novel 클래스는 학습 샘플이 적어 올바른 center loss를 만들기가 어려우므로 실제 center 위치 주변에 가상의 "center"를 생성하여 사용하는 것입니다. 이렇게 생성된 center를 사용하면 하나의 샘플에 더 이상 억매이지 않고 학습에 긍정적인 효과를 줍니다.

새로운 center는 다음과 같이 생성합니다.

$$ \mathbf{c}'_k = \mathbf{c}_k + \Delta_{c_k}$$

$\Delta_{c_k}$는 truncated normal distribution에서 추출된 랜덤 벡터입니다. 클래스 공간이 겹치는 것을 방지하기 위해 shifting하는 수준을 원래 center보다 1도 이내로 들어가도록 제한하였습니다. 이 shifting center regeneration은 샘플이 하나인 경우에만 적용합니다.

수정된 center loss는 다음과 같습니다.

$$ L_c = \frac{1}{2} \sum_{y_i \in C_b} || \mathbf{x}_i - \mathbf{c}_{y_i}||_2^2 + \frac{1}{2} \sum_{y_i \in C_n} || \mathbf{x}_i - \mathbf{c}'_{y_i}||_2^2$$

이 로스를 사용하면 Center가 랜덤하게 이동하기 때문에 특징 공간에서의 볼륨을 확장해주느 효과가 있습니다. 또한 low-shot 문제에도 일반화하여 적용할 수 있습니다.

3. Experiments

3.1. A Toy Example

3.2. Experimental Setup

MS-Celeb-1M을 이용하였는데, 여기의 test set은 레이블되어있지 않기 때문에 Guo1의 연구에서의 development set을 이용하여 성능을 측정하였습니다. 또한 training set은 학습에만 사용하였습니다.

성능은 novel 클래스에서 precision이 99% 인 경우에서의 recognition coverage를 측정하였습니다.

백본으로는 ResNet-342를 사용하였습니다.

3.3. One-shot Face Recognition

모든 방법들의 base 클래스 top-1 accuracy는 98%을 넘겼기 때문에 따로 비교하지 않고 novel 클래스만 비교하였습니다.

다음은 각 로스의 사용에 따른 성능 변화입니다.

다음은 다른 방법들과의 비교입니다.

외부 데이터를 사용하지 않고 하이브리드 모델이 아닌 경우, 다른 방법들보다 더 좋은 성능을 나타냈습니다.

다음은 LFW의 결과입니다.

4. Conclusion

Proceedings of the IEEE conference on computer vision and pattern recognition, 2016, pp. 770–778.

1 Yandong Guo and Lei Zhang, “One-shot face recognition by promoting underrepresented classes,” arXiv
2 Kaiming He, Xiangyu Zhang, Shaoqing Ren, and JianSun, “Deep residual learning for image recognition,” in


Add a Comment Trackback