《A Metric Learning Reality Check》筆記

[1] 是 metric learning 的一篇學術打假文,回顧了 deep metric learning 領域兩個經典工作(contrastive loss,triplet loss)和近年來(2017 ~ 2019,見文中 Table 6)的幾篇工作,指出近年一些工作其實有些作弊行徑,其提出的 loss 帶來的實際增長其實沒有文中號稱的那麼多,非常硬核。
作者按照他認爲公平的方式重新實驗比較這些 losses,並有提供 benchmarks 的代碼,見 [2]。一作 github 主頁見 [3]。
本篇記錄感興趣的一些點。

Losses

文中提到的 metrics learning 中出現過的一些 losses,分 embedding loss 和 classification loss 兩類。

Embedding Loss

  • contrastive loss [5]
  • triplet margin loss [6]
  • angular loss [7]
  • margin loss [8]
  • lifted structure loss [9]
  • N-Pairs loss [10]
  • multi similarity loss [11]
  • tuplet margin loss [12]
  • FastAP [13]

Classification Loss

  • ProxyNCA [14]
  • SoftTriple loss [15]

P.S.

還有回顧一些 pair/triplet mining 方法,和用到 generator 的方法。
mark:刷一遍,有機會總結一下。

Flaws

文中指出一些工作在對比其它工作和論證自己貢獻、訓練模型、所選評價指標的一些漏洞和缺陷,也算是同時提出一些做實驗對比時的原則。
(我此時其實還沒看過這些被懟的文章,所以更看重其作爲實驗原則來的功用)

Unfair Comparisons

要實驗驗證所提算法的有效性,控制變量是基本的要求之一。文中提到幾點:

  • 預訓練模型。比如不能自己用 ResNet50 和別人一個用 GoogleNet 的比;
  • 數據增強。可能有些工作文章明面上說自己用了這些這些數據增強(青銅),但觀其代碼卻又是用了更復雜的數據增強(王者);
  • 優化器。Adam、RMSprop 這裏自適應的收斂快,但用 SGD 可能使得模型泛化性更好,然而這是優化器引起的分別,而不是所提算法的分別;
  • 隱藏 tricks。有篇工作將預訓練模型的 BatchNorm 層參數定住,可以減少 overfitting,它代碼註釋說在 CUB200 可以提兩個點,但文章卻不提(如果有用了 tricks 不說還不給代碼的?復現還玩個*?);
  • 實驗結果的置信區間。(還不是很懂這個 confidence interval 是什麼、怎麼用,是說 多次實驗求平均和方差 而不是隻給一個結果這個意思嗎?);

Training with Test Set Feedback

一般 test set 在訓練過程不可見是個基本要求(transductive learning 設置除外?),包括調查、模型選擇過程。
他們發現一些工作只劃了 training set 和 test set 而沒有 validation set,這意味着這些工作可能在做模型選擇、調參時用了 test set,這是違反原則的,因爲 test set 實質上參與了訓練過程:雖然不是直接的梯度回傳,但是間接地通過人反饋給模型。
所以是應該 training set 中劃一定比例出來做 validation set 做調參,test set 只用作最後評估。

Weakness of Commonly Used Accuracy Metrics

可能兩個模型的在一種指標下表現差異巨大,在另一種指標下卻沒什麼區別,這意味着有些指標用來評價模型不太合適?(或者不夠全面客觀?)文中有給示例。

Hyper Parameters

4.2 節指出,有些工作能比起兩個經典損失 contrastive 和 triplet 進步巨大,其中一個原因是這些工作在引用這倆經典時,引了一些它倆很差的數據,而它倆效果差的原因是諸如構造 pairs/triplets 的方法不夠好、超參沒調好這些原因。作者認爲這些超參帶來效果不能直接算作算法的效果(2.1 節),引別的算法一個差的效果來映襯自己算法的效果不合理,還暗示人們應該自己試着重新實現別人的 loss 並調出一個好結果來作爲一個合理的 baseline。
他自己好像就是這麼做的,於是有了 Fig.4 (b) 和 Fig.5 (b),原本在 Fig.4 (a) 和 Fig.5 (a) 中看起來比倆經典有很大提升的王者們,變成了…白銀?
這點是我覺得最硬核的一點,太剛了。

References

  1. (paper)A Metric Learning Reality Check
  2. (code)KevinMusgrave/powerful-benchmarker
  3. (author)Kevin Musgrave
  4. 如何理解與看待在cvpr2020中提出的circle loss?
  5. Dimensionality reduction by learning an invariant mapping
  6. Distance Metric Learning for Large Margin Nearest Neighbor Classification
  7. Deep Metric Learning with Angular Loss
  8. Sampling matters in deep embedding learning
  9. Deep metric learning via lifted structured feature embedding
  10. Improved deep metric learning with multi-class n-pair loss objective
  11. Multi-Similarity Loss With General Pair Weighting for Deep Metric Learning
  12. Deep Metric Learning With Tuplet Margin Loss
  13. Deep Metric Learning to Rank
  14. No Fuss Distance Metric Learning Using Proxies
  15. SoftTriple Loss: Deep Metric Learning Without Triplet Sampling
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章