Logo Questions Linux Laravel Mysql Ubuntu Git Menu
 

What's the triplet loss back propagation gradient formula?

I am trying to use caffe to implement triplet loss described in Schroff, Kalenichenko and Philbin "FaceNet: A Unified Embedding for Face Recognition and Clustering", 2015.

I am new to this so how to calculate the gradient in back propagation?

like image 927
Mickey Shine Avatar asked Oct 25 '15 14:10

Mickey Shine


1 Answers

I assume you define the loss layer as

layer {
  name: "tripletLoss"
  type: "TripletLoss"
  bottom: "anchor"
  bottom: "positive"
  bottom: "negative"
  ...
}

Now you need to compute a gradient w.r.t each of the "bottom"s.

The loss is given by:
enter image description here

The gradient w.r.t the "anchor" input (fa):
enter image description here

The gradient w.r.t the "positive" input (fp):
enter image description here

The gradient w.r.t the "negative" input (fn):
![enter image description here


The original calculation (I leave here for sentimental reasons...)

enter image description here

Please see comment correcting the last term.

like image 170
Shai Avatar answered Sep 20 '22 04:09

Shai