Angular Loss論文理解
- 一、相較于Triplet loss
- 二、Angular loss的意義
- 三、Angular loss的優點
- 四、Angular Loss
- 五、實施細節
- 六、訓練細節
- 七、未來構想
一、相較于Triplet loss
Triplet loss在訓練時,收斂較難
- 每個三元組需要三次抽樣,然而將某個數據集中所有三元組羅列出來是不實際的,因此需要高效取樣策略。
- 目標是將inter-class間的距離推遠到margin m以上,然而使用全局統一margin m是不合理的,因為現實世界中,intra-class的距離有很大變化
- 從函數的梯度運算公式來看,每個sample的梯度只考慮兩個點之間的關聯,不會考慮第三個點。
二、Angular loss的意義
因為anchor和positive samples屬于同一個類別,因此可以對稱地推導出
由于an邊和pn邊的距離都應該大于ap邊,根據余弦定理,最短的變ap對應的角∠n ≤ min(∠a, ∠p)
又因為,三角形內角和=180度,因此∠n 應該小于60度,因此得到一個upper bound:
三、Angular loss的優點
- Angle是一個similarity transform invariant(相似變換不變量) metric,與三角形邊的相對關系成比例。用一個固定的α ,能夠適用與feature map的任意縮放
- 相較于Triplet loss,只考慮兩個邊。∠n的計算需要同時考慮三個邊,提升優化的魯棒性和高效性
- Margin m的選取沒有有意義的參考,而 α 的設置有具體且可解釋的幾何學意義
四、Angular Loss
如圖Fig3(a),當∠a大于90度時,減小∠n可能會使negative 靠近anchor,出現不穩定case
因此,通過外界圓C,和垂直于nc邊的超平面P,產生兩個新的點,圓心Xc 和相交點Xm。通過變換Xa到Xc,和變換Xp到Xm,得到一個新的三角形。
目標變成:減小∠n′ -> 減小 tan∠n′
對應的梯度計算:
五、實施細節
- 取樣策略:采用N-pair loss論文中的取樣邏輯,取N/2個classes,每個class隨機取2個samples,構成N個tuplets——由同class的2個samples構成anchor和positive,N-1個negatives取自其他不同classes
- 平滑loss函數:
-
基于以下不等式
-
假設feature為單元長度:||x|| = 1
得到:
-
結合N-pair Loss:λ = 2
-
六、訓練細節
- 對于類目數量多的數據集,使用0.0001的LR;對于類目較少的數據集,使用0.00001的LR
- α的選擇對訓練結果會有影響,不同的數據集,最佳α不同,一般固定在36度~55度最佳
- 單獨使用AL時,根據α的選擇,效果和NL不相上下,NL&AL的效果最好
七、未來構想
三元組再往上,形成四元組,構成一個triangular pyramid(三角錐體),關注一個點到另外三個點構成平面的距離關系