什麼是 焦點損失函數(Focal Loss)?

焦點損失函數 (Focal Loss) 是一種用於解決物件偵測中類別不平衡問題的損失函數,它通過降低易分類樣本的權重,使模型更關注難分類樣本。

核心概念

焦點損失函數 (Focal Loss) 的核心概念是基於這樣一個觀察:在物件偵測等任務中,大量的候選框都是容易分類的背景樣本,這些樣本雖然數量龐大,但對模型的學習貢獻不大,甚至會淹沒那些難以分類的樣本,導致模型在難分類樣本上的性能下降。Focal Loss 的目標是通過調整損失函數的權重,使模型更加關注難分類樣本,從而提高模型的整體性能。

Focal Loss 主要通過兩個參數來實現這個目標:

  • 調製因子 (Modulating Factor): 用於降低易分類樣本的權重。調製因子基於樣本的預測概率,預測概率越高(即越容易分類),調製因子越小,從而降低該樣本的損失。
  • 聚焦參數 (Focusing Parameter) γ: 用於控制調製因子的強度。γ 越大,調製因子對易分類樣本的權重降低得越多。

運作原理

Focal Loss 是基於標準的交叉熵損失函數 (Cross Entropy Loss) 進行改進的。對於二元分類問題,交叉熵損失函數可以表示為:

CE(p, y) = -y * log(p) - (1 - y) * log(1 - p)

其中,p 是模型預測的樣本屬於正類的概率,y 是樣本的真實標籤 (0 或 1)。

Focal Loss 在交叉熵損失函數的基礎上引入了調製因子:

FL(p, y) = -α * (1 - p)^γ * y * log(p) - α * p^γ * (1 - y) * log(1 - p)

其中:

  • α 是用於平衡正負樣本比例的權重因子。
  • (1 - p)^γp^γ 是調製因子,用於降低易分類樣本的權重。
  • γ 是聚焦參數,用於控制調製因子的強度。

調製因子的作用:

  • p 接近 1(即樣本容易被正確分類為正類)時,(1 - p)^γ 接近 0,從而降低該樣本的損失。
  • p 接近 0(即樣本容易被正確分類為負類)時,p^γ 接近 0,從而降低該樣本的損失。
  • p 遠離 1 或 0(即樣本難以分類)時,調製因子接近 1,損失不受影響。

聚焦參數 γ 的作用:

  • γ = 0 時,Focal Loss 退化為標準的交叉熵損失函數。
  • γ > 0 時,Focal Loss 開始降低易分類樣本的權重,γ 越大,降低的程度越大。

詳細範例:

假設我們有以下兩個樣本:

  • 樣本 A:真實標籤為正類 (y = 1),模型預測概率為 0.9 (p = 0.9)。
  • 樣本 B:真實標籤為正類 (y = 1),模型預測概率為 0.3 (p = 0.3)。

使用交叉熵損失函數:

  • CE(A) = -log(0.9) ≈ 0.105
  • CE(B) = -log(0.3) ≈ 1.204

使用 Focal Loss (α = 1, γ = 2):

  • FL(A) = -(1 - 0.9)^2 * log(0.9) ≈ 0.001
  • FL(B) = -(1 - 0.3)^2 * log(0.3) ≈ 0.589

可以看到,對於容易分類的樣本 A,Focal Loss 將其損失降低了 100 倍,而對於難以分類的樣本 B,Focal Loss 的損失降低幅度較小。這使得模型更加關注難以分類的樣本。

實際應用

Focal Loss 最初被設計用於解決物件偵測任務中的類別不平衡問題,並在 RetinaNet 模型中取得了顯著的成功。目前,Focal Loss 已經廣泛應用於各種物件偵測模型中,例如:

  • RetinaNet: 一種基於 Feature Pyramid Network (FPN) 的單階段物件偵測器,使用 Focal Loss 來解決類別不平衡問題。
  • Faster R-CNN: 一種兩階段物件偵測器,也可以使用 Focal Loss 來提高性能。
  • Mask R-CNN: 一種用於物件偵測和實例分割的模型,可以使用 Focal Loss 來提高分割精度。

除了物件偵測,Focal Loss 也可以應用於其他領域,例如:

  • 語義分割: 在語義分割中,Focal Loss 可以用於解決像素級別的類別不平衡問題。
  • 自然語言處理: 在自然語言處理中,Focal Loss 可以用於解決文本分類等任務中的類別不平衡問題。

常見誤區

  • Focal Loss 只能用於解決類別不平衡問題: 雖然 Focal Loss 最初被設計用於解決類別不平衡問題,但它也可以提高模型在所有樣本上的性能,即使類別是平衡的。這是因為 Focal Loss 可以使模型更加關注難以分類的樣本,從而提高模型的泛化能力。
  • γ 的值越大越好: γ 的值越大,Focal Loss 對易分類樣本的權重降低得越多。然而,如果 γ 的值太大,可能會導致模型過度關注難以分類的樣本,而忽略了易分類樣本,從而降低模型的性能。通常需要根據具體任務和數據集進行調整。
  • Focal Loss 可以完全替代其他解決類別不平衡問題的方法: Focal Loss 是一種有效的解決類別不平衡問題的方法,但它並不能完全替代其他方法,例如重採樣 (Resampling) 和成本敏感學習 (Cost-Sensitive Learning)。在實際應用中,可以將 Focal Loss 與其他方法結合使用,以獲得更好的效果。

相關術語

常見問題

← 回到 焦點損失函數 快查頁

延伸學習

想看 焦點損失函數 的完整影片教學?前往 美第奇 AI 學院