TechY

[논문 정리] Unsupervised Deep Embedding for Clustering Analysis 본문

[논문 정리]

[논문 정리] Unsupervised Deep Embedding for Clustering Analysis

hskimim 2020. 12. 15. 21:20

FAIR팀에서 2016년에 제안한 Unsupervised Deep Embedding for Clustering Analysis 논문을 간단하게 정리하려 한다.

해당 논문은 Input 데이터를 임베딩하고 클러스터링까지 함께 함으로써, 클러스터링에 적합한 임베딩을 학습한다는 것에 학습의 목표가 있다. 

 

모델이 학습하는 과정을 하나씩 살펴보면 아래와 같다. 

 

Network Structure

 

1) 인풋 데이터를 Stacked Auto Encoder 에 encoding 하면서 Latent Vector Space 로 차원 축소를 해준다.

2) encoding 된 latent vector 를 미리 정해둔 K개의 클러스터로 클러스터링해준다. 이 과정에서 centroid와 데이터 포인트 간 거리로 첫 번째 loss 가 도출된다. 

3) 다시 latent vector를 decode 하여 re-construct 하고 re-construction loss 를 통해 두 번째 loss 를 도출한다.

4) 이렇게 나온 두 가지 loss 를 함께 최적화한다. 

 

1~4 단계를 계속 반복하면서 loss 의 감소가 특정 비율이 될 때까지 학습하면 된다. 이와 같이, 모델 학습은 간단한 편이다. 주목할 점을 몇 가지 들자면 아래와 같다.

 

1. 어떻게 임베딩한 latent vector의 i 번째 데이터 포인트와 centroid 간의 거리를 정의하는가

- t-SNE 알고리즘에서 임베딩된 벡터 간 거리를 정의하는 식을 사용한다. 거리가 가까울 수록, 같은 클러스터에 할당될 확률이 높게끔 만들어야 하기 때문에, Euclidean distance 에 역수를 취해주는데, 안정적인 값을 위해, 1을 더해주고 전체를 더한 것으로 나눠 확률값의 형태를 띄게 한다.

similarity measure between embedding and centroids

 

2. Clustering에서 KL loss 를 사용한다. 이또한, t-SNE의 임베딩 업데이트 방법을 참고한 것으로, target 으로 하는 분포는 실험적으로 아래와 같이 설정하였다. f 값은 클러스터 j 에 있는 data 의 갯수이다. 

KL divergence as a Loss

 

target distribution

2016년에 나온 논문으로, 클러스터링 task 에 최적화된 임베딩을 구축한다는 것이 흥미롭다. 최근 나온 논문들 중, sentence embedding 과정에 similarity 를 supervised learning 형태로 정의내리면서 학습한 결과로 학습 후에 클러스터링이 구성되는 연구와 전신같은 느낌이 들었다. 

 

Word2Vec 알고리즘과 같은 임베딩 모델을 pre-trained 한 후, 추가적으로 DEC 모델을 클러스터링하면 어떤 결과가 나올 지 해볼만한 주제인 것 같다...