跳过正文
  1. Posts/

Similarity learning 和Metric learning

目录

Similarity_learning
#

相似性学习(Similarity learning )有监督机器学习,它与回归和分类密切相关,但目标是从实例中学习一个相似函数,以衡量两个对象的相似程度或相关程度。

Similarity learning通常有四种setups:

  * regression similarity learning  在这种方式中,给出的数据是 ![(x_{i}^{1},x_{i}^{2})](https://wikimedia.org/api/rest_v1/media/math/render/svg/cfa249357a1b4a7baf332041d67e480d6bb1f8fb)

  和他们的相似度 

y_{i}\in R
.  目标是学习到一个函数
f(x_{i}^{1},x_{i}^{2})\sim y_{i}
,对于
(x_{i}^{1},x_{i}^{2})
 给出yi的近似值。 * Classification similarity learning  给出数据 
(x_{i}^{1},x_{i}^{2})
  和他们是否相似
y_{i}\in {0,1}
 。目标是训练出一个分类器,能够完成对一组
(x_{i}^{1},x_{i}^{2})
 是否相似的二分类判断。 * Ranking similarity learning 给出有序三元组
(x_{i},x_{i}^{+},x_{i}^{-})
,其中 
x_{i}
 is known to be more similar to 
x_{i}^{+}
 than to 
x_{i}^{-}
 。目标是训练出一个函数,使得对于新的三元组 
(x,x^{+},x^{-})
,满足
f(x,x^{+})>f(x,x^{-})
。容易看出,这种方式采取了比回归更弱的监督形式,因为不需要提供精确的相似性度量,只需要提供相似性的相对顺序。因此,这种ranking-based的相似性学习更容易应用于实际的大规模应用 * Locality sensitive hashing (LSH)   局部敏感哈希和普通哈希的不同就是,相似的项有更大的概率被放到同一个桶中。

顺便一提,这里有一个叫triplet loss 的概念,

这里写图片描述

如上图所示,triplet是一个三元组,这个三元组是这样构成的:从训练数据集中随机选一个样本,该样本称为Anchor,然后再随机选取一个和Anchor (记为x_a)属于同一类的样本和不同类的样本,这两个样本对应的称为Positive (记为x_p)和Negative (记为x_n),由此构成一个(Anchor,Positive,Negative)三元组。

我们发现,triplet loss 其实就是在ranking similarity learning 问题中,学习similarity function时的loss

Metric learning
#

相似性学习与距离度量学习密切相关。度量学习的目标是在对象上学习一个距离函数。度量或距离函数必须遵循四个公理:非负性、不可分辨的恒等式、对称性和次可加性/三角形不等式。在实际应用中,度量学习算法忽略了不可分辨物体的身份条件,学习了一个伪度量。

相关文章

persion reid 论文列表

Key: (1). Pose-driven, body part alignment, combine whole feature and body part feature, focus on alignment of part model, (2). Combine image label and human attributes classes, do classification with attributes and identity learning