Triplet loss란 Constrasitive loss의 일종으로써, 샘플된 두 개의 후보군 (positive and negative)에 대해 positive는 가깝게 negative는 멀리 배치되게 하는 방법이다.
Anchor () , Negative (), Postive () 세개의 샘플이 있을때 수식은 다음과 같다.
이때 는 유클리디안 거리를 뜻한다.
학습 과정을 통해 는 가깝게, 은 멀리 보낸다.
> 0, positive+margin < negative 인 상황.
= 0, nagative가 margin에 딱 맞게 있는 상황.
< 0, positive+margin < negative, 분류가 이미 잘 된 상황.
보통은 실험적(heuristic)하게 정하는 것 같다. 데이터셋( 데이터 분포)에 따라 최적의 margin 값이 다르기도하고, 의 조합을 어떻게 샘플링 하냐에 따라서도 distance가 달라지기 때문이다.
굳이 해보자면, 샘플링을 랜덤변수없이 항상 일정하게 뽑힐 수 있도록 조절하여 학습전에 미리 구축된 쌍들로 거리분포를 계산하여 초기값으로 선정해볼 순 있을 거 같다.