43. Triplet Loss

2023. 9. 18. 14:12Google ML Bootcamp/4. Convolutional Neural Networks

network가 output으로 0을 출력하는 경우 f(image)=0인 경우, 항상 해당 수식을 만족함을 주의.

 

왜 triplet(삼중항)이냐면, database image(A), positive input image(P), negative input image(N)에 대한 loss를 측정하기 때문.

- 세 image에 대해 고려하기 때문에 삼중항이라고 부른다.

 

목적식은 결국 d(A,P)가 작아지고, d(A,N)이 커지길 원한다. 

- 또는 적어도 d(A,P) <=  d(A,N)이 되어야 한다.

- 이때 f(image)=0인 network라면 목적식을 항상 만족하므로 a라는 margin hyperparameter항을 추가시킨다.

- margin은 d(A,P)와 d(A,N)의 차이가 더욱 크게 나도록 조정해준다.

 

margin의 역할?

- d(A,P)와 d(A,N)의 차이 + margin까지 더한게 0보다 작아야하므로 목적식을 만족하기가 더 빡세졌다는 의미.

 

Loss function : 목적식을 만족시켰을 경우 loss=0으로 설정.

One-Shot Learning을 위한 모델을 만들고는 있지만, 모델 학습시에는 similarity를 학습하기 위해 동일한 사람에 대해 여러개의 training set이 존재해야한다.