How to choose margin in triplet loss?

peteryoon·2021년 12월 29일
0

개인공부방

목록 보기
1/5

개요

Triplet loss란 Constrasitive loss의 일종으로써, 샘플된 두 개의 후보군 (positive and negative)에 대해 positive는 가깝게 negative는 멀리 배치되게 하는 방법이다.

학습 방법

Anchor (aa) , Negative (nn), Postive (pp) 세개의 샘플이 있을때 수식은 다음과 같다.

L=max(d(a,p)d(a,n)+margin,0)L = max( d(a,p) - d(a,n) + margin, 0 )

이때 dd는 유클리디안 거리를 뜻한다.

학습 과정을 통해 pp는 가깝게, nn은 멀리 보낸다.

  • LL > 0, positive+margin < negative 인 상황.

  • LL = 0, nagative가 margin에 딱 맞게 있는 상황.

  • LL < 0, positive+margin < negative, 분류가 이미 잘 된 상황.

Margin 정하는 법

보통은 실험적(heuristic)하게 정하는 것 같다. 데이터셋( 데이터 분포)에 따라 최적의 margin 값이 다르기도하고, a,p,na, p, n의 조합을 어떻게 샘플링 하냐에 따라서도 distance가 달라지기 때문이다.
굳이 해보자면, (a,p,n)(a,p,n) 샘플링을 랜덤변수없이 항상 일정하게 뽑힐 수 있도록 조절하여 학습전에 미리 구축된 쌍들로 거리분포를 계산하여 초기값으로 선정해볼 순 있을 거 같다.

profile
I'm a student

0개의 댓글