DL&ML

Hardcluster (On Mitigating Hard Clusters for Face Clustering) 리뷰

kongsberg 2022. 10. 28. 14:32
728x90

Abstract


Face clustering은 Face recognition의 large-scale unlabeled dataset을 해결하기 위한 분야이다.

하지만 Face clustering에는 Challenge가 있다. 바로 ‘hard cluster’이다.

Hard cluster란 cluster의 high Sparsityhigh variation 때문에 발생한다.

이 논문은 이 문제를 해결하기 위해 NeighborhoodDiffusion-based Density (NDDe)와 Transition-Probability-based Distance (TPDi) 방법을 제안한다.

Introduction


위 figure (a),(b)를 보면 cluster size와 sparsity가 다양하고 끝 쪽에 있는것을 hard cluster들이라고 할 수 있다.

(c),(d)를 cluster size와 sparsity가 작아질수록 정확도가 점점 떨어지는 것을 볼 수 있다.

이런 문제가 생기는 이유는

  1. Density가 작으면 더 관대한 distance threshold가 필요해진다. —> misclassifaction 가능성이 커진다.
  1. 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]을 학습)

  1. anchor Xi에 대해 Top k개에 대해서 KNN으로 (cosine_similarity 순) 나열함
  1. 모두 Feature refinement에 통과
  1. Concat해서 MLP 통과
    • Sij = MLP([ti,tij])
  1. Sigmoid통과 시켜서 모든 값의 합이 1이 되도록 함 (확률로 변환)
    • pij = Sigmoid(S)
  1. 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

회사에서 사용하는 데이터 셋과 결과는 공개할 수 없지만, 꽤 괜찮은 성능을 보여줌 (다른 모델들도 실험하는 중이지만 아마 이 모델을 선택할 것 같음

  1. Threshold distance를 0.5~1.0까지 미세하게 실험해보기
    1. 회사 data의 경우 0.99정도일때가 optimal 값이었음
  1. Batch size 늘려보기
    1. 모델이 작아서 충분히 늘려볼만함 (512 → ?)
  1. KNN할 때 Top K 변경 (클러스터 당 instances 개수에 맞춰서 조절)
    1. mean + 0.3 시그마 정도로 설정 (ms1m 평균 : 67, 시그마 : 39)

Uploaded by N2T

728x90