1. Introduction
Siamese Network에 새로운 triplet loss를 추가하여 더 강력한 features를 얻고자 한다. 각 triplet은 negative instance와 비교하여 exemplar에 대한 positve instance의 확률을 구하는 matching probability 정의하고 이를 통해 모든 triplet 사이의 joint probability를 극대화하는 것을 목표로 한다.
1개의 exempler에 대해서 M,N(M: exempler-positive pairs, N: exempler-negative pairs, M,N≥2)의 batch를 독립적으로 설정하고 MN triplet-wise elements를 training에 적용한다. 이를 통해 더 많은 elements를 얻을 수 있으며 성능을 더욱 향상 시킬 수 있다. 또한 original logistic loss와 비교하여 triplet loss의 우수성에 대하여 알아볼 것이다. triplet은 vp≤vn인 상황(negative instance가 object로 labeling되어 error가 발생하는 상황)에서 back-propagation에 대해서 더 강력한 feedback을 제공하여 정확도를 향상시킬 것이다.
2. Revisiting the Siamense network for tracking
Siamense network는 총 두개의 branch로 이루어져있다. 서로 다른 input을 받게 되는데 하나는 exempler라고 불리는 object bounding box를 받게 되고 다른 하나는 searching region을 받게 된다. 이 두개의 network branches는 서로 다른 input에 대하여 서로 parameter을 공유하기 때문에 완전히 동일한 transformation처럼 보인다. Simanse network는 각 frame마다 가장 비슷한 instance(positive or negative)를 찾는 것을 목표로 한다. 해당 논문에서는 Simanse network 중 fully convolution layers를 사용한 SiamFC에 대해서 다루고 있으며 관련된 식은 아래와 같다.
3. Siamese network with triplet loss
SiamFC는 앞서 설명하였듯이 exempler, positive instance, negative instance를 나누어 사용하였다. 하지만 SiamFC에서는 pairwise loss를 사용하고 instace 사이의 숨겨진 관계에 대해서는 무시한다. 하지만 새로운 triplet loss는 instance 사이에 potential relation에 대하여 가능한 많이 얻고자한다. 또한 X를 분리하였듯이 similarity scores(V)를 positive score와 negative score로 분류하고 이를 softmax function을 이요해서 matching probability를 구하였다.
또한 모든 score-pairs에 대하여 probability를 최대화하기 위해 negative logarithim을 사용하여 다음과 같이 손실함수를 구하였다.(서로다른 크기의 set에 대해 같은 scale의 loss를 유지하기 위해 1/MN balance weight를 사용)
SiamFC에서 사용한 M+N의 variates를 사용하는 loss function과 비교했을 때 새로운 triplet loss는 MN의 다양한 variates를 사용함으로써 훨씬 더 많은 underlying information을 capture 해낼 수 있다.
4. Relationship between logistic loss and triplet loss
logistic loss 와 triplet loss 에 대해서 본격적으로 비교하기 위해 먼저 logistic loss를 다음곽 같이 변형하였다. triplet loss와 같은 형태로 변경하기 위해서 logistic loss에서 usage of exemplar-instance pair의 빈도를 증가시키고 constant weight를 추가하였다.최종식은 아래와 같다.
4.1 Comparison on the gradients
gradients play는 back-propagation에 직접적으로 포함되기 때문에 딥러닝에서 매우 중요하다. 따라서 각 loss function의 gradients 를 구하면 다음과 같다.
위의 식에서 보면 logistic loss의 gradients는 각각의 변수에 대해서만 영향을 받는다. 하지만 triplet loss의 gradients를 보면 vp,vn 두 변수에 대해서 동시에 영향을 받음을 알 수 있다. 즉 logistic loss는 vp, vn으로부터 오는 모든 정보를 효과적으로 활용하지 못하는 것이다. ∂Tl/∂vp는 vp에 대한 정보만을, ∂Tl/∂vn은 vn에 대한 정보만을 활용하고 있는 것이다. 아래의 사진을 보면 알 수 있듯이 각 gradients는 vp, vn에 독립적으로 영향을 받고 있다. gradient가 back-propagation에 매우 적은 feedback을 제공하고 있는 것이다.
반면에 triplet loss의 gradients를 아래 그림을 통해 살펴보면 vp,vn 동시에 gradients에 영향을 주고 있음을 알 수 있다. 즉 triplet loss의 gradients는 더 많은 정보를 포함하며 back-propagation에 더 나은 feedback을 제공해주고 있음을 알 수 있다. 논문에 있는 다른 실험 결과들을 통해서 triplet loss의 우수성을 충분히 알 수 있다.
궁금한점
negative logarithm?
이상으로 Trip Loss in Siamese Network for Object Tracking 논문 Rivew를 마치도록 하겠습니다.
확실히 아는 지식이 없다보니
단지 논문 내용을 이해하고 정리하기에 급급한 것 같아요...
어떻게 응용되어지고 적용되는지는 차차 공부를 해봐야될 것 같아요
수정 사항이 있거나 미흡한 부분은 조금씩 고쳐나가도록 하겠습니다.
험난한 딥러닝의 길....열심히 달려나가보겠습니다!!