ARTICLE DETAIL

资讯详情

深耕网站建设与运营推广的一线实战洞察。

ArcFace、Circle、Triplet、Instance Loss…University1652-Baseline的9种损失函数横向对比

ArcFace、Circle、Triplet、Instance Loss…University1652-Baseline的9种损失函数横向对比 ArcFace、Circle、Triplet、Instance Loss…University1652-Baseline的9种损失函数横向对比【免费下载链接】University1652-BaselineACM Multimedia2020 University-1652: A Multi-view Multi-source Benchmark for Drone-based Geo-localization :helicopter: annotates 1652 buildings in 72 universities around the world.项目地址: https://gitcode.com/gh_mirrors/un/University1652-BaselineUniversity1652-Baseline 是 ACM MM 2020 无人机地理定位Drone-based Geo-localization数据集的官方基线代码库它将 ArcFace、Circle、Triplet、Instance Loss 等 9 种主流度量学习损失函数整合进同一个训练脚本让你用一条命令就能切换并横向对比不同损失函数的效果。University1652-Baseline 是什么项目University1652-Baseline 围绕 University-1652 数据集构建全球 72 所大学、1652 栋建筑每栋建筑都有卫星、无人机、地面三种视角的图像。核心任务是跨视角地理定位——给定一张无人机照片从卫星图海中找出对应建筑回答无人机现在在哪里。决定定位精度的关键不只是网络结构而是同一建筑的不同视角特征能否被拉得足够近、不同建筑被推得足够远——这正是损失函数Loss Function的工作。9种损失函数快速总览全部 9 种损失函数都在训练脚本train.py中实现前 8 种通过命令行参数开启第 9 种是多损失融合策略。先看全貌#损失函数参数类型实现位置1交叉熵Instance Loss 基础默认分类 共享分类器train.py2Triplet Loss--triplet三元组距离pytorch-metric-learning3Contrast Loss--contrast成对对比pytorch-metric-learning4Lifted Loss--lifted全负对结构pytorch-metric-learning5ArcFace--arcface角度间隔pytorch-metric-learning6CosFace--cosface余弦间隔pytorch-metric-learning7Circle Loss--circle自适应间隔circle_loss.py8SphereFaceSphere Loss--sphere球面间隔pytorch-metric-learning9多视角损失融合--loss_merge融合策略train.py模型结构定义在model.py中三个视角的网络共享同一个分类器ClassBlock这个共享权重正是 Instance Loss 的关键所在。9种损失函数逐个详解1. 交叉熵 / Instance Loss默认基线项目的默认损失是标准交叉熵nn.CrossEntropyLoss()。它与共享分类器组合后构成所谓Instance Loss把同一栋建筑的卫星图、无人机图、地面图视为同一类下的不同实例用共享权重强迫不同视角的特征在特征空间中聚拢。Drone→Satellite 方向 R1 58.23、AP 62.91优于所有纯度量损失是公认的基础起点。2. Triplet Loss经典三元组--triplet使用 MultiSimilarityMiner 自动挖掘困难样本对再计算 margin0.3 的 TripletMarginLoss。官方实测 R1 55.18、AP 59.97效果稳定但略逊于 Instance Loss。3. Contrast Loss最简单的成对对比ContrastiveLosspos_margin0neg_margin1拉近正样本、推远负样本思路最直观但实测 R1 52.39 为 9 种中最低——适合用来理解度量学习的原理不太适合直接冲榜。4. Lifted Loss考虑全部负样本对GeneralizedLiftedStructureLoss 把 batch 内所有负样本对聚合成一个结构化的总损失比三元组只挑几个样本更充分。官方未单独公布其成绩定位为可叠加的增强项。5. ArcFace角度间隔派ArcFaceLoss 在特征与类别中心余弦相似度的角度上加入间隔embedding_size512是人脸识别领域的经典配方。开启后模型会同时输出分类 logits 和 512 维特征两者损失相加训练。6. CosFace余弦空间加间隔CosFaceLoss 与 ArcFace 是兄弟区别在于间隔直接加在余弦值上行为更温和适合与 ArcFace 做 A/B 对比实验。7. Circle Loss仓库内实现的自适应间隔CircleLoss(m0.25, gamma32) 实现在 circle_loss.py能根据每对样本当前相似度自动调节权重收敛通常更快。源码注释特别提到 gamma64 可能带来更好效果值得尝试。8. SphereFace球面约束SphereFaceLoss(margin4) 将特征约束在超球面上均匀分布让类别之间排得更开是多分类与度量学习的折中方案。9. --loss_merge多视角融合计算损失这是融合策略而非单一损失把三个视角加可选的 Google 视角的特征与标签拼成一个大 batch再统一计算上述度量损失让困难样本挖掘可以跨视角看到更多同类与负例是进一步提升效果上限的关键技巧。官方实测数据哪种损失函数最强完整榜单在State-of-the-art/README.md。摘出与损失函数直接相关的核心对比R1 与 AP损失组合Drone→Sat R1Drone→Sat APSat→Drone R1Sat→Drone APContrast Loss52.3957.4463.9152.24Tripletmargin0.355.1859.9763.6253.85Instance Loss58.2362.9174.4759.45Instance Verification61.3065.6875.0462.87Instance GeM Pooling65.3269.6179.0365.35Instance Triplet65.9370.1876.0366.36结论很清晰Instance Loss 是地基在其之上再叠加一个距离类损失可再涨 5 个以上 R1 点如何快速启用不同损失函数先获取代码git clone https://gitcode.com/gh_mirrors/un/University1652-Baseline官方推荐训练命令见项目README.md在此基础上只需追加几个参数即可切换损失函数# 示例默认 Instance Loss ArcFace Triplet三视角融合计算损失 python train.py --name my_arcface_exp --views 3 --share --droprate 0.75 \ --stride 1 --h 256 --w 256 --fp16 \ --arcface --triplet --loss_merge训练完成后运行test.py评估再用demo.py可视化 Top-10 检索结果直观感受不同损失函数带来的差异。新手损失函数选型指南第一次跑基线不加任何参数默认交叉熵Instance Loss先拿到 R1 58 左右的成绩。想试单一度量损失优先--arcface或--triplet官方数据显示两者单独使用效果较稳。追求最好效果Instance Loss 距离类损失 --loss_merge并可尝试--circlegamma64。做研究对比逐个开启参数单独训练把 R1 / AP 记录到State-of-the-art/README.md的榜单中。 小提示开启任意度量损失后模型会自动返回 512 维特征并做 L2 归一化再参与损失计算无需额外配置。总结University1652-Baseline 把度量学习领域的 9 种主流损失函数装进了一个训练脚本——从共享分类器的 Instance Loss到 ArcFace、CosFace、SphereFace 等间隔类损失再到自适应的 Circle Loss 与--loss_merge融合策略。对刚入门无人机地理定位的研究者来说这是一台现成的损失函数实验台改一行命令就能得出属于你自己的跨视角定位损失函数结论。【免费下载链接】University1652-BaselineACM Multimedia2020 University-1652: A Multi-view Multi-source Benchmark for Drone-based Geo-localization :helicopter: annotates 1652 buildings in 72 universities around the world.项目地址: https://gitcode.com/gh_mirrors/un/University1652-Baseline创作声明:本文部分内容由AI辅助生成(AIGC),仅供参考
返回列表