阅读小结Deep Metric Learning via Lifted Structured Feature Embedding

原创 2016年07月10日 22:31:16

原作者的github code:https://github.com/rksltnl/Deep-Metric-Learning-CVPR16

What:

这是一篇讲图像retrieval的工作,其实也可以用运用于细力度(finegrain)的分类问题。也就是通过一张图片去搜索相关图片。比较直观的问题在于图像的传统问题

-类内差异 (比如同一物体在不同pose下的照片,可能一点都不像) -类间相似(比如不同物体在同一pose下的照片,反倒是很像)

然后比较diao的地方是,zero-shot learning没有学习过,直接test(和以前我们常用的vgg模型提取特征的感觉一样,先在一个大数据集上统计学习了一下,随后应用到了新问题上的感觉)


Motivation:

1.传统的分类算法克服不了 多分类(由于模型复杂度和分类数量相关,会过于复杂)和数据bias(比如某一类数据特别少的问题)

2.metric learning可以克服第二个问题,因为学到的是每一类的general concept,所以数据少也能学。

3.deeplearning可以克服第一个问题。但deeplearning在类内差异做的比较好,类间相似不能take full advantage(其实softmax loss有类间差异,因为分母有所有的类)

4.提出的算法lift每个batch中的差异从O(m)到O(m^2),设计了一个新的loss目标。

在摘要中写到:

In this paper, we describe analgorithm for taking full advantage of the training batchesin the neural network trainingby lifting the vector of pair-wise distances within the batch to the matrix of pairwisedistances.  

说到底就是要更discriminative!


Review:首先我们回顾一下几个东西:

1.contrast embeding

作者给出了一个公式:input是一对数据xi和xj


y是这一对的groundtruth,比方说xi,xj是不是同一类,那么y就对应的是0或者1.

f()是xi和xj的运算(比如把x输入神经网络,取出fc层的结果,这么一个函数)

D是f(xi)和f(xj)的欧式距离。那么优化这个loss,min(J),当xi和xj是同一类的时候,yij是1,那么Dij应该越小越好;如果不是同一类,yij是0,Dij应该约大越好。


2.triplet loss


这次输入为三元组{xa,xp,xn}

xa和xp是同一类,和xn不同类。所以Dap应该越小越好,Dan越大越好。所以也是优化min(J)


然后下面是一张有趣的图,说明了作者Lift与前两种的不同。(前两种loss在刻画关系上是不足的)




对应的Loss如下:




先看下面的公式:

后一项为数据i,j之间的距离,

前一项为数据i最难区分的k和数据j最难区分的数据l的距离中较大者。。(比较绕,但看公式比较容易明白,找最难分辨的一条边,而之前triplet loss固定了这条边)


所以

1.每次train的时候都是最难的边或者说pair(容易混淆的两个东西)

2.利用了整的minibatch的信息而不是固定pair

相当于O(m)变为了现在的O(m^2)pairs 一个完全图


一般来说,接下去,我们写了一个矩阵运算,就是 (x1-x2)^2 = x1^2+x2^2-2x1x2 以矩阵的形式表达,然后每次求一下最close的negative是谁就好了。

但作者又提出说,batch是随机切的,那么信息是有限的。大多数情况下,minibatch中没有那些最难的。

所以作者没有使用random的batch,而是采用随机的取出一些positive pair,然后动态的找他们最难的边(因为模型也在调整)。


然后为了防止过拟合将max函数换成log和exp(依旧是增函数)


版权声明:本文为博主原创文章,未经博主允许不得转载。 举报

相关文章推荐

[深度学习论文笔记][CVPR 16]Deep Metric Learning via Lifted Structured Feature Embedding

该工作要解决的问题是分类种类数目极多的图像分类任务。当分类种类非常多的时候会面临两个问题:(a) 分类器的优化难度会显著增加;(b) 种类数目多的时候,每一类的训练数据数量会比较少。

度量学习(Distance Metric Learning)介绍

一直以来都想写一篇metric learning(DML)的综述文章,对DML的意义、方法论和经典论文做一个介绍,同时对我的研究经历和思考做一个总结。可惜一直没有把握自己能够写好,因此拖到现在。 ...

精选:深入理解 Docker 内部原理及网络配置

网络绝对是任何系统的核心,对于容器而言也是如此。Docker 作为目前最火的轻量级容器技术,有很多令人称道的功能,如 Docker 的镜像管理。然而,Docker的网络一直以来都比较薄弱,所以我们有必要深入了解Docker的网络知识,以满足更高的网络需求。

近两年顶级会议上关于Distance Metric Learning的paper清单

上次大师兄回上海,跟导师以及师兄弟吃饭。谈到我研究生时选的DML的方向,我还是觉得这个领域相对比较艰深,近几年一直没有大的进展,而且凭直觉认为DML相关的最近的paper不会特别多。导师笑而不语。 ...

度量学习 (Metric Learning)(一)

度量学习(Metric Learning) 度量(Metric)的定义  在数学中,一个度量(或距离函数)是一个定义集合中元素之间距离的函数。一个具有度量的集合被称为度量空间。 1 为什么要用度...

Metric learning 度量学习

距离测度学习的目的即为了衡量样本之间的相近程度,而这也正是模式识别的核心问题之一。大量的机器学习方法,比如K近邻、支持向量机、径向基函数网络等分类方法以及K-means聚类方法,还有一些基于图的方法,...

Metric Learning度量学习:**矩阵学习和图学习

ML的两条主要路线,从样本中学习一个度量,或者使用样本训练一个网络。 一篇metric learning(DML)的综述文章,对DML的意义、方法论和经典论文做一个介绍,同时对我的研究经历和思考做一个...

人脸识别之SphereFace

2017的一篇cvpr,SphereFace: Deep Hypersphere Embedding for Face Recognition,继centerloss之后又一大作。 文章主要提出了归一...

METRIC LEARNING(度量学习)

度量学习也可以认为是相似度。knn最合适的是学习马氏距离,怎么学?要给出先验知识,哪两个数据更相似,欧式距离不可靠。SVM也是metric learning的一种,因为kernel matrix就...

CVPR2016代码&文章

CVPR2016 有代码的文章

Embedding Deep Metric for Person Re-identification: A Study Against Large Variations

The source codes is available at http://www.cbsr.ia.ac.cn/users/hailinshi. 李子清小组的文章,主要用于做行人的再识别...
返回顶部
收藏助手
不良信息举报
您举报文章:深度学习:神经网络中的前向传播和反向传播算法推导
举报原因:
原因补充:

(最多只允许输入30个字)