三元组损失和度量学习
三元组损失教导神经网络在嵌入空间中将相似的项目靠近放置,并将不同的项目远离放置。
概述
It is the foundation behind face recognition, image search, and recommendation systems that need to compare things rather than just classify them.
深入探讨
度量学习训练模型来生成嵌入,即距离反映相似性的向量。 Triplet loss 一次使用三个输入来实现此目的:锚点、正值(与锚点相同的类别)和负值(不同的类别)。目标将锚点推向正值,而不是负值,至少有固定的幅度。形式上,损失为 max(0, d(a,p) - d(a,n) + margin),其中 d 通常是欧几里德距离。 Google 的 2015 FaceNet 普及了这种方法,直接学习 128 维人脸嵌入。训练完成后,您可以通过计算距离来比较任意两个项目,新身份无需重新训练。这种开放集能力就是度量学习能够支持分类无法轻松处理的验证和检索任务的原因。
技术洞察
保证金是使三重态损失发挥作用的原因。如果没有它,模型可能会轻易地将所有嵌入折叠到一个点,使每个距离为零并且排序毫无意义。保证金强制缓冲:在损失达到零之前,负值必须至少比正值更远。嵌入通常是 L2 归一化到单位超球面上,因此距离保持有界且可比较。选择边距(通常约为 0.2)需要权衡类聚集的紧密程度与类之间的分离程度。
战略影响
更清晰的判决
它可以帮助您将清晰的技术声明与营销语言分开。
成本与预算
在花费金钱或时间之前,您可以提出更好的实施问题。
团队与工作流程
具有共同理解的团队可以做出更好的产品、政策和学习决策。
Triplet Loss 和度量学习的未来
纯三元组损失越来越多地被批次范围的目标所取代,例如多重相似性、代理锚点和对比损失 (InfoNCE),这些目标每步都会比较许多对并更快地收敛。 SimCLR 等自我监督方法表明,通过将增强视图视为积极因素,度量学习可以在没有标签的情况下发挥作用。随着向量数据库和检索增强生成的激增,学习嵌入支撑了十亿项规模的语义搜索,因此即使特定的三元组公式逐渐消失,距离相似性的核心思想也变得更加核心。
现实世界的实施
FaceNet 式人脸验证:手机和护照门通过检查两个人脸嵌入是否在距离阈值内来确认身份。
视觉产品搜索:电子商务网站允许购物者上传照片并通过最近邻嵌入查找来检索视觉上相似的商品。
说话者验证:语音助手嵌入语音样本并将其与注册的个人资料进行比较,以确认谁在说话。
签名和手写验证:银行嵌入参考和查询签名,并在距离超过学习范围时标记伪造。
风险与防护栏
不同的团队可能会以不同的方式使用同一术语,因此请尽早定义范围。
基准测试可能看起来很强大,但实际性能却参差不齐。
忽视数据质量和评估计划通常会产生脆弱的结果。
实施路线图
从您需要的结果的简单语言定义开始。
在测试之前选择一种成功指标和一种失败条件。
使用代表性数据运行小型试点,而不是完善的演示集。
记录 Triplet Loss 和 Metric Learning 在哪些方面有帮助,以及哪些更简单的方法更好。
不断探索
Free newsletter
Get the daily AI briefing
Three verified AI stories every weekday morning, written in plain English. Free forever, no ads.
One email each weekday. Unsubscribe in one click. We never sell or share your address.
Test yourself
Take the Triplet Loss and Metric Learning quiz
Instant feedback on every answer, and a shareable certificate with a verifiable ID once you pass a course.
Support free AI education. AI Understanding is a 501(c)(3) nonprofit — no ads, no paywall, ever. Make a donation
常见问题
What is Triplet Loss and Metric Learning?
三元组损失教导神经网络在嵌入空间中将相似的项目靠近放置,并将不同的项目远离放置。它是人脸识别、图像搜索和推荐系统背后的基础,这些系统需要对事物进行比较,而不仅仅是对它们进行分类。
三元组损失中哪三个输入构成三元组?
三元组由一个锚点、一个共享该锚点类别的正数和一个来自不同类别的负数组成。
为什么三元组损失包括保证金条款?
如果没有余量,模型可以将所有内容映射到同一点,使所有距离为零并轻松满足损失。边缘迫使真正的分离。
2015 年哪个著名系统在人脸识别中推广了 Triplet Loss?
Google 的 FaceNet 使用三元组损失来学习紧凑的人脸嵌入,并为人脸验证设定基准。
经过训练的度量学习模型对每个输入输出什么?
该模型将输入映射到嵌入向量;然后,您可以通过测量项目嵌入之间的距离来比较项目。
为什么度量学习非常适合添加新面孔等开放集问题?
由于识别是基于嵌入距离的,因此您只需存储其嵌入即可注册新身份,无需重新训练模型。