概述
三重态丢失通过将匹配的物品拉到一起、推开不匹配的物品来训练它们,这正是人脸识别、签名验证和一次性学习的基础。
深入探讨
连体网络通过具有共享权重的同一编码器运行每个输入,为每个输入生成一个嵌入向量。它不是预测类标签,而是使用欧几里得或余弦等距离来比较嵌入。这让系统能够识别它从未训练过的新类别——当每个身份只有一个或几个示例时至关重要(一次性学习)。早期版本使用成对的对比损失(相似与不相似)。 Triplet loss 通过同时训练三个输入来改善这一点:锚、正(与锚相同的类别)和负(不同的类别)。该目标迫使锚点-正值距离比锚点-负值距离小一些,因此模型学习一个嵌入空间,其中相同身份的项目紧密聚集,不同的身份保持较远的距离。
现实世界的实施
手机上的人脸识别(FaceNet 式):通过检查两个人脸嵌入是否足够接近来验证身份。
签名和笔迹验证,确认样本是否与存档参考相符。
重复和近似重复检测,查找视觉上相似的产品照片或抄袭图像。
针对稀有类别的一次性学习,从单个注册示例中识别新人或新物体。
连体网络的未来和 Triplet Loss
核心思想——学习距离等于相似性的嵌入空间——现在推动了大规模对比学习。 SimCLR 等方法和 CLIP 等模型将相同的原理推广到数百万个图像和文本对,而无需明确的三元组。预计度量学习仍将是检索、重复数据删除、推荐和矢量数据库搜索的核心,而新的损失(InfoNCE、多重相似性)和大批量越来越多地取代手动调整的三元组挖掘,以提高效率和规模。
付诸实践
为什么这很重要
- 成本与预算. 多年来,架构决策决定着性能和运营成本。
- 更清晰的判决. 技术教育帮助团队选择正确的堆栈,而不仅仅是最新的堆栈。
- 质量控制. 更好的工程选择可以减少生产中的可靠性事故。
留意
- 优化一项基准测试可以隐藏更广泛的系统弱点。
- 基础设施和维护成本常常被低估。
- 随着系统变得更加复杂,安全性和可观察性差距可能会扩大。
后续步骤
- 在实施之前定义延迟、质量和成本目标。
- 在实际负载和数据条件下进行基准测试。
- 仪器监控错误、漂移和用户影响。
- 在扩展之前准备回滚和事件响应路径。
不断探索
常见问题
什么是暹罗网络和三重态损耗?
连体网络使用两个或多个相同的权重共享分支来了解两个输入的相似程度,而不是对每个输入进行分类。 Triplet loss 通过将匹配项放在一起并将不匹配项分开来训练它们,这是人脸识别、签名验证和一次性学习的支柱。
暹罗网络的定义架构特征是什么?
权重共享相同的分支确保所有输入都映射到相同的嵌入空间,因此距离具有可比性。
在三元组损失中,三个输入是什么?
Triplet loss 使用锚、正(同一类)和负(不同类)来塑造嵌入空间。
三元组损失目标强制执行什么?
这种损失使正值比负值更接近至少一定程度,从而将同类项目聚集在一起。
为什么“硬负挖掘”对于三元组损失训练很重要?
如果负数已经很远,则损失为零;选择具有欺骗性的接近负数可以为模型提供一些有意义的学习内容。
什么功能使孪生网络对于“一次性学习”有价值?
因为他们学习相似性而不是固定标签,所以他们可以仅从一个注册的示例中识别出全新的身份。