8

Schroff, Kalenichenko and Philbin "FaceNet: A Unified Embedding for Face Recognition and Clustering", 2015に記載されているトリプレット損失を実装するためにcaffeを使用しようとしています。トリプレット損失逆伝播勾配式とは何ですか?

これは初めてのことです。バックプロパゲーションのグラジエントを計算するにはどうすればよいですか?

+1

この損失を実装している公開PRがあります:https://github.com/BVLC/caffe/pull/3663 – Shai

答えて

14

私は今、あなたは「底」Sの各w.r.t勾配を計算する必要があなたは

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

として損失層を定義すると仮定します。
enter image description here

勾配WRT "アンカー" 入力(fa):
enter image description here

勾配WRT "正" の入力(fp):

損失は次式で与えられます。 enter image description here

勾配が「負」の入力(fn):
![enter image description here


元の計算(私は感傷的な理由のためにここに残して...)

enter image description here

commentが最後の項を修正ご覧ください。

+4

最後の1つのグラデーション「負」は2ではいけません(fa-fn )? –

+0

@MickeyShineはい、あなたは正しいです。 – Shai

+0

@MickeyShineこれらの計算をどのように実装できるかを見るには、[EucleadianLossLayer'](https://github.com/BVLC/caffe/blob/master/src/caffe/layers/euclidean_loss_layer.cpp)の実装を見てください。カフェで。 – Shai

関連する問題