趋近智
基于度量的元学习方法旨在学习一个嵌入函数 fϕ,将输入映射到一个表示空间,在该空间中,可以使用简单的距离度量对新的少样本任务进行分类。像原型网络这样的算法的有效性完全取决于此嵌入空间的质量。深度度量学习提供在元训练阶段训练 fϕ 以实现这种所需结构的方法和目标函数。
主要思想是明确优化嵌入函数 ϕ,使同一类别数据点的嵌入相互靠近,而不同类别数据点的嵌入相互远离。这与标准分类损失(如交叉熵)不同,后者主要侧重于分离类别边界,而不一定在嵌入空间中强制执行紧密的类内聚类或大的类间间隔。
一种基本方法是使用对比损失。这种损失作用于示例对 (x1,x2)。如果这对属于同一类别(y=1),损失会促使它们的嵌入 fϕ(x1) 和 fϕ(x2) 靠近。如果它们属于不同类别(y=0),损失会推远它们的嵌入,但仅当它们比预设间隔 m 更近时才进行推远。
一个示例对的公式通常是:
Lcontrastive(x1,x2,y)=y⋅d(fϕ(x1),fϕ(x2))2+(1−y)⋅max(0,m−d(fϕ(x1),fϕ(x2)))2在这里,d(⋅,⋅) 表示一个距离函数,通常是欧几里得距离,而 m>0 是间隔超参数。间隔确保负样本对仅在其距离小于 m 时才对损失有贡献,从而避免模型花费精力将已经良好分离的样本对推得更远。
尽管简单,对比损失需要仔细采样样本对。随机采样样本对常常导致许多无信息量的样本对(例如,非常不相似的负样本对或非常相似的正样本对),从而减缓收敛速度。挖掘“难”或“半难”样本对(即难以正确分类的样本对)的策略通常是必需的,但会增加其复杂性。
三元组损失通过考虑三元组示例中的相对距离来解决对比损失的一些限制:一个锚点(a),一个正样本(p,与锚点属于同一类别),以及一个负样本(n,与锚点属于不同类别)。目标是确保锚点到正样本的距离小于它到负样本的距离,同样至少要有一个间隔 m。
损失函数定义为:
Ltriplet(a,p,n)=max(0,d(fϕ(a),fϕ(p))2−d(fϕ(a),fϕ(n))2+m)如果到负样本的距离 d(fϕ(a),fϕ(n))2 已经比到正样本的距离 d(fϕ(a),fϕ(p))2 大了间隔 m,则损失为零。否则,损失会惩罚模型,将负样本推得更远和/或将正样本拉近锚点。
一个三元组由一个锚点、一个正样本(同一类别)和一个负样本(不同类别)组成。损失促使锚点与正样本之间的距离比锚点与负样本之间的距离小一个间隔 m。违反此间隔的负样本(如 N2)会产生损失。
类似于对比损失,三元组损失的性能在很大程度上取决于选择三元组的策略。随机选择的三元组通常过于“简单”(负样本已经很远),导致损失为零和学习缓慢。有效训练通常依赖于三元组挖掘:
在线挖掘(在每个小批量中选择三元组)为提高效率是很常见的做法。
除了这两种,还存在其他损失,它们通常设计用于使用比简单对或三元组更多的信息:
在基础模型的元学习背景下,这些深度度量学习损失通常在元训练阶段使用。基础模型(或其一部分)作为嵌入函数 fϕ 的骨干。由各种任务组成的元训练数据集用于通过这些损失之一来优化 ϕ。目标是预训练 fϕ,使其产生的嵌入在本质上结构良好,适用于后续的少样本分类。在元测试阶段遇到新任务(支持集)时,可以预先计算支持示例的嵌入 fϕ(x) 并直接使用(例如,计算原型),然后使用简单的距离计算与查询嵌入进行比较。
针对基础模型的高维嵌入调整这些方法需要仔细考虑:
通过在元训练期间使用对比或三元组损失等目标优化嵌入函数 fϕ,基于度量的元学习方法使基础模型能够生成表示,在该表示中,即使每个类别只有非常少的示例,新类别也可以基于距离有效区分。
这部分内容有帮助吗?
© 2026 ApX Machine Learning用心打造