triplet loss

dev_dong·2022년 2월 15일
2
post-thumbnail

한줄요약 : positive는 가깝게, negative는 멀리 학습

triplet loss 는 anchor를 positive와 negative input과 비교하는 loss function이다.

anchor - positive의 거리는 최소화 되야하며, anchor - negative 의 거리는 최대가 되어야 함.

앞서 말한 과정의 수식이다.
첫 번째 항은 Positive와의 거리이고, 두 번째 항은 Negative와의 거리이며, α는 margin이다.
따라서 위 수식을 최소화 한다 = Positive와 가깝고, Negative와는 멀어지도록 하는 것.

하지만 모델의 성능을 높이기 위해선 Hard Positive와 Hard Negative 와 같이 학습을 방해할 요소를 제어할 필요가 있음.

그렇기 때문에 위와 같은 수식을 사용하여 제어함.

Hard Positive는 첫번째 식과 같고, Hard Negative는 두번째 식과 같음.

hard negative가 훈련 초기에는 local minima와 같이 훈련에 지장이 갈 수 있기 때문에 3번째 수식을 사용함.

triplet loss를 사용하는 방법은 sampling 을 조금 더 까다롭게 해야한다. 대충 고르면 loss 값이 0인 triplet이 많이 나오게 되어 학습 효율이 떨어질 수 있고, 0이 아닌 것만 고르면 outlier에 overfitting이 될 수 있기 때문에 sampling 방법에 비중을 좀 더 두는 편임.

profile
개발 잘하고 싶은 동근이의 공부방

2개의 댓글

comment-user-thumbnail
2022년 2월 15일

좋은 정보 감사합니다!

1개의 답글