Computer Vision Models Loss

Moris
Computer Vision Note
35 min readFeb 16, 2024

--

機器學習算法設計成可以從錯誤中學習並使用我們提供的訓練數據來進行更新。但是,它們如何量化這些錯誤呢?這是通過使用「損失函數」來完成的,它可以幫助算法了解其預測與真實結果相比有多大的錯誤。選擇合適的損失函數很重要,因為它影響算法以最快的速度產生最佳結果的能力。

Outline

  1. Basic Definitions
  2. Loss For Segmentation
  3. Loss For Detection
  4. Loss For Instance Segmentation
  5. Loss For Face Recognition
  6. Loss For GAN

1. Basic Definitions

L2 LOSS

  • 這是最基本的損失函數,也稱為歐氏損失。它依賴於預測值和真實結果之間的歐氏距離。
  • 由於錯誤是平方的,這個損失函數對異常值非常敏感。
L2 Loss function

CROSS-ENTROPY LOSS

  • Cross Entropy loss是一種更高級的損失函數,它使用自然對數(loge)。這有助於相對於二次損失來加快神經網絡的訓練。
  • 交叉熵的公式(多類別錯誤)如下。它也可以稱為「分類交叉熵」。這裡c=類別ID,o=觀察ID,p=機率。
Multi Class Error
  • 二元類別的cross entropy公式如下。它也可以稱為「log loss」。這裡y=[0,1],yˆ ε (0,1)。
Binary Class Error

SIGMOID FUNCTION

  • cross entropy函數需要為算法的每個scalar標量輸出輸入機率。但由於這不總是可能的,我們可以使用sigmoid函數(一個非線性函數)。它的公式(這是邏輯函數的特殊情況)如下。
Sigmoid Function

SOFTMAX FUNCTION

  • 我們可以出於同樣的原因使用softmax函數。這也被稱為「歸一化指數函數」(這是對多個輸入的邏輯函數的泛化)。它將一個K維向量(z)「壓縮」到一個K維向量(σ(z)),範圍在(0, 1),總和為1。你也可以在這裡閱讀定義here。方程如下:
Softmax Function

2. Loss For Segmentation

Focal Loss

這種損失是對標準cross-entropy標準的改進。通過改變其形狀,使其對於分類正確的example分配的損失降低加權。從而確保沒有類別不平衡。在這種損失函數中,cross-entropy損失與縮放因子相乘,當正確類別的置信度增加時,縮放因子會趨近於零。縮放因子在訓練時自動降低easy example的貢獻,並專注於hard example。

Dice loss

通過計算平滑的dice coefficient函數獲得的損失。這種損失是在分割問題中最常用的損失。

Intersection over Union (IoU)-balanced Loss

IoU平衡分類損失的目標是增加具有高IoU的樣本的梯度,並減小具有低IoU的樣本的梯度。這樣可以提高機器學習模型的本地化準確性。

Boundary loss

邊界損失的一個變體適用於具有高度不平衡分割的任務。這種損失的形式是空間輪廓上的距離度量,而不是區域。通過這種方式,它解決了對於高度不平衡的分割任務的區域損失所提出的問題。

Weighted cross-entropy

在cross-entropy的一個變體中,所有example都以一個特定的係數加權。它在涉及類別不平衡的情景中使用。

Lovász-Softmax loss

這個損失函數在神經網絡中,以基於子模組損失的凸型 Lovasz 擴展為基礎,直接優化平均交集/聯合損失。

值得一提的其他損失有:

  • TopK loss 其目的是確保網絡在訓練過程中專注於困難的hard sample。
  • Distance penalized CE loss 將網絡導向難以分割的邊界區域。
  • Sensitivity-Specificity (SS) loss 計算特異性和敏感性的均方差的加權和。
  • Hausdorff distance(HD) loss 從卷積神經網絡估計Hausdorff 距離。

3. Loss For Detection

物件偵測損失函數的選擇對於物件偵測問題的建模至關重要。一般來說,物體偵測需要兩個損失函數,一個用於物體分類(Cross Entropy Loss,將衡量檢測器在預測正確類別方面的表現),另一個用於邊界框迴歸(IoU Loss)將衡量預測的邊界框捕捉到的真實邊界框的程度。

Cross-Entropy Loss

object detector將嘗試為預測的邊界框位置的每個類別預測一個機率。這個概率也可以看作是模型的信心程度。概率越高,模型越有信心,認為某個定位的物件屬於某個類別。

計算object detector預測類別的好壞的一種方法是計算預測概率和實際概率之間的絕對差異(例如,預測1的損失為100%-90%=10,預測2的損失為100%-65%=35)。另一種方法是使用cross-entropy。cross-entropy提供了一種平滑的損失,它對於大的差異給予很大的懲罰,對於小的差異給予很小的懲罰。交叉熵損失在實際機率p和預測機率q之間的公式如下:

從公式中,如果p=100%=1.0,該函數的圖形如下:

Bounding Box Regression

邊界框回歸是物體檢測算法中一種常用的技術。用於使用矩形邊界框預測目標物件的位置。它旨在對預測的邊界框進行位置微調,這是通過計算預測的邊界框座標和真實邊界框座標之間的均方誤差(MSE)來實現的。

兩個邊界框P和Q之間的MSE計算公式如下:

其中4來源於我們希望計算4個座標(x1,y1,x2,y2)的均值。對於兩個預測,我們得到以下MSE值:

3.1 IoU Loss (Intersection over Union)

邊界框回歸使用預測的邊界框與真實邊界框之間的重疊面積,即交集除以聯集(IOU),作為基於IOU的損失函數。

當預測的邊界框與真實邊界框重疊時,交集除以聯集(IOU)損失函數生效。對於不重疊的情況,IOU損失函數不會提供任何移動的梯度。

IOU損失的收斂速度較慢,紅色是預測的邊界框,綠色是真實的邊界框。

下面是IoU和IoU損失的方程式。

當預測的框和真實的框不重疊時,IoU損失失效。

3.2 Generalized IoU(GIoU) Loss

GIoU損失最大化了真實邊界框和預測邊界框之間的重疊面積。對於不重疊的情況,它通過將預測框的大小增加,使其與目標框重疊,慢慢地朝著目標框移動。

Source: Distance-IoU Loss: Faster and Better Learning for Bounding Box Regression

在上面的GIoU損失公式中,C表示覆蓋預測框和真實邊界框的最小框,它起到將預測框靠近目標真實框的懲罰作用。

GIoU loss: Blue is the predicted bounding box using GIoU loss Source: Distance-IoU Loss: Faster and Better Learning for Bounding Box Regression

如上圖所示,GIoU損失最初增加了預測邊界框的大小,並慢慢朝著真實邊界框移動。要使預測框與真實框重疊需要多次迭代,特別是當邊界框具有水平和垂直方向時。

GIoU損失比MSE損失和IoU損失具有更好的精度。

GIoU損失解決了不重疊情況下的梯度消失問題,但對於具有極端長寬比的框來說,收斂速度較慢且回歸不準確。

3.3 Distance IoU Loss

Distance IoU是預測框和真實框中心點之間的normalized distance。距離損失有助於更快地收斂和準確的回歸。

d表示預測框和真實框中心點之間的歐幾里德距離,C表示覆蓋兩個框的最小外接框的對角線長度。

DIoU損失對於回歸問題的尺度是不變的,與GIoU損失一樣,對於不重疊的情況下,DIoU損失還為預測邊界框提供了移動方向。

與GIoU損失不同,DIoU損失直接最小化了預測框和真實邊界框之間的距離,即使真實框具有水平和垂直方向,也比GIoU損失更快地收斂。

DIoU Loss. Source:Distance-IoU Loss: Faster and Better Learning for Bounding Box Regression

當DIoU被用作非最大抑制(NMS)的標準時,對於有遮擋的情況給出了穩健的結果。

3.4 Complete IoU Loss

CIoU損失的邊界框回歸使用了三個幾何因素。

  • 預測框和真實邊界框之間的重疊面積-IoU損失
  • 預測框和真實邊界框之間的中心點-DIoU損失
  • 預測框和真實框的長寬比

由於CIoU損失使用了完整的幾何因素,它比GIoU損失更快地收斂。它提高了目標檢測和分割的平均精度(AP)和平均召回率(AR)。

CIoU損失是重疊面積、距離和長寬比的聚合,被稱為完整IoU損失。

S是重疊面積,表示為S=1-IoU

D是預測框和真實框中心點之間的歸一化距離IoU損失。

V是長寬比的一致性。

所有的S、V和D都對回歸尺度是不變的,並且被歸一化為0到1之間的值。

其中,

α是權衡參數,定義如下:

α是IoU的函數。上述方程表明,在沒有重疊的情況下,長寬比因素較不重要,而在有更多重疊的情況下,長寬比因素更重要。

CIoU損失,就像GIoU損失和DIoU損失一樣,將預測邊界框移向真實邊界框,以解決不重疊的情況。

CIoU損失需要更少的迭代次數才能收斂,比GIoU損失更快地實現回歸,尤其是對於極端長寬比的框。

CIoU loss. Source: Enhancing Geometric Factors in Model Learning and Inference for Object Detection and Instance Segmentation

CIoU損失被應用在YOLO v3、Yolo v4、SSD和Faster RCNN中。

下圖顯示了不同損失函數在不同迭代次數下的回歸誤差總和曲線。

IoU損失僅在預測的邊界框與目標框重疊的情況下有效。

GIoU損失通過逐漸向目標框移動,增大預測框的大小以與地面真實框重疊,從而解決了不重疊的情況。但GIoU損失在大量迭代和適當的學習率下收斂非常緩慢。

GIoU在極端長寬比的情況下仍存在較大的誤差。

CioU損失使用幾何測量進行邊界框回歸,有助於更快地收斂並具有比IoU和GIoU損失更好的性能。

DIoU損失在訓練中比IoU和GIoU損失更快地收斂,並具有更好的性能。

Summary:

不同的IoU損失涉及收斂速度和定位準確性。

  • Generalized IoU(GIoU)通過慢慢向目標框移動,增大預測框的大小以與目標框重疊,但在極端長寬比的情況下導致不準確的回歸,且收斂速度緩慢。
  • Distance-IoU(DIoU)損失使用預測框與地面真實框之間的規範化距離,訓練中收斂速度比IoU和GIoU損失更快。
  • CIoU損失是重疊面積(IoU)、距離(DIoU)和長寬比(aspect ratio)的綜合損失。相比IoU損失和GIoU損失,CIoU損失收斂速度更快,迭代次數較少。

4. Loss For Instance Segmentation

Instance segmentation目的為場景中每個檢測到的單個物件生成binary mask。實例分割算法主要分為兩大類:基於檢測的實體分割算法單次檢測的實體分割算法。第一種方法生成更高質量的遮罩,但後者速度更快。

在系列文章的第一篇 實體分割算法概述 中,我們深入探討了執行實例分割的類型和方法,而第二部分 實體分割評估標準 則介紹了實例分割模型使用的評估指標。本文專注於 用於訓練實體分割算法的損失函數。最常用的是焦點損失(Focal Loss),但並不是唯一的選擇。

對於Instance segmentation任務,可以使用以下損失函數:

  • Weighted binary cross-entropy loss
  • Focal Loss
  • Dice Loss
  • Generalized IoU
  • Boundary loss
  • Lovasz softmax loss

4.1 Weighted binary-cross entropy loss

為了處理類別不平衡,我們可以使用加權二元交叉熵(WBCE)。WBCE考慮了給定類別中實例的數量。

圖1. 左圖是實例分割網絡的輸入,右圖是實例分割網絡的輸出分割遮罩。

該網絡將黑色像素預測為背景類(0),將白色像素預測為對象類(1)。在下面的情境中,該網絡對海鷗的遮罩預測不佳。然而,如果我們使用標準的binary cross-entropy,損失將低(接近零),這意味著該網絡表現良好。為什麼會這樣呢?

這是因為存在巨大的類別不平衡。黑色像素(負類)的數量遠高於白色像素(正類)的數量。因為大部分黑色像素被正確分類為背景,所以整體損失較小,模型認為自己表現良好。為了處理類別不平衡,我們可以使用加權二元交叉熵(WBCE)。WBCE考慮了給定類別中實例的數量。

其中 α 是類別權重。在海鷗示例中,α的值應該為

將權重參數納入binary cross entropy損失函數,有利於具有少量實例的類別。在給定的例子中,白色像素類別是具有少量實例的類別,因此加權的二元交叉熵損失會更加關注正確分類白色像素,而較少關注正確分類黑色像素。因此,在給定的例子中,即使大部分黑色像素被正確分類,損失仍然會很高。

4.2 Focal Loss

焦點損失是二元交叉熵損失的改進版本,它試圖解決類別不平衡問題,並添加了一個稱為 gamma 的參數,用於專注於難以分類的情況。

其中,α是處理類別不平衡的參數。α對於具有較少實體的類別而言較高,對於具有較多實體的類別而言較低。(1-p_{t})^γ處理較難和較容易的樣本,$p_t$是對於屬於給定類別的物體的預測概率。γ是一個參數,如果較高,則會更加聚焦於難以分類的示例。

γ參數控制著損失函數的形狀。

焦點損失引入了一個新的超參數,即聚焦參數γ,它控制調節項的強度。當 γ= 0 時,我們的損失等效於交叉熵損失。隨著γ 的增加,損失的形狀發生變化,使「容易」的示例損失進一步折扣。當γ= 2 時,焦點損失相對於平衡交叉熵損失提高了2.9個AP。

γ參數越高,對於分類正確的示例,損失越低,因此我們可以更多地將模型的注意力放在「難以分類」的示例上。

焦點損失可以很容易地適應實例分割場景。權重(alpha)參數以與加權二元交叉熵相同的方式處理白色-黑色像素類別不平衡問題。gamma 參數允許更加專注於難以分類的像素。例如,在正確分類接近物體中心的像素是一個相對容易的任務。因此,網絡將以高置信度預測中心物體的像素為白色。另一方面,分類邊緣像素是具有挑戰性的。這些像素可能被分類為屬於同一個對象或不屬於它。模型應該在學習過程中更加關注這些像素。焦點損失通過 gamma 項來實現。

4.3 Dice Loss

Dice損失在醫學影像分割任務中被廣泛使用,用於解決類別不平衡的問題。Dice損失的公式如下:

其中,DSC是由以下方程給出的Dice係數:

或是

其中,P_i 和 G_i 分別表示預測像素和真實像素。像素值可以是 0 或 1。

圖3:Dice損失計算

Dice損失非常類似於IoU(交集比例)。它表示交集區域面積與預測區域和真實區域總面積之比。主要區別在於分母的計算方式。IoU使用聯集區域面積,而Dice係數使用兩者的面積總和。當兩個區域完全重疊時,Dice係數為1;當兩個區域不重疊時,Dice係數為0。通過對1 — Dice係數進行最小化來作為一個有效的損失函數,我們可以訓練模型。Dice損失的主要缺點是,無論真實和預測像素彼此之間有多遠,損失都等於零。

4.4 Generalized IoU

IoU(交集/聯集)度量了兩個邊界框或一般形狀的重疊區域,並將其歸一化為公共區域。IoU在圖像評估中被成功使用,但在損失應用中存在問題。如果地面真實值和預測的邊界框之間沒有重疊,IoU將等於零。這意味著,無論兩個邊界框的實例相距一個像素還是100個像素,損失都將為零。這使得IoU對於損失應用無用。此外,如果地面真實值和預測的遮罩之間沒有交集,則IoU將沒有值,因此也沒有梯度。然而,損失函數必須完全可微分以允許反向傳播。為了克服這個問題,斯坦福大學的研究人員提出了一種廣義的IoU損失,它是完全可微分的。

其中A和B分別是預測區域和真實區域的面積,C是包圍A和B的最小convex hull。‍

將第二項添加到標準IoU中可以確保當兩個邊界框靠近時,損失較小;當它們相距較遠時,損失較大。GIoU的範圍從-1到1。當C(包圍兩個邊界框的區域)大於IoU時,會出現負值。隨著IoU成分的增加,GIoU的值會收斂到IoU。

IoU的損失函數可以用以下方程式描述:

IoU的損失函數可以用以下方程式描述:

對於多標籤數據集,通常將GIoU平均化計算,得到平均GIoU(mGIoU)。你可以在這裡找到更多關於廣義IoU的資訊這裡

4.5 Boundary loss

Dice或cross-entropy是基於分割區域的積分。不幸的是,在高度不平衡的分割中,這種區域總和的值在不同類別之間相差數個量級,這影響了訓練的性能和穩定性。一種處理方法是將類別權重添加到損失函數中。出現次數較少的類別獲得更多關注,而出現次數較多的類別則獲得較少關注。另一種方法是由boundary loss所採用。邊界損失使用邊界區域的總和,而不是重疊區域的總和。換句話說,考慮的是真實輪廓和預測輪廓之間的距離,而不是遮罩的重疊區域。

圖4. 評估邊界變化(變化)的微分和積分方法之間的關係

圖4展示了邊界損失的概念。核心概念是計算一個距離函數Δd(∂G, ∂S),其中∂G是真實遮罩輪廓,∂S是預測遮罩輪廓。然而,為了使其可微分且易於實現,損失函數被重寫為真實邊界∂G和預測邊界∂S之間的距離場ΔS的積分。ΔS場中的每個點都是到邊界∂G的距離。如果點q在G區域內,則為負值;如果點q在G區域外,則為正值。通過使用輪廓區域而不是重疊區域,這種損失函數可以處理圖像分割任務中高度不平衡的類別。‍

Boundary loss computation example

讓我們通過表1中的範例來理解boundary loss的工作原理。

在第4步中獲得的值是最終的邊界損失。我們可以在這裡停下。

然而,獲得的結果實際上不是ΔS上的積分,而是S區域上的積分,其中S中的每個點都是到邊界∂G的距離,如果點位於G之外則為正值,如果點位於G之內則為負值。這樣做是合理的,但為什麼呢?

讓我們用數學方程來表示邊界損失。

其中,如果點q位於S區域內則s(q)等於1,否則為0。sθ(q)是使用softmax函數的機率輸出替換了二進制s(q)值。

上述方程中的第一個積分對應於將預測(橙色)遮罩與真實距離場進行乘法運算,並且是最終的邊界損失值。上述方程中的第二個積分減去了G區域內部的距離場。

如果保留第二項,我們實際上會獲得ΔS區域上的積分。

然而,G區域內的距離積分是常數且獨立於網絡參數,因此可以省略。簡化後的邊界損失不包含最後一項,它完全等於預測橙色遮罩與預先計算的真實距離遮罩的逐元素乘積。

水準集函數ϕG是在數據集生成步驟中直接從真實區域G中預先計算出來的。

上述方程描述的邊界損失在最小化時(達到最小值),當距離函數中的所有負值都包含在總和中時(即,地面真實前景像素的softmax預測值等於1)。

邊界損失可以與標準的區域性損失(L_R)(如Dice損失)容易結合 — 實際上,網絡可能會陷入一個非常簡單的解決方案。如果存在空的前景預測,即softmax機率的幾乎所有值都為零,則網絡的梯度非常低。因此,這個非常簡單的解決方案接近局部最小值或鞍點。為了避免這種情況,邊界損失的作者建議將其與區域損失結合使用。區域損失在訓練的開始階段最重要。隨著訓練過程的進展,邊界損失開始發揮主導作用。

其中,λ是平衡兩種損失的參數。

4.6 Lovasz softmax loss

如果 p_t等於 1,則 log(p_t) 等於 0,損失為零。當 pt 接近 1 時,log(p_t) 會趨近負無窮大。對於負類,當我們希望預測的像素等於 0 時,我們使用「否則」方程式。在圖像分割任務中,我們希望將像素包含為遮罩像素的標籤設為 1,而所有其他像素(背景)的標籤設為 0。圖像分割任務是一個類別不平衡的分類問題的良好例子。背景像素的數量通常遠大於物體像素的數量。因此,加權二元交叉熵或聚焦損失是物體分割損失函數的良好選擇。

5. Loss For Face Recognition

5.1 Measured by Euclidean Distance

5.1.1 Softmax Loss

Background / motivation

Softmax 損失實際上就是具有 softmax 激活的分類交叉熵損失。它是人臉識別中最基本的損失函數,可能是最差的。

Definition

Softmax 損失的定義如下:

Xi是第 i 張圖像的特徵向量。Wj是權重的第 j 列,bj是偏差項。類別數量和圖像數量分別為 nm,而 yi 是第 i 張圖像的類別。

Advantages

  • 這個損失函數在文獻中得到了很好的探索,並且在信息理論中有很強的概念基礎[閱讀更多]
  • 大多數標準的機器學習框架已經提供了內置的實現。

Disadvantages

  • 所有的類別都需要在訓練集中有所表示。
  • 在類內/類間距離方面沒有細粒度的控制。

5.1.2 Center Loss

Background / motivation

  • 為了解決 Softmax 損失的限制,這篇 論文的作者提出了 Center Loss 的概念。
  • 首先,他們注意到在特徵空間中,數據的類內變異很大。
  • 他們用一個只有 2 個全連接節點的玩具模型來證明這一點。
  • 訓練後,最終層的激活值的圖表如下圖所示(取自該論文)。
https://ydwen.github.io/papers/WenECCV16.pdf
  • 為了緩解這個問題,他們在 softmax 損失中引入了額外的項,如果數據點距離其類別的中心點遠,就對模型進行懲罰。

Definition

Center Loss 的定義如下:

  • 第一項(灰色部分)與 softmax 損失相同。
  • 在第二項中,cyi 是屬於第 i 個類別的所有點在特徵空間中的中心點。
  • 第二項本質上是所有點與它們各自類別中心點之間的平方距離的總和。在實踐中,這個中心點是一次計算一個batch的,而不是整個數據集。
  • 是一個超參數,用於控制第二項的影響。

Advantages

  • Center Loss 明確地對類內變異進行懲罰。
  • 與後面討論的對比損失(Contrastive Loss)或三元損失(Triplet Loss)不同,它不需要將訓練樣本複雜地組合成對或三元組。

Disadvantages

  • 如果類別數量非常大,計算中心點會變得非常昂貴[來源]
  • 它沒有明確地對類間變異進行懲罰。

5.2 Measured by Angular Distance

5.2.1 A-Softmax (aka SphereFace, Angular Softmax)

Background / motivation

  • 從 softmax 損失中學到的特徵在本質上具有角度分佈(參見 Center Loss 部分的圖片)。
  • 這篇paper的作者們明確利用了這一事實。

Definition

  • 作者們將 softmax 損失的表達重新改寫為特徵向量與其類別對應的權重矩陣中的列向量之間的角度(關於 θ 以外的術語的解釋,請參考 softmax 損失):
  • 然後,他們通過對每個 W 進行正規化並忽略偏差項來簡化表達式。這仍然可以作為一個很好的近似(我理解這只在計算損失時進行,而不是在實際架構中進行)。
  • 然後,他們添加了一個超參數 m 來控制該表達式對角度的敏感度。
  • 這就是 SphereFace 損失。該論文還描述了進一步的修改以完整性為目的,但這個表達式足以理解概念。
  • 余弦函數通過邊界進行修改,如下所示(綠色為未修改部分)。

Advantages

  • 這個損失函數直接處理角度變量,更符合數據的內在分佈。
  • 它不需要將訓練樣本複雜地重新組合成對或三元組。
  • 這個損失有助於同時減小類內距離並增加類間距離(在分母中可以清楚地看到,類內角度比類間角度受到更大的懲罰)。

Disadvantages

  • 原始論文做了一些近似和假設(例如,m 被限制為整數)。
  • 隨著 m 的增加,餘弦函數的局部極小值也落在可能的 θ 範圍內,之後該函數就不是單調的了(即在 θ = π/m 之後)。
  • 作者需要對原始損失函數進行分段修改來解決這個問題。

5.2.2 Large Margin Cosine Loss (aka CosFace, L-Softmax)

Background / motivation

  • 這個損失與 SphereFace 的動機相同,但這篇paper的作者聲稱它更容易理解和執行。

Definition

  • 在這個損失中,特徵向量也被正規化(與 W 類似)並且乘以一個常數因子 s。
  • 角度的余弦值加上了一個邊界 m。公式如下:
  • 餘弦函數被修改如下(綠色表示未修改):

Advantages

  • 餘弦函數的非單調性在這裡不會產生問題,不像 SphereFace。
  • 由於特徵向量也被正規化,模型必須學習更好地分離角度,因為它無法通過學習不同的範數來減小損失。

5.2.3 Additive Angular Margin Loss (aka ArcFace, AM-Softmax)

Background / motivation

  • 這是角度 softmax 損失家族中的另一個損失函數。這篇paper的作者聲稱它具有比前任更好的性能和更清晰的幾何解釋。

Definition

  • 在這裡,邊界被添加到餘弦函數的角度本身。

Advantages

  • 這裡的邊界 m 可以解釋為半徑為 s 的超球面上的額外弧長。
  • 實驗結果顯示,與 Triplet Loss 相比,它具有更好的類間差異性,並具有大致相同的類內相似性。
  • 該論文中的模型優於前面提到的所有模型。
  • 餘弦函數被修改為以下形式(綠色為未修改部分)。

Disadvantages

  • 餘弦函數的非單調性應該對大於 -m 的 θ 值造成問題,但作者似乎沒有具體解決這個問題。

5.3 Loss functions based on Representation Learning(Explicit Negative Examples)

5.3.1 Contrastive Loss

Background / motivation

  • 這是臉部識別中最著名的損失函數之一。
  • 這種損失的動機是開發一個模型,該模型能夠在特徵空間中表示圖像,使得該空間中的距離對應於原始空間中的語義距離。
  • 這種損失基於神經網絡的孿生結構。

Definition

  • 該損失定義如下:
  • 數據集由屬於同一類(y = 1)或不同類(y = 0)的圖像對組成。
  • 每個圖像(x, x)通過基本神經網絡,獲得其特徵向量(f(x), f(x))。然後,d是嵌入之間的距離,即 d = || f(x) — f(x) ||。
  • 如果這對圖像屬於同一類,如果嵌入彼此接近,則損失較小。否則,模型會試圖使對之間至少相距 m 的距離。

Advantages

  • 該損失非常容易理解。
  • m 作為一個邊界可以控制模型在將不相似的embedding推開方面的工作程度。
  • 非常容易將已訓練的模型擴展到新的/未見過的類別,因為該模型學習創建圖像的語義表示,而不僅僅是將其分類為預定義的一組類別之一。

Disadvantages

  • 對於 n 張圖像,存在 O(n^2) 個圖像對。因此,涵蓋所有可能的對是計算上昂貴的。
  • 對於所有不相似的對,邊界 m 是相同的,這隱含地告訴模型,即使某些對比其他對更不相似,它們之間的距離也可以相同。[來源]
  • 此處使用了相似和不相似對的絕對概念,這在一個上下文轉移到另一個上下文中是不可轉換的。例如,訓練於隨機對象圖像的模型在僅包含人物圖像的數據集上進行測試時,可能無法表現出色。[來源]

5.3.2 Triplet Loss

Background / motivation

  • 三元組損失可能是臉部識別中最著名的損失函數。
  • 數據被組織成三元組圖像:錨點,正例,負例。
  • 圖像通過共同的網絡,目標是減少錨點-正例距離,同時增加錨點-負例距離。
  • 損失背後的基本架構如下圖所示:
來源:這篇論文的原始圖片,作者進行了修改

Definition

  • 該損失定義如下:
  • 這裡,Ai, Pi, Ni, 是錨點、正例和負例圖像。
  • f(Ai), f(Pi), f(Ni) 是這些圖像在特徵空間中的嵌入。
  • 邊界是 m。

Advantages

  • 圖像相似性和不相似性的概念僅以相對概念使用,而不是像對比損失中那樣以絕對概念定義它們。
  • 即使對於所有三元組,邊界 m 是相同的,錨點-負例距離(d-)在每種情況下都可以不同,因為錨點-正例距離(d+)不同。
  • 原始論文聲稱相對於基於對比損失的模型,它的性能更好。

Disadvantages

  • 對 d+ 和 d- 的懲罰被限制為相同。這種損失對於 (d+ — d-) 的值的根本原因:高 d+ vs 低 d- 是盲目的。[來源]

5.3.3 Circle Loss

Background / motivation

  • 受到上述三元組損失的缺點的啟發,這篇論文的作者提出了一種解決這個問題的損失函數。
  • 該論文還提出了一個統一分類損失和基於表示學習的損失的框架。

Definition

  • 該損失使用相似性的概念,而不是距離,來衡量兩個圖像之間的相似性。這種相似性可以是點積。
  • 該論文還提供了以固定數量的類別為基礎的損失的 softmax-like 公式。在這裡,我們只考慮基於相似和不相似對的公式。
  • 假設有 K 對相關圖像,其相似性為 s^i_p = {1, 2, 3, …, K},以及 M 對不相關圖像,其相似性為 s^j_n = {1, 2, 3, …, L}。
  • 然後,損失定義如下:
  • 這裡,是一個超參數,是允許更好地控制個別項對損失的影響的係數。
  • 它們定義如下:
  • 這裡,Op 和 On 是超參數,表示正例和負例圖像對相似性的最佳值。
  • 這導致了一個圓形的決策邊界,如該論文中的圖所示:

Advantages

  • 圓形損失具有比三元組損失更明確的收斂目標,因為在(Sn, Sp)空間中存在一個單一點,優化朝向該點(On, Op)。

Disadvantages

  • 這裡的 Op 和 On 的選擇有一定的隨意性。
  • 需要明確選擇負例示例(或在替代公式中,固定類別的數量)。

5.4 No Explicit Negative Examples

5.4.1 Barlow Twins

Background / motivation

  • 這是自我監督學習self-supervised learning (SSL)的一個例子。自我監督學習的一個常見方法是學習對輸入圖像的扭曲不變的表示。
  • 在這樣的方法中,一個常見的問題是陷入一個平凡的解,即對所有圖像使用相同的常數表示。
  • 這篇論文提出了一個損失函數,用於抑制同一圖像的兩個不同表示之間的交叉相關。

Definition

  • 圖像經過兩種不同的(隨機選擇的)扭曲,並通過具有共享權重的孿生架構:
  • 損失函數的定義如下:
  • 其中,每個項Cij的計算方式為:
  • Z是學習到的表示向量。下標i、j分別表示向量表示的i和j分量。上標A、B表示同一輸入圖像的不同扭曲版本。下標b表示batch中的索引。

Advantages

  • 這種方法不需要固定數量的類別
  • 它也不會受到數據擴展的影響,因為它不需要明確的負面例子

Disadvantages

  • 論文中的模型需要較大的最終表示維度才能達到良好的性能。
  • 在去除某些輸入扭曲時,性能不穩定。

5.4.2 SimSiam

Background / motivation

  • 這種損失是在這篇論文中提出的。
  • 該論文試圖構建一個最簡單的孿生架構,以學習圖像的良好表示。

Definition

  • 該損失基於以下架構:
  • 這裡的stop-grad表示z2被視為常數,編碼器網絡的權重不接收任何來自z2的梯度更新。
  • 在最終的損失表達式中,添加了另一個對稱的項,右分支使用預測器網絡而不是左分支。
  • 單個圖像的損失為:
  • 其中,每個項的定義如下:(|| ||2是L2-norm)
  • 這些項在整個batch中求和或平均。

Advantages

  • 這種損失不需要明確的負面例子挖掘
  • 它不需要固定數量的類別
  • 它也不需要像SimCLR或BYOL(本文未討論)那樣的大的batch大小

Disadvantages

  • 該論文無法從理論上解釋模型為什麼不會陷入平凡解(常數表示),只能從實驗上證明。

6. Loss For GAN

生成對抗網絡(GAN)是由Ian Goodfellow等人(2014)首次提出的,是迄今為止最受歡迎的圖像生成任務解決方案。GAN受到博弈論的啟發,並使用對抗性方案,以便可以以無監督的方式進行訓練。

GAN可以被視為一個兩個玩家的遊戲,其中我們將生成器(例如生成超分辨率圖像)對抗另一個網絡 — 鑑別器。鑑別器的任務是評估一個圖像是否來自原始數據集(真實圖像),還是由另一個網絡生成的(假圖像)。鑑別器模型像任何其他深度學習神經網絡一樣進行更新,而生成器使用鑑別器作為損失函數,這意味著生成器的損失函數是在訓練期間隱式且通過學習進行的。通常,對於機器學習模型,收斂意味著在訓練數據集上最小化所選的損失函數。在GAN中,收斂信號意味著兩個玩家遊戲的結束。相反,尋求生成器和鑑別器損失之間的平衡。

對於GAN,生成器和鑑別器是兩個玩家,並輪流更新模型權重。這裡我們將總結一些用於GAN網絡的損失函數。

1. Min-Max Loss function

然而,實踐中發現生成器的這種損失函數會飽和。也就是說,如果生成器無法像鑑別器那樣快速學習,鑑別器就會獲勝,遊戲結束,模型無法有效訓練。

2. Non-Saturating GAN Loss

非飽和GAN損失是生成器損失的修改版本,旨在克服飽和問題,稍作調整。生成器不再最小化生成圖像的鑑別器概率的反轉對數,而是最大化生成圖像的鑑別器概率的對數。

3. Least squares GAN loss

Xudong Mao等人(2016)引入,這種損失函數在生成的圖像與真實圖像非常不同(可以導致非常小或消失的梯度,從而導致模型的很少或沒有更新)時特別有用。

4. Wasserstein GAN Loss

Martin Arjovsky等人(2017)引入。他們觀察到傳統GAN的目標是最小化真實和生成圖像的實際和預測概率分佈之間的距離,即所謂的Kullback-Leibler(KL)散度。相反,他們建議在地球移動距離的基礎上對問題進行建模,該距離計算兩個概率分佈之間的距離,以將一個分佈轉化為另一個分佈的成本。

使用Wasserstein損失的GAN將鑑別器的概念更改為評分器,該評分器的更新頻率比生成器模型更高(例如更頻繁地更新五倍)。評分器將圖像評分為實數值,而不是預測概率。它還要求保持模型權重較小。該分數的計算使得真實圖像和假圖像的分數之間的距離最大化分開。Wasserstein損失的好處是它幾乎在任何地方都提供有用的梯度,允許持續訓練模型。

5. Cycle Consistency Loss

圖像到圖像的轉換是一個需要生成給定圖像的控制修改的圖像合成任務。例如,將馬轉換為斑馬(或相反),將繪畫轉換為照片(或相反),等等。

Jun-Yan Zhu等人(2018)在圖像到圖像轉換的背景下引入。為了進行圖像到圖像的轉換模型的訓練,通常需要大量成對的示例數據集,這些數據集很難找到。CycleGAN是一種無需成對示例的自動訓練技術。這些模型以無監督的方式進行訓練,使用來自源域和目標域的圖像集合,這些圖像集合在任何方式上都不需要相互關聯。

CycleGAN是GAN架構的擴展,涉及同時訓練兩個生成器模型和兩個鑑別器模型。一個生成器將第一域的圖像作為輸入並輸出第二域的圖像,另一個生成器將第二域的圖像作為輸入並生成第一域的圖像。然後使用鑑別器模型來確定生成的圖像的

循環一致性是指第一生成器輸出的圖像可以作為第二生成器的輸入,並且第二生成器的輸出應與原始圖像匹配。反之亦然。

CycleGAN通過添加一個額外的損失函數來鼓勵循環一致性,該函數衡量第二生成器生成的圖像與原始圖像之間的差異,以及反之。這個損失函數用作生成器模型的正則化項,引導圖像生成過程在新域中進行圖像轉換。

--

--

Moris
Computer Vision Note

An AI engineer who loves deep learning technology and is willing to share resources and learn new technologies