Improved Deep Metric Learning with Multi-class N-pair Loss Objective

less than 1 minute read

http://www.nec-labs.com/uploads/images/Department-Images/MediaAnalytics/papers/nips16_npairmetriclearning.pdf

  1. batch size N개 만큼 쿼리 샘플을 뽑는다. N개의 모든 샘플은 서로 다른 class라 하자.
  2. 쿼리 샘플들의 각각의 샘플에 대해서 같은 클래스의 positive example N개를 뽑는다.
  3. 1에서 뽑은 N개의 샘플에 대해서 2에서 뽑은 같은 클래스의 샘플을 positive example로 쓴다.
  4. 1에서 뽑은 N개의 샘플에 대해서 2에서 뽑은 다른 클래스의 샘플을 negative example로 쓴다.
  5. N을 batch size만큼 한다는 것이 중요하다. 이 때 필요한 example은 2N개. triplet loss가 3N, (N+1) tuplet loss가 (N+1)*N개 필요한 것에 비하면 적은 수다.

label 갯수 L이 커지면, L에서 N을 뽑을 때의 negative 신뢰도가 떨어지므로 Hard negative class mining을 해야한다. 이 논문에서 제안하는 방법은 다음과 같다.

여기서 negative class를 pick할 때 triplet constraint를 무시한다고 되어 있는데, 이는 전통적인 개념 같다. https://whatis.techtarget.com/definition/triple-constraint 를 참고.

Hard negative class mining과 관련해서 볼 만한 논문 => https://arxiv.org/abs/1512.05227 labeler가 이터레이션 중간마다 데이터를 확인하여 필터링한 결과를 다음 주기의 학습데이터로 쓰는 방식이 이채롭다. 그 와중에 class mining은 어떻게 하나?

Categories: ,

Updated:

Comments