티스토리 뷰

Paper/Vision

Triplet Loss

기내식은수박바 2019. 7. 29. 15:02
반응형

Triplet Loss (wiki)

  • Triplet loss는 baseline인 anchor를 positive, negative input들과 비교하는 인공 신경 네트워크에 대한 손실 함수 (loss function)임.
  • anchor input과 positive input 사이의 거리는 최소화 되야하며, negative input과의 거리는 최대가 되야함.
  • 보통 워드 임베딩 (word embeddings), 심지어는 벡터, 행렬 학습과 같은 임베딩 학습의 목적으로 유사성을 학습하는 데 사용됨.
  • 이 손실 함수는 유클리디안 거리 (Euclidean distance) 함수를 사용하여 설명할 수 있음.

  • A : anchor input.
  • P : A와 동일한 클래스의 positive input.
  • N : A와 다른 클래스인 negative input.
  • α : positive와 negative 쌍 사이의 margin (여백).
  • f : 임베딩 (embedding).

 

Triplet Loss (facenet)

  • 임베딩은 아래와 같이 표현할 수 있음.

  • d-차원의 유클리디안 공간에 이미지 x를 임베딩 한다는 뜻임.
  • 추가적으로, 우리는 이 임베딩 한 것을 d-차원의 hypersphere (3차원보다 큰 차원으로 확장한 것) 에 거주하도록 아래 예시처럼 제한함.

  • 이 loss는 문맥의 근접이웃 분류 (context of nearest-neighbor classification) 에서 영감을 받음.
  • 우리는 특정한 사람의 이미지 x(ai, anchor) 가 다른 사람의 이미지 x(ni, negative) 보다 동일한 사람의 모든 다른 이미지들 x(pi, positive) 과 더 가깝게 되도록 원함.

  • α는 positive와 negative 쌍 사이에 적용된 margin임.
  • T는 훈련 집합에서 모든 가능한 triplet의 집합이며, cardinality N을 가지고 있음. 
  • 최소화되는 손실 L은 다음과 같음.

  • 가능한 모든 triplet을 생성하는 것은 쉽게 만족하는 많은 triplet을 만들 수 있음. (식 1.의 제한을 수행하는)
  • 이러한 triplet들은 훈련에 기여하지 않으며, 네트워크를 통과할 때 더 느린 수렴을 야기함.
  • active하고 모델 개선에 기여할 수 있는 단단한 triplet을 선택하는 것이 중요함.

Triplet Selection

  • 빠른 수렴을 보장하기 위해서 식 1에서 triplet 제한을 위반하는 triplet을 선택하는 것은 중요함.
  • 이 것이 의미하는 것은 x(ai) 가 주어졌을 때, 우리는 x(pi, hard positive) 가 (1), 그리고 유사하게 x(ni, hard negative) 가 (2) 처럼 선택되는 것을 요구함.

(1)
(2)

  • 전체 훈련 집합에서 argmin과 argmax를 계산하는 것은 불가능함. 추가적으로, 잘못 레이블되고 미흡하게 이미지화된 얼굴들이 hard positive와 negative를 지배하기 때문에 훈련이 제대로 안될 수 있음.
  • 이러한 사고를 피하기 위한 두 가지 분명한 선택들이 있음.
    1. 가장 최근 네트워크 체크포인트를 사용하고 데이터 부분집합에서 argmin과 argmax를 계산하여 매 n번 단계마다 triplet offline을 생성함.
    2. triplet online을 생성함. 이 것은 mini-batch 내에서 hard positive / negative exemplars를 선택함으로써 행해질 수 있음.
  • 여기서 우리는 online 생성에 초점을 맞추고 수천 개의 examplar의 순서로 커다란 mini-batches를 사용하고 mini-batch 내에서만 argmin과 argmax를 계산함.
  • anchor와 positive 거리를 의미있게 표현하기 위해, 어느 하나의 신원에 대한 최소한의 exemplar가 각 mini-batch에 존재하도록 보장해야함.
  • 연구에서 우리는 mini-batch별 약 40개 얼굴의 신원이 선택되도록 훈련 데이터를 샘플함.
  • 추가적으로, 무작위로 샘플된 negative 얼굴들도 각 mini-batch에 추가됨.
  • 가장 hard한 positive를 고르는 것 대신에, 우리는 mini-batch내 모든 anchor-positive 쌍을 사용하면서 hard negative를 선택함.
  • 우리는 mini-batch 내 모든 anchor-positive 쌍과 hard anchor-positive 쌍을 나란히 비교하지는 않지만, 실제로 모든 anchor-positive 생성 방법이 더 견고하고 훈련을 시작하는데 있어서 약간 더 빠른 속도로 수렴된다는 것을 발견했음.
  • 또한, 우리는 online 생성과 함께triplet의 offline을 생성 하는 방법을 연구했고 작은 배치 사이즈를 사용할 수는 있지만 실험은 결정적이지 않았음.
  • 가장 hard한 negative를 선택하는 것은 실제로 훈련 초기에 나쁜 로컬 미니마 (local minima) 로 이어질 수 있으며, 특히 충돌된 모델을 야기할 수 있음. (ex. f(x) = 0)
  • 이를 완화하기 위해서, 아래와 같은 x(ni)를 선택하는 것이 도움이 됨.

  • 우리는 이러한 negative exemplars를 semi-hard라고 부르며, 이 semi-hard는 anchor에서 positive exemplar 보다 더 멀리 떨어져 있지만, 여전히 제곱된 거리가 anchor-positive 거리에 가깝기 때문에 어려움.
  • 그러한 negatives는 여백 (margin) α안에 있음. 언급한 것과 같이, 정확한 triplet 선택은 빠른 수렴을 위해 중요함.
  • 한편으로 우리는 확률적 경사 하강법 (SGD, Stochastic Gradient Descent) 동안 수렴을 향상시키는 경향이 있으므로 작은 mini-batch를 사용하고자 함.
  • 반면에, 구현 세부 사항을 통해 수십에서 수백개의 표본을 보다 효율적으로 배치 할 수 있음.
  • 그러나, 배치 사이즈 관점에서 주요 제한은 우리가 mini-batch내에서 hard와 관련된 triplet을 선택하는 방법임.
  • 대부분의 연구에서 우리는 약 1800개의 exemplar의 배치 사이즈를 사용함.

 

반응형
댓글
반응형
공지사항
최근에 올라온 글
최근에 달린 댓글
Total
Today
Yesterday
링크
TAG
more
«   2024/04   »
1 2 3 4 5 6
7 8 9 10 11 12 13
14 15 16 17 18 19 20
21 22 23 24 25 26 27
28 29 30
글 보관함