인공지능

A Discriminative Feature Learning Approach for Deep Face Recognition

NickTop 2024. 12. 15. 16:25

Introduction

architecture of CNN

Face recognition task에서 unseen data를 처리하기 위해 separable(클래스간의 구분) 할 뿐만아니라 discrimitive(클래스의 특징을 배움) 해야한다. discrimitive 해야 일반화가 되어 unseen data를 처리하기 좋다

separable의 예시는 "인간과 고양이를 구분하는 방법은 두 발로 걷는지 네 발로 걷는지 알아내면 됨"

discrimitive의 예시는 "고양이는 귀가 뾰족하다. 인간은 털이 거의 없다"

 

softmax Loss는 separability만 배운다

 

center loss를 도입하여 discriminative power를 향상시키도록 하자

 

contrastive learning과 비슷해보이지만, contrastive learning은 이미지간의 유사도나 차이점을 배우는 unsupervised learning이다.

그리고 contrastive loss나 triplelet loss는 이미지의 양이 많을수록 이미지 pair가 아주 많아진다. computational complexity가 커진다

 

Discriminative Feature Learning는 training을 할때 기존의 softmax loss에 center loss만 하나더 추가한 것이다

 

3.1 A Toy Example

모델 : LeNet

데이터 : MNIST

모델의 맨마지막 hidden layer를 2차원으로 만들어서 그래프를 그린다

Distribution with softmax loss

 

intra-class variations이 크다는 것을 알수있다. 같은 class라도 분포가 모여있지 않다

 

3-2. center loss

$\mathcal{L}_C = \frac{1}{2} \sum_{i=1}^m \left\| x_i - c_{y_i} \right\|^2$

다음과 같이 center loss를 추가하여 각 class가 중심으로 모이게 학습한다

training 중에는 center를 정하기 힘들다

따라서 mini batch마다 center를 업데이트한다

또한 mislabelled samples에 의해 center가 크게 변하는 것을 막기 위해 center에 learning rate를 도입한다 ($\alpha$)

$\Delta c_j = \frac{\sum_{i=1}^m \delta(y_i = j) \cdot (c_j - x_i)}{1 + \sum_{i=1}^m \delta(y_i = j)}$

m은 미니 배치의 크기이다

center의 개수는 class의 개수와 같다 (1<=j<=n), n은 클래스 개수

δ(condition) = 1 if the condition is satisfied

  >> $y_i = j$  인 이미지에 대해서만 $\Delta c_j$ 를 업데이트 한다

$\lambda$가 커질수록 center loss의 영향을 크게 받는다

total loss = center loss + softmax loss

$\mathcal{L} = \mathcal{L}_S + \lambda \mathcal{L}_C = -\sum_{i=1}^m \log \frac{e^{W^T_{y_i} x_i + b_{y_i}}}{\sum_{j=1}^n e^{W^T_j x_i + b_j}} + \frac{\lambda}{2} \sum_{i=1}^m \|x_i - c_{y_i}\|^2 $

 

θ는 왜 있는 것인지 모르겠다 

 

 

distribution of center loss

$\lambda$가 커질수록 분포가 center로 몰린다

 

 

Experiment

작은 데이터를 써서 (0.49MLFW, YTF, MegaFace와 같은 여러 얼굴 인식 벤치마크에서 좋은 성능을 보임

experiment result

 

 

https://kpzhang93.github.io/papers/eccv2016.pdf

'인공지능' 카테고리의 다른 글

모델 경량화 프루닝 (Pruning) - Structured  (0) 2025.03.30
모델 경량화 프루닝 (Pruning) - Unstructured  (0) 2025.03.23
Entropy, Cross Entropy, KL divergence  (0) 2024.07.07
Word2Vec  (1) 2024.05.01
Vessl GPU 서버 사용  (1) 2024.04.26