Abstract
Face clustering은 Face recognition의 large-scale unlabeled dataset을 해결하기 위한 분야이다.
하지만 Face clustering에는 Challenge가 있다. 바로 ‘hard cluster’이다.
Hard cluster란 cluster의 high Sparsity와 high variation 때문에 발생한다.
이 논문은 이 문제를 해결하기 위해 NeighborhoodDiffusion-based Density (NDDe)와 Transition-Probability-based Distance (TPDi) 방법을 제안한다.
Introduction
위 figure (a),(b)를 보면 cluster size와 sparsity가 다양하고 끝 쪽에 있는것을 hard cluster들이라고 할 수 있다.
(c),(d)를 cluster size와 sparsity가 작아질수록 정확도가 점점 떨어지는 것을 볼 수 있다.
이런 문제가 생기는 이유는
- Density가 작으면 더 관대한 distance threshold가 필요해진다. —> misclassifaction 가능성이 커진다.
- Cluster size가 작을수록 Density가 작아진다. —> 1번 문제 발생
따라서 이 논문은 NDDe를 통해 size-invariant한 density를 만들어주고, TPDi를 통해 sparse-aware한 distance (conventional한 euclidean,cosine distance를 사용하지 않음)를 만들어주었다.
Preliminaries
Data preprocessing
Input data는 256-dim features를 사용한다. (Arcface model을 통과한)
Density Peak Clusterin (DPC)
DPC는 cluster를 만드는 알고리즘 중 하나인데, point에 대해서 자신보다 density가 더 높으면서 distance가 가장 작은 지점으로 연결하며 center를 찾고 assign을 하는 알고리즘이다.
Method
(1) Construction of Transition Matrix
Feature refinement(F)
두 face의 similarity를 구하기 전에 256-dim features를 직접사용하지 않고, Transformer 등의 모델로 feature refinement를 한 번 해준 뒤에 similarity를 구해준다.
Compute Similarity
Similarity의 경우 두 feature(anchor과 비교대상)을 concat한 뒤에, MLP에 입력한 뒤, sigmoid를 하여 출력값으로 구한다. (이는 계산량을 줄이기 위해서라고 한다.)
Training 과정 (inferece에 사용할 model[Transformer + MLP]을 학습)
- anchor Xi에 대해 Top k개에 대해서 KNN으로 (cosine_similarity 순) 나열함
- 모두 Feature refinement에 통과
- Concat해서 MLP 통과
- Sij = MLP([ti,tij])
- Sigmoid통과 시켜서 모든 값의 합이 1이 되도록 함 (확률로 변환)
- pij = Sigmoid(S)
- Binary Cross entropy loss로 학습
NDDe
Small-size의 cluster의 상대적으로 low한 density를 완화시키는 방법
처음에 모든 point가 uniform한 density를 가지게 설정한 후, NDDe를 이용하여 각 cluster들을 cluster size에 관계없이 각 cluster의 평균 density가 1이 되게 함
TPDi
기존의 euclidean,cosine이 아닌 새로운 distance 측정 방법을 제시
두 point가 match된 nearest neighbors중 겹치는 것끼리의 확률값의 correlation을 distance로 계산함
코시 슈바르츠 부등식에 의해 0<d<1 임
Transition matrix는 N개, 각 point마다 match된 anchor들은 K개.
0< neighborhood가 겹치는 개수 <K
위의 NDDe, TPDi는 learnable 알고리즘이 아닌, inference에 사용되는 알고리즘인 것을 알 수 있다.
Experimental Settings
Dataset
MS1M (5.8M/86K), DeepFasion(26K/4K)
Deepfashion의 경우 open-set problem이라 더 어려움
Metric
Pairwise F-score(Fp) , BCubed F-score(Fb)
Implementation Details
F로 transformer encoder 사용
MLP는 three layers (512(256+256) —> Relu —> 128 —> Relu —> 1 —> sigmoid)
cosine distance = 1 - cosine similarity
distance threshold는 0.5~0.9까지 0.05간격으로 실험하여 optimal 값인 0.7을 찾음
Experimental results
NDDe와 TPDi의 효과
다른 방법론과 F-score 비교
다른 방법론과 걸리는 시간 비교
Custom Dataset 실험 Tip
회사에서 사용하는 데이터 셋과 결과는 공개할 수 없지만, 꽤 괜찮은 성능을 보여줌 (다른 모델들도 실험하는 중이지만 아마 이 모델을 선택할 것 같음
- Threshold distance를 0.5~1.0까지 미세하게 실험해보기
- 회사 data의 경우 0.99정도일때가 optimal 값이었음
- Batch size 늘려보기
- 모델이 작아서 충분히 늘려볼만함 (512 → ?)
- KNN할 때 Top K 변경 (클러스터 당 instances 개수에 맞춰서 조절)
- mean + 0.3 시그마 정도로 설정 (ms1m 평균 : 67, 시그마 : 39)
Uploaded by N2T
'DL&ML' 카테고리의 다른 글
Euclidean(L2 distance) to Cosine similarity Conversion (0) | 2022.11.02 |
---|---|
PEP 8 - Python 코드 스타일 가이드 (1) | 2022.10.31 |
python code 자동정렬 (0) | 2022.10.27 |
code-server에서 원하는 디렉토리 열기 (0) | 2022.10.26 |
Pairwise F-score 과 Bcubed F-score (0) | 2022.10.18 |