橫向?qū)Ρ? alt=)
ArcFace、Circle、Triplet、Instance Loss…University1652-Baseline的9種損失函數(shù)橫向?qū)Ρ取久赓M下載鏈接】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數(shù)據(jù)集的官方基線代碼庫它將 ArcFace、Circle、Triplet、Instance Loss 等 9 種主流度量學習損失函數(shù)整合進同一個訓練腳本讓你用一條命令就能切換并橫向?qū)Ρ炔煌瑩p失函數(shù)的效果。University1652-Baseline 是什么項目University1652-Baseline 圍繞 University-1652 數(shù)據(jù)集構(gòu)建全球 72 所大學、1652 棟建筑每棟建筑都有衛(wèi)星、無人機、地面三種視角的圖像。核心任務是跨視角地理定位——給定一張無人機照片從衛(wèi)星圖海中找出對應建筑回答無人機現(xiàn)在在哪里。決定定位精度的關鍵不只是網(wǎng)絡結(jié)構(gòu)而是同一建筑的不同視角特征能否被拉得足夠近、不同建筑被推得足夠遠——這正是損失函數(shù)Loss Function的工作。9種損失函數(shù)快速總覽全部 9 種損失函數(shù)都在訓練腳本train.py中實現(xiàn)前 8 種通過命令行參數(shù)開啟第 9 種是多損失融合策略。先看全貌#損失函數(shù)參數(shù)類型實現(xiàn)位置1交叉熵Instance Loss 基礎默認分類 共享分類器train.py2Triplet Loss--triplet三元組距離pytorch-metric-learning3Contrast Loss--contrast成對對比pytorch-metric-learning4Lifted Loss--lifted全負對結(jié)構(gòu)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模型結(jié)構(gòu)定義在model.py中三個視角的網(wǎng)絡共享同一個分類器ClassBlock這個共享權(quán)重正是 Instance Loss 的關鍵所在。9種損失函數(shù)逐個詳解1. 交叉熵 / Instance Loss默認基線項目的默認損失是標準交叉熵nn.CrossEntropyLoss()。它與共享分類器組合后構(gòu)成所謂Instance Loss把同一棟建筑的衛(wèi)星圖、無人機圖、地面圖視為同一類下的不同實例用共享權(quán)重強迫不同視角的特征在特征空間中聚攏。Drone→Satellite 方向 R1 58.23、AP 62.91優(yōu)于所有純度量損失是公認的基礎起點。2. Triplet Loss經(jīng)典三元組--triplet使用 MultiSimilarityMiner 自動挖掘困難樣本對再計算 margin0.3 的 TripletMarginLoss。官方實測 R1 55.18、AP 59.97效果穩(wěn)定但略遜于 Instance Loss。3. Contrast Loss最簡單的成對對比ContrastiveLosspos_margin0neg_margin1拉近正樣本、推遠負樣本思路最直觀但實測 R1 52.39 為 9 種中最低——適合用來理解度量學習的原理不太適合直接沖榜。4. Lifted Loss考慮全部負樣本對GeneralizedLiftedStructureLoss 把 batch 內(nèi)所有負樣本對聚合成一個結(jié)構(gòu)化的總損失比三元組只挑幾個樣本更充分。官方未單獨公布其成績定位為可疊加的增強項。5. ArcFace角度間隔派ArcFaceLoss 在特征與類別中心余弦相似度的角度上加入間隔embedding_size512是人臉識別領域的經(jīng)典配方。開啟后模型會同時輸出分類 logits 和 512 維特征兩者損失相加訓練。6. CosFace余弦空間加間隔CosFaceLoss 與 ArcFace 是兄弟區(qū)別在于間隔直接加在余弦值上行為更溫和適合與 ArcFace 做 A/B 對比實驗。7. Circle Loss倉庫內(nèi)實現(xiàn)的自適應間隔CircleLoss(m0.25, gamma32) 實現(xiàn)在 circle_loss.py能根據(jù)每對樣本當前相似度自動調(diào)節(jié)權(quán)重收斂通常更快。源碼注釋特別提到 gamma64 可能帶來更好效果值得嘗試。8. SphereFace球面約束SphereFaceLoss(margin4) 將特征約束在超球面上均勻分布讓類別之間排得更開是多分類與度量學習的折中方案。9. --loss_merge多視角融合計算損失這是融合策略而非單一損失把三個視角加可選的 Google 視角的特征與標簽拼成一個大 batch再統(tǒng)一計算上述度量損失讓困難樣本挖掘可以跨視角看到更多同類與負例是進一步提升效果上限的關鍵技巧。官方實測數(shù)據(jù)哪種損失函數(shù)最強完整榜單在State-of-the-art/README.md。摘出與損失函數(shù)直接相關的核心對比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結(jié)論很清晰Instance Loss 是地基在其之上再疊加一個距離類損失可再漲 5 個以上 R1 點如何快速啟用不同損失函數(shù)先獲取代碼git clone https://gitcode.com/gh_mirrors/un/University1652-Baseline官方推薦訓練命令見項目README.md在此基礎上只需追加幾個參數(shù)即可切換損失函數(shù)# 示例默認 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 檢索結(jié)果直觀感受不同損失函數(shù)帶來的差異。新手損失函數(shù)選型指南第一次跑基線不加任何參數(shù)默認交叉熵Instance Loss先拿到 R1 58 左右的成績。想試單一度量損失優(yōu)先--arcface或--triplet官方數(shù)據(jù)顯示兩者單獨使用效果較穩(wěn)。追求最好效果Instance Loss 距離類損失 --loss_merge并可嘗試--circlegamma64。做研究對比逐個開啟參數(shù)單獨訓練把 R1 / AP 記錄到State-of-the-art/README.md的榜單中。 小提示開啟任意度量損失后模型會自動返回 512 維特征并做 L2 歸一化再參與損失計算無需額外配置??偨Y(jié)University1652-Baseline 把度量學習領域的 9 種主流損失函數(shù)裝進了一個訓練腳本——從共享分類器的 Instance Loss到 ArcFace、CosFace、SphereFace 等間隔類損失再到自適應的 Circle Loss 與--loss_merge融合策略。對剛?cè)腴T無人機地理定位的研究者來說這是一臺現(xiàn)成的損失函數(shù)實驗臺改一行命令就能得出屬于你自己的跨視角定位損失函數(shù)結(jié)論?!久赓M下載鏈接】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創(chuàng)作聲明:本文部分內(nèi)容由AI輔助生成(AIGC),僅供參考