Notice
Recent Posts
Recent Comments
Link
관리 메뉴

Douglas' Space

Deep Metric Learning 본문

Computing Tech. Diary/Artificial Intelligence

Deep Metric Learning

똘키아빠 2022. 5. 2. 11:24
객체를 분류하거나 단어를 분류하거나, 또는 객체를 인식하거나 얼굴을 인식하거나 하는 많은 딥러닝 모델은 입력되는 객체들의 유사성과 차이점을 구분하는 능력이 필요합니다. 인공지능 분야에서 이러한 객체들 간의 유사성과 차이점을 거리(distance)라는 개념으로 추상화합니다. 즉 객체간의 유사성이 있다면 거리가 가깝고, 차이가 많다면 거리가 멀다고 할 수 있습니다. 이 거리를 "거리를 계산하는 함수(distance function)"의 개념으로 metric이라고 정의합니다.

 

즉 거리 함수는 두점을 입력으로 받아 두 점간의 거리를 계산해 주는 함수입니다. 우리가 일반적으로 알고 있는 거리함수는 유클리디안거리나 벡터의 내적거리입니다. 이외에도 맨하탄거리, 코사인거리 등이 존재합니다. 그리고 거리의 가까운 정도의 측정값으로 구성되는 공간을 거리공간(metric space)이라고 합니다. 또한 이러한 거리공간을 정의하는  Feature(특징)들로 구성된 공간을 잠재공간(latent space) 또는 임베딩공간(embedding space)라고 합니다. 

 

이러한 거리함수를 데이타의 성격에 따라 적용하는 것은 모델 성능에 매우 중요합니다. Deep Metric Learning이란 정해진 거리함수를 사용하는 것이라 아니라 거리함수로 정의되는 거리공간을 딥러닝을 통해 학습하는 것을 의미합니다. 다시 말해 같은 클래스에 있는 것은 거리가 짧고, 다른 클래스에 있는 것은 거리가 더욱 멀도록 학습하는 것입니다. 예들 들어 얼굴인식 분야와 같은 많은 사람의 얼굴을 인식해야 하는 경우에는 기존 분류모델에서는 거리공간의 매핑에 문제점이 존재합니다. 기존의 방법은 적당히 구분가능한 특징들을 분류하도록 학습이 되었지만 얼굴인식 분야에서는 구분이 확실이 되는 특징들이 구분이 가능한 공간에 매핑이 되도록 구분되어야 합니다. 즉 다른 사람의 얼굴특징들과는 거리가 멀고 같은 사람의 특징들은 거리가 가깝도록 엠베딩공간이 형성되어야 합니다.
 
또 다른 예로 심장병을 진단하는 모델을 예를 들어 보겠습니다. 진단을 위해, 재산, 학력, 나이, 성별, 체중 등의 속성데이타를 사용한다고 가정할 때 이 중에 심장병을 진단하는데 정말 관련 있는 속성을 식별하는 것이 중요합니다. 의사가 판단하기에 학력이나 성별은 심장병과 관련이 없는 것이기 때문입니다. 이러한 속성 등을 추출하는 것을 feature engineering이라고 하는데, Deep Metric Learning은 관련이 높은  feature들을 DNN을 통해 식별하는 것과 같다고 할 수 있습니다. 위에서 설명한 얼굴인식에서 처럼 특정한 개인을 구별할 수 있는 얼굴의 특징을 추출하는 것과 같은 문제입니다. 

 

 
기존의 딥러닝모델과 softmax함수를 통해 식별되는 방법으로는 이러한 문제를 해결하기 어렵기 때문에 새로운 loss function을 정의하여 딥러닝 모델을 구성합니다.  대표적인 함수로는 contrastive loss, triplet loss 함수 등이 있습니다. 이들은 유사한 것과 유사하지 않은 것을 입력하여 유사한 것은 loss function의 값을 감소시키고, 유사하지 않은 것은 loss function의 값은 증가하는 방향으로 학습을 시킵니다. 마치 지난번 GAN에서 진짜와 가짜에 대해 loss function을 감소 및 증가하는 것과 유사하다고 할 수 있습니다. 
Comments