度量学习和对比学习的区别

问题描述 投票:0回答:2

查阅了一些资料,知道contrastive learning和metric learning的目标都是学习这样一个embedding空间,相似的样本对靠得很近,不同的样本对很远。但是度量学习和对比学习有什么区别呢?我无法理解。

有人可以给些建议吗?谢谢。

machine-learning deep-learning embedding supervised-learning self-supervised-learning
2个回答
0
投票

根据 ,“度量学习算法基本上旨在找到度量的参数,使其最好地同意(不同意)某些约束,以努力近似底层语义度量”。

根据带有代码的论文,“度量学习的目标是学习将对象映射到嵌入空间的表示函数。嵌入空间中的距离应保持对象的相似性——相似的对象靠近,不同的对象远离. 已经为Metric Learning开发了各种损失函数,例如contrastive loss引导同一类的对象映射到同一点,不同类的对象映射到距离大于margin的不同点。 triplet loss也很流行,它要求锚样本和正样本之间的距离小于锚样本和负样本之间的距离。”

在我看来,对比学习是一种度量学习。


0
投票

在我看来,度量学习的目的是学习一个嵌入函数,这样两个在概念上(或语义上,即在高层,而不是像素层)相似的样本也应该是在嵌入空间中关闭,其中嵌入通常是 d 维向量。

  • 如果模型正确捕获了相似性函数,您应该能够通过对嵌入空间上的欧几里德距离这样简单的东西进行推理来“比较”样本。

  • 度量学习的一种流行方法是 Siamese Networks,其中您有两个神经网络,其中第二个是第一个的副本(即相同的层和权重)。在训练期间,您以 (anchor, positive) 和 (anchor, negative) 的形式提供数据样本对:基本上,您强制正样本对共享一个公共嵌入,而负样本与锚点分开。实际上,存在这种想法的变体,例如三元组损失和一个或多个“边距”的引入(以防止崩溃的嵌入和明显的解决方案。)

  • 度量学习的主要动机是比较输入空间中的两个数据点通常是无意义和模棱两可的(例如,由于蓝天而不是飞机本身,可以发现飞机图像相似),因为你不能捕获数据的高级(或语义)特征。

相反,对比学习 尝试约束模型以学习输入数据的合适表示。

  • 同样在这种情况下,您有成对的输入,但不同之处在于第二个输入通常是第一个输入的“变体”。这通常是通过数据扩充来完成的。在某些情况下,您从同一张图像开始,将其扩充两次(但不同!)以获得它的两个版本。
  • 目标是使模型学习特征以有意义的方式表示概念上相似的数据:例如,您可以教模型旋转/平移不变性。
  • 对比学习的应用通常是预训练,后期微调旨在提高(分类)性能,确保属性(如不变性)和鲁棒性,同时减少使用的数据数量,甚至提高低拍摄你想要正确预测一些新类的场景,即使模型是在零个或很少的此类样本上训练的。

总而言之,度量学习用于比较数据以了解它们的相似性(如人脸识别),而对比学习则处理学习更好的表示以在各个方面改进模型。我可以补充一点,对我来说,这两个领域都属于所谓的表示学习,这是一个非常通用和广泛的概念。

最新问题
© www.soinside.com 2019 - 2024. All rights reserved.