HANA : Have A Nice AI

모두를 위한, 하나를 위한 AI

실용적인 AI/Metric Learning

Metric Learning(Image Retrieval) 이란? - 기본

KM-Hana 2021. 2. 2. 01:23

*크롬으로 보시는 걸 추천드립니다*

 

Active Learning(능동적 학습)에 이어서, 다룰 주제는 Metric Learning입니다!

Active Learning(능동적 학습) 설명 :

kmhana.tistory.com/2?category=838050

 

실용적인 Deep Learning 적용을 위한 시작

'Deep Learning을 실산업에 적용할 때 가장 큰 문제가 무엇일까?' 라는 질문에 주저없이 답변 드릴 수 있다. 첫번째도, 데이터와 레이블링 두번째도, 데이터와 레이블링 세번째도, 데이터와 레이블링

kmhana.tistory.com


 

우여곡절 끝에, 데이터를 모아서 딥러닝을 학습하려고 봤더니 문제가 생겼습니다.

 

매일 분류해야 되는 대상이 변경된다는 겁니다. 

 

분류(class) 대상이 매일 바뀌는 경우, 우리는 어떻게 문제를 해결해야 될까요?

 

대표적인 사례로는 얼굴인식(Face Recognition)이나 상품 검색(Image Retrieval) 등이 있습니다.

Metric Learning 특징

  • 두 Task에는 두 가지 공통점이 있습니다.

     1. 카테고리가 아닌, 하나의 인스턴스(Instance)를 맞춰야 합니다.

       - 예를 들어, 지금 출입한 사람이 우리 회사 사람인가? / 이 상품이 무엇인가?

 

     2. 새로운 인스턴스(Instance)가 추가되거나, 변경이 자주 일어납니다.

       - 예를 들어, 새로운 출입자가 추가되거나, 과거 상품이 제거될 수 있습니다.

 

만약, 위에 두 가지 문제를 해결해야 한다면, Metric Learning을 해결책으로 고려할 수 있습니다.

 

Metric Learning 구성

  • Metric Learning의 핵심은 크게 두 가지입니다.

     1. 어떤 거리(유사도)를 사용할 것인가?

       - Euclidean, Cosine Similarity 등

 

     2. 유사도 학습을 위해서, 어떤 Loss로 학습할 것인가? 

       - Contrastive Loss, Triplet Loss, Margin Loss 등

       - 어떤 Loss를 사용할지에 따라, 다양한 Metric learning 논문이 나오고 있습니다.

 

Deep Face Recognition: A Survey

     * "Feature Extraction을 어떻게 할 건인가?"도 Metric Learning의 핵심 주제였지만,

       CNN의 뛰어난 성능 덕분에, Feature Extraction에 대한 고민은 매우 적어졌다.

 

Metric Learning Pipeline

https://www.kimaldi.com/en/products/biometric_systems/facial_biometrics/findface-enterprise-server-sdk-facial-recognition/

1. CNN 모델을 활용하여, 새로 검색하려는 이미지의 Feature를 추출한다.

 

2. 추출한 Feature를 사전에 구축된 DB에서 검색한다.

 

※ Face Identification : 여러 사람 중 'A'라는 사람을 찾기

Face Verification : 'A'라는 사람이 'A'가 맞는지 확인

   공통점 : 검색할 대상은, 미리 DB로 구축되어 있어야 함

Metric Learning 장점

SphereFace: Deep Hypersphere Embedding for Face Recognition

1. 일반적인 Classification은 학습한 이미지에 대해서만, 인식이 가능하다.

  → 반면, Metric Learning은 학습하지 않은 이미지도 DB로 구축만 해둔다면 인식 가능하다.

 

2. 일반적인 Classification은 Feature 간의 Decision Boundary를 찾도록 학습한다.(Learn separable features)

  → 반면, Metric Learning은 비유사한 Feature들을 멀리 떨어지도록 학습한다.(Learn Large-Margin features)

             Feature 공간을 더 잘 사용할 수 있음

SphereFace: Deep Hypersphere Embedding for Face Recognition

 

Metric Learning 설명 계획 :

"실용적인 AI"의 3탄 Metric Learning은

 

1. Metric Learning의 기본 [kmhana.tistory.com/17?category=842461]

   1.1) Similarity학습을 위한 Loss

        - Contrasitive Loss

        - Triplet Loss

        - Margin Loss

 

   1.2) Feature를 어떻게 처리할 것인가? [kmhana.tistory.com/18]

        1. 어떻게 뽑을 것인가? (GeM, SPoc, MAC)

        2. 뽑은 Feature를 어떻게 후-처리할 것인가?(Whitening)

 

2. 딥러닝을 위한 Metric Learning

   - Multi-Grain

   - CGD(Combination of Multiple Global Descriptors) [kmhana.tistory.com/19]

 

순으로 진행될 예정입니다!

 

혹시, 더 좋은 논문을 읽게 된다면 추가될 예정입니다!