概述
它是人脸识别、图像搜索和推荐系统背后的基础,这些系统需要对事物进行比较,而不仅仅是对它们进行分类。
深入探讨
度量学习训练模型来生成嵌入,即距离反映相似性的向量。 Triplet loss 一次使用三个输入来实现此目的:锚点、正值(与锚点相同的类别)和负值(不同的类别)。目标将锚点推向正值,而不是负值,至少有固定的幅度。形式上,损失为 max(0, d(a,p) - d(a,n) + margin),其中 d 通常是欧几里德距离。 Google 的 2015 FaceNet 普及了这种方法,直接学习 128 维人脸嵌入。训练完成后,您可以通过计算距离来比较任意两个项目,新身份无需重新训练。这种开放集能力就是度量学习能够支持分类无法轻松处理的验证和检索任务的原因。
现实世界的实施
FaceNet 式人脸验证:手机和护照门通过检查两个人脸嵌入是否在距离阈值内来确认身份。
视觉产品搜索:电子商务网站允许购物者上传照片并通过最近邻嵌入查找来检索视觉上相似的商品。
说话者验证:语音助手嵌入语音样本并将其与注册的个人资料进行比较,以确认谁在说话。
签名和手写验证:银行嵌入参考和查询签名,并在距离超过学习范围时标记伪造。
Triplet Loss 和度量学习的未来
纯三元组损失越来越多地被批次范围的目标所取代,例如多重相似性、代理锚点和对比损失 (InfoNCE),这些目标每步都会比较许多对并更快地收敛。 SimCLR 等自我监督方法表明,通过将增强视图视为积极因素,度量学习可以在没有标签的情况下发挥作用。随着向量数据库和检索增强生成的激增,学习嵌入支撑了十亿项规模的语义搜索,因此即使特定的三元组公式逐渐消失,距离相似性的核心思想也变得更加核心。
付诸实践
为什么这很重要
- 更清晰的判决. 它可以帮助您将清晰的技术声明与营销语言分开。
- 成本与预算. 在花费金钱或时间之前,您可以提出更好的实施问题。
- 团队与工作流程. 具有共同理解的团队可以做出更好的产品、政策和学习决策。
留意
- 不同的团队可能会以不同的方式使用同一术语,因此请尽早定义范围。
- 基准测试可能看起来很强大,但实际性能却参差不齐。
- 忽视数据质量和评估计划通常会产生脆弱的结果。
后续步骤
- 从您需要的结果的简单语言定义开始。
- 在测试之前选择一种成功指标和一种失败条件。
- 使用代表性数据运行小型试点,而不是完善的演示集。
- 记录 Triplet Loss 和 Metric Learning 在哪些方面有帮助,以及哪些更简单的方法更好。
不断探索
常见问题
什么是三元组损失和度量学习?
三元组损失教导神经网络在嵌入空间中将相似的项目靠近放置,并将不同的项目远离放置。它是人脸识别、图像搜索和推荐系统背后的基础,这些系统需要对事物进行比较,而不仅仅是对它们进行分类。
三元组损失中哪三个输入构成三元组?
三元组由一个锚点、一个共享该锚点类别的正数和一个来自不同类别的负数组成。
为什么三元组损失包括保证金条款?
如果没有余量,模型可以将所有内容映射到同一点,使所有距离为零并轻松满足损失。边缘迫使真正的分离。
2015 年哪个著名系统在人脸识别中推广了 Triplet Loss?
Google 的 FaceNet 使用三元组损失来学习紧凑的人脸嵌入,并为人脸验证设定基准。
经过训练的度量学习模型对每个输入输出什么?
该模型将输入映射到嵌入向量;然后,您可以通过测量项目嵌入之间的距离来比较项目。
为什么度量学习非常适合添加新面孔等开放集问题?
由于识别是基于嵌入距离的,因此您只需存储其嵌入即可注册新身份,无需重新训练模型。