行人重识别(ReID)的核心任务是学一个特征空间:同一行人的不同图像特征距离近,不同行人的特征距离远。上一篇文章梳理了 MTMCT 方向的度量学习整体脉络,本文深入损失函数的数学本质:从 Softmax 与 Triplet 的对比出发,推导 Triplet Loss 的边界与难样本挖掘,再介绍 Circle Loss 的柔性目标设计,最后讨论它们在 ReID 特征学习中的实际取舍。
度量学习的任务定义
给定训练集 , 是行人图像, 是身份标签,度量学习的目标是学一个嵌入函数 ,使嵌入空间中同类样本距离小、异类样本距离大。距离通常用欧氏距离(Triplet 系)或余弦相似度(Circle 系):
Softmax 损失的度量视角
ReID 的基线通常是分类思路:每个身份是一个类,用 Softmax 交叉熵训练。Softmax 损失:
其中 是第 个身份的类中心向量, 是身份数。Softmax 隐式地做度量学习:它把每个类的特征推向类中心 附近,类间中心被推远。但有两个局限:
- 类内紧凑性不充分:Softmax 只要求特征比"其他类的 logit"高,不要求类内特征互相靠近,类内方差可能很大。
- 类别数扩展受限:新身份需要新类中心,无法直接处理开放集(训练集外的身份)。
这促使研究者直接设计基于样本对的损失函数。
Triplet Loss
定义与推导
Triplet Loss 的输入是三元组 :锚样本 (anchor)、正样本 (与 同身份)、负样本 (与 不同身份)。损失为:
其中 是边界(margin)。目标:正样本对距离至少比负样本对距离小 。当条件满足时损失为 0(样本对"足够好"),不满足时梯度推动 减小、 增大。
对 的梯度(假设使用欧氏距离):
梯度只作用于"违反边界"的三元组,这是 Triplet 的稀疏性:大部分三元组梯度为 0,只有困难样本提供学习信号。
边界 的作用
控制类间的最小间隔。 太小,类间间隔不足,泛化差; 太大,损失长期不为零,训练不稳定,且极端情况下迫使网络"把正样本拉得无限近",导致特征坍缩(所有特征退化到同一点附近)。 通常在 0.2 到 0.5 之间,具体取决于特征归一化方式。
难样本挖掘
三元组的总数 巨大,且大部分是"平凡三元组"(负样本离锚很远,损失为 0)。有效训练依赖难样本挖掘:
- 随机采样:从身份中随机组三元组,简单但有效信号稀疏。
- 难负样本挖掘(Hard Negative Mining):每个 batch 内,对每个锚选"最难的正样本"(距离最远)与"最难的负样本"(距离最近):
- 半难样本(Semi-hard):选择"比正样本远但不超过边界"的负样本,平衡难度与稳定性。
难样本挖掘的直觉:模型已经学好的部分不需要再练,只有"分不清"的样本对提供信息。这对应信息论里的观点:学习信号来自预测错误。
Circle Loss
从"相对距离"到"绝对置信度"
Triplet 比较的是 与 的相对大小,边界加在差值上。Circle Loss(CVPR 2020)换了一个视角:为每个样本对定义置信度,正样本对置信度 型惩罚、负样本对置信度,用加权 softmax 形式统一优化。
定义正样本对相似度 与负样本对相似度 (相似度越大越好),Circle Loss 为:
其中 与 是正负样本对的期望相似度阈值(), 是缩放因子。自适应权重:
为什么 Circle 比 Triplet 更灵活
关键区别在权重是自适应的:距离最优的样本对( 接近 或 接近 )获得更大的权重,距离已满足条件的样本对权重趋近 0。对比 Triplet 的"硬边界"(超过边界梯度为 0),Circle 提供软边界:所有样本对都贡献梯度,但难度大的贡献多。
另一个区别是优化目标从"拉开相对距离"变成"推向目标阈值":Triplet 只要求 ,不关心绝对值;Circle 要求正样本对相似度超过 、负样本对低于 ,目标更明确,收敛后的特征分布更可控。
Proxy-based 方法:降低采样复杂度
Proxy-NCA
样本对方法需要精心组织 batch,Proxy-based 方法用**类代理(proxy)**替代真实样本参与对比,每个身份维护一个可学习的代理向量 。Proxy-NCA 损失:
代理方法把 的样本对计算降为 ( 是身份数),训练稳定,且代理向量可以理解为"身份的类原型",与 Softmax 的类中心 有异曲同工之处。
Proxy-Anchor
Proxy-Anchor 进一步结合代理与锚点:每个代理与 batch 内样本组成"锚-代理"对,损失为:
其中 是 batch 中出现身份的代理集合, 与 分别是与代理 同类和异类的样本。Proxy-Anchor 的优点是训练与推理一致(都用相似度)、对 batch 组织不敏感,在多个 ReID 基准上达到 SOTA。
ReID 中的实践取舍
| 方法 | 采样需求 | 收敛速度 | 边界特性 | 典型场景 |
|---|---|---|---|---|
| Softmax | 无 | 快 | 分类边界 | 基线、预训练 |
| Triplet | 高(需多身份 batch) | 慢 | 硬边界 | 精细特征学习 |
| Circle | 中 | 中 | 软边界 | 大规模身份 |
| Proxy-NCA | 低 | 快 | 代理边界 | 训练集大 |
| Proxy-Anchor | 低 | 快 | 软边界 | 大规模 ReID |
工程上的常见组合是Softmax(或 ArcFace 变体)预训练 + Triplet/Circle 微调:先用分类损失快速收敛到合理特征空间,再用度量损失精细调整类内紧凑性与类间间隔。我们之前 MTMCT 工作里对 ReID 特征的处理也遵循这个思路:先保证特征可分,再优化跨摄像头场景下的度量一致性。
与 MC-MOT 场景的衔接
跨摄像头跟踪中的 ReID 度量面临额外挑战:
- 跨域漂移:不同摄像头的颜色分布、分辨率不同,同一行人在不同摄像头下的特征分布偏移,度量需要跨域校准。
- 困难负样本:相似外观的不同行人(同色衣服、相似体型)在训练集里占比低,但恰恰是最难区分的负样本对,难样本挖掘对这类场景尤其重要。
- 在线更新:跟踪是流式的,度量可以随在线数据自适应(如每帧用高置信度匹配对微调特征),这需要损失函数支持增量更新,Circle 的软边界在此更有优势。
参考
[1] Schroff, F., Kalenichenko, D., & Philbin, J. FaceNet: A Unified Embedding for Face Recognition and Clustering. CVPR 2015.
[2] Hermans, A., Beyer, L., & Leibe, B. In Defense of the Triplet Loss for Person Re-Identification. arXiv:1703.07737, 2017.
[3] Sun, Y., et al. Circle Loss: A Unified Perspective of Pair Similarity Optimization. CVPR 2020.
[4] Movshovitz-Attias, Y., et al. No Fuss Distance Metric Learning using Proxies. ICCV 2017.
[5] Kim, S., et al. Proxy Anchor Loss for Deep Metric Learning. CVPR 2020.
[6] Deng, J., et al. ArcFace: Additive Angular Margin Loss for Deep Face Recognition. CVPR 2019.
[7] Ye, M., et al. Deep Learning for Person Re-identification: A Survey and Outlook. TPAMI 2021.
[8] Zheng, L., et al. Scalable Person Re-identification: A Benchmark. ICCV 2015.
[9] Luo, H., et al. A Strong Baseline and Batch Normalization Neck for Deep Person Re-identification. TMM 2019.