图片来自论文Improved Deep Metric Learning with Multi-class N-pair Loss Objective
Distance Metric Learning学习的相对距离,而不在乎模型的输出与标签差距是多少。包含如图所示的两种形式, x x x是代表输入样本, y y y是代表对应的标签, f f f是代表模型:
(1)contrastive loss:输入是两个(组)样本,计算loss时,需要区分两个样本是否属于同类,若属于同类(相似),loss等于距离的值,若不属于同类(不相似)并且距离大于m,loss的值忽略不计(样本易分,不关注),否则等于m减去两个样本的距离。
L cont m ( x i , x j ; f ) = 1 { y i = y j } ∥ f i − f j ∥ 2 2 + 1 { y i ≠ y j } max ( 0 , m − ∥ f i − f j ∥ 2 ) 2 {L}_{\text {cont }}^{m}\left(x_{i}, x_{j} ; f\right)=\mathbf{1}\left\{y_{i}=y_{j}\right\}\left\|f_{i}-f_{j}\right\|_{2}^{2}+\mathbf{1}\left\{y_{i} \neq y_{j}\right\} \max \left(0, m-\left\|f_{i}-f_{j}\right\|_{2}\right)^{2} Lcont m(xi,xj;f)=1{yi=yj}∥fi−fj∥22+1{yi=yj}max(0,m−∥fi−fj∥2)2
(2)triplet loss:输入是三个(组)样本,当与负样本距离大于正样本,并且差值大于m时,loss忽略不计(样本易分,不关注),学习得目标是使得与正样本之间得距离越小,与负样本之间的距离越大。
L tri m ( x , x + , x − ; f ) = max ( 0 , ∥ f − f + ∥ 2 2 − ∥ f − f − ∥ 2 2 + m ) {L}_{\text {tri }}^{m}\left(x, x^{+}, x^{-} ; f\right)=\max \left(0,\left\|f-f^{+}\right\|_{2}^{2}-\left\|f-f^{-}\right\|_{2}^{2}+m\right) Ltri m(x,x+,x−;f)=max(0,∥∥f−f+∥∥22−∥∥f−f−∥∥22+m)
距离函数可以自定义,图中使用的是欧式距离。
论文Improved Deep Metric Learning with Multi-class N-pair Loss Objective提出了构造多个负样本,即选取了一对正样本对和 N N N个负样本对,选取其他所有不同类别的样本与其组合得到负样本对,下图c。
loss函数转变为(距离用相似度代替了):