三元组损失“Deep Metric Learning via Lifted Structured Feature Embedding”

http://www.cnblogs.com/wangxiaocvpr/p/5921074.html

caffe实现解释:https://blog.csdn.net/zziahgf/article/details/78568696

tensorflow实现:http://10.1.2.209/lianjie/install-packages/blob/master/metric_loss_ops.py#L410

caffe实现:https://github.com/rksltnl/Deep-Metric-Learning-CVPR16/

将mini-batch中样本对距离向量(O(m) )提升到距离矩阵(O(m2) ),并基于此定义了一个新的结构化损失函数。

对比损失及triplet loss回归

略。

方法描述

使用训练集中的所有正样本对及负样本对定义结构化损失函数:

J=12Pi,jPmax0,Ji,j2

Ji,j=maxmaxi,kNα-Di,k,maxj,lNα-Dj,l+Di,j

其中P 是所有的正样本对,N 是所有的负样本对,这个函数有两个计算难点:(1)它是非平滑的,(2)计算梯度需要挖掘所有的样本对好几次。

 

使用两种方式解决上述问题:首先在函数上优化一个平滑的上边界,其次,对于大数据常用的方法类似,我们采用随机的方法(随机采样一部分正样本对),在选择困难样本对,使用mini-batch中所有样本的信息。

图2a,2b显示了batch_size = 6的对比和三元损失嵌入空间,增加额外的顶点比增加额外的边计算量大的多,增加顶点带来了额外的I/O、存储。

 

为使用batch的全部信息,使用batch中所有的样本对,即从O(m) 到Om2 ,图2c展示了将样本对转化成全连接的致密的矩阵距离。加入某batch具有c维特征X∈Rm×c ,batch所有特征平方范数组成的列向量为x=f(x1)22,…,f(xm)22T ,平方距离矩阵可以使用下式计算:

D2=x1T+1xT-2XXT

其中

Dij2=fxi-f(xj)22

 

随机样本对产生的负边含有的信息非常少,它们基本是easy样本,加入了采样策略,随机采样一小部分正样本对,然后增加困难的负样本。图3显示了一个正样本对困难负样本的挖掘过程,对于正样本对的每个样本,寻找困难负样本,这与triplet损失中只对anchor找负样本不同。这个过程可以使用平方距离矩阵D2 快速实现。

 

由于采用嵌套的max 函数来寻找单个 hardest negative 往往导致网络收敛到一个 bad 局部最优解,使用平滑上边界优化,每个batch的损失函数定义为:

Ji,j=logi,kNexp⁡{α-Di,k}+j,lNexp⁡{α-Dj,l}+Di,j

J=12Pi,jPmax0,Ji,j2

梯度后向传播的算法为:

损失函数对于距离的梯度为:

JDi,j=1PJi,j1Ji,j>0

JDi,k=1PJi,j1Ji,j>0-exp⁡{α-Di,k}exp⁡{Ji,j-Di,j}

JDj,l=1PJi,j1Ji,j>0-exp⁡{α-Dj,l}exp⁡{Ji,j-Di,j}

 

图4介绍了对比损失和triplet损失可能失败的几种情况,对于对比嵌入(图4a),当随机挑选的负样本与另外一类的某样本共线时,失败;对于triplet嵌入(图4b),当采样的负样本在采样的正样本和anchor的margin边界内时失败;这是对比损失和三元损失均将正样本xi推向了第三类。在提出的嵌入空间中(4c),给出了足够多的随机样本,在margin边界内的困难负样本xk将正样本xi推向了正确的方向。

 

实验结果

基于深度学习的计算机视觉: 原理与实践 (下部)

02-22
本课程适合具有一定深度学习基础,希望发展为深度学习之计算机视觉方向的算法工程师和研发人员的同学们。 基于深度学习的计算机视觉是目前人工智能最活跃的领域,应用非常广泛,如人脸识别和无人驾驶中的机器视觉等。该领域的发展日新月异,网络模型和算法层出不穷。如何快速入门并达到可以从事研发的高度对新手和中级水平的学生而言面临不少的挑战。精心准备的本课程希望帮助大家尽快掌握基于深度学习的计算机视觉的基本原理、核心算法和当前的领先技术,从而有望成为深度学习之计算机视觉方向的算法工程师和研发人员。 本课程系统全面地讲述基于深度学习的计算机视觉技术的原理并进行项目实践。课程涵盖计算机视觉的七大任务,包括图像分类、目标检测、图像分割(语义分割、实例分割、全景分割)、人脸识别、图像描述、图像检索、图像生成(利用生成对抗网络)。本课程注重原理和实践相结合,逐篇深入解读经典和前沿论文70余篇,图文并茂破译算法难点, 使用思维导图梳理技术要点。项目实践使用Keras框架(后端为Tensorflow),学员可快速上手。 通过本课程的学习,学员可把握基于深度学习的计算机视觉的技术发展脉络,掌握相关技术原理和算法,有助于开展该领域的研究与开发实战工作。另外,深度学习之计算机视觉方向的知识结构及学习建议请参见本人CSDN博客。 本课程提供课程资料的课件PPT(pdf格式)和项目实践代码,方便学员学习和复习。 本课程分为上下两部分,其中上部包含课程的前五章(课程介绍、深度学习基础、图像分类、目标检测、图像分割),下部包含课程的后四章(人脸识别、图像描述、图像检索、图像生成)。
©️2020 CSDN 皮肤主题: 大白 设计师: CSDN官方博客 返回首页
实付0元
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、C币套餐、付费专栏及课程。

余额充值