常用 Loss Function 整理
Table of Contents
均方誤差(Mean Squared Error, MSE)
- 定義: $$ MSE = \frac{1}{N} \sum_{i=1}^{N}(y_i - \hat{y}_i)^2 $$
- 應用場景:主要用於迴歸問題。透過最小化 MSE,模型會盡量減少預測值和真實值之間的平方差。
- 優缺點:
- 優點:對大誤差更敏感,會受到較大誤差的顯著懲罰。
- 缺點:對於異常值(outliers)非常敏感,可能導致訓練不穩定。
平均絕對誤差(Mean Absolute Error, MAE)
- 定義: $$ MAE = \frac{1}{N}\sum_{i=1}^{N} \lvert y_i - \hat{y}_i \rvert $$
- 應用場景:同樣常見於迴歸問題。
- 優缺點:
- 優點:對離群值的敏感度相對較低,具有更好的穩定性。
- 缺點:在最佳化時,梯度在 $|x|=0$ 附近不連續(不可微),需要特殊策略處理。
交叉熵(Cross Entropy)
- 定義:最常用於分類問題,衡量預測分佈與真實分佈的差異。
- 二元交叉熵(Binary Cross-Entropy): $$ L_{BCE} = -\frac{1}{N}\sum_{i=1}^{N} \Bigl[y_i \log(\hat{y}_i) + (1 - y_i) \log(1 - \hat{y}_i)\Bigr] $$
- 多類交叉熵(Categorical Cross-Entropy): $$ L_{CE} = -\sum_{c=1}^{C} y_c \log(\hat{y}_c) $$
- 應用場景:常見於影像分類、自然語言處理等各種分類任務。
- 優缺點:
- 優點:對於概率分佈建模效果佳。
- 缺點:若預測值非常接近 0 或 1,可能導致梯度消失或爆炸。
KL 散度(Kullback–Leibler Divergence, KLD)
- 定義:衡量兩個機率分佈($P$ 與 $Q$)的差距。 $$ D_{KL}(P || Q) = \sum_{x} P(x) \log\frac{P(x)}{Q(x)} $$
- 應用場景:在 VAE(Variational Autoencoder)等生成模型中常見。
- 優缺點:
- 優點:能精確刻畫分佈之間的差異。
- 缺點:對分佈的重疊區域非常敏感,且不對稱($D_{KL}(P || Q) \neq D_{KL}(Q || P)$)。
Huber Loss
- 定義:兼具 MSE 與 MAE 的特性,對大誤差採用線性懲罰,對小誤差採用二次懲罰。 $$ L_\delta(x) = \begin{cases} \frac{1}{2}(x)^2 & \text{if } |x| \le \delta,\ \delta (|x| - \frac{\delta}{2}) & \text{if } |x| > \delta \end{cases} $$
- 應用場景:多用於對異常值敏感但不希望如 MSE 過度懲罰的情況。
Focal Loss
- 定義:在交叉熵的基礎上增加一個調整因子 $(1 - \hat{y}_i)^\gamma$,用於平衡難分類樣本與易分類樣本。 $$ L_{Focal}(p_i) = -\alpha_i (1 - p_i)^{\gamma} \log(p_i) $$
- 應用場景:在物件偵測、影像分割或稀有事件檢測等類別嚴重不平衡的場景常用。
- 優點:能夠大幅降低簡單樣本的權重,聚焦於困難樣本的學習。
Dice Loss
- 定義:主要用於影像分割,衡量分割結果與真實標籤的重疊程度。
- Dice 系數(Dice Coefficient)定義: $$ Dice = \frac{2|A \cap B|}{|A| + |B|} $$
- Dice Loss 定義: $$ L_{Dice} = 1 - Dice $$
- 應用場景:2D 或 3D 影像分割任務,如醫學影像、語義分割。
- 優點:對於樣本不平衡時比單純的交叉熵更穩定;特別是前景與背景比例懸殊時。
IoU Loss (Intersection over Union Loss)
- 定義:類似 Dice Loss,衡量預測區域與真實區域的交集比率。 $$ IoU = \frac{|A \cap B|}{|A \cup B|} $$ $$ L_{IoU} = 1 - IoU $$
- 應用場景:影像分割與物件偵測。IoU 也是許多檢測評估指標(mAP)的基礎。
- 優點:能直接反映區域的重疊程度。
Tversky Loss
- 定義:Tversky 指數是 Dice 的廣義形式,提供對假陽性與假陰性的調整能力。 $$ Tversky(A, B; \alpha, \beta) = \frac{|A \cap B|}{|A \cap B| + \alpha|A\B| + \beta|B\A|} $$ $$ L_{Tversky} = 1 - Tversky(A, B; \alpha, \beta) $$
- 應用場景:用於高度不平衡的分割任務,可以根據不同錯誤類型(假陽性或假陰性)調整權重。
Wasserstein Loss (Earth Mover’s Distance)
- 定義:衡量兩個分佈之間的距離,尤其在生成對抗網路(GAN)中常用。
- 以 WGAN 為例,對判別器(critic)輸出加以優化: $$ W(p_r, p_\theta) = \inf_{\gamma \in \Pi(p_r, p_\theta)} \mathbb{E}_{(x,y) \sim \gamma}[||x-y||] $$ 其中 $\Pi$ 表示所有在分佈間的聯合分佈集合。
- 應用場景:WGAN, WGAN-GP 等生成對抗網路。
- 優點:能提供更穩定的生成對抗訓練,減少 mode collapse。
Cosine Similarity Loss
- 定義:常用於度量學習或語義相似度任務,目標是最大化預測向量與真實向量的餘弦相似度。
- 餘弦相似度: $$ \mathrm{cos}(\theta) = \frac{\mathbf{u}\cdot\mathbf{v}}{|\mathbf{u}|,|\mathbf{v}|} $$
- Cosine Loss(可取 1 - cos(\theta)): $$ L_{cos} = 1 - \mathrm{cos}(\theta) $$
- 應用場景:句子相似度、推薦系統、向量檢索等。
- 優點:對向量的長度不敏感,著重方向一致性。
Triplet Loss
- 定義:常見於度量學習,透過錨點(anchor)、正樣本(positive)與負樣本(negative)的距離關係來訓練。 $$ L_{Triplet} = \max\bigl(d(a, p) - d(a, n) + \alpha, 0\bigr) $$ 其中 $d$ 表示距離函式,$\alpha$ 是 margin 超參數。
- 應用場景:臉部辨識(FaceNet)、影像檢索、度量學習。
- 優點:能有效地拉近相似樣本、推遠不相似樣本。
InfoNCE Loss
- 定義:在自我監督式學習(Self-Supervised Learning)中常見,用於對比學習(Contrastive Learning),例如 SimCLR、MoCo 等。 $$ L_{InfoNCE} = -\log \frac{\exp(\mathbf{z}_i \cdot \mathbf{z}_j / \tau)}{\sum_{k=1}^{K}\exp(\mathbf{z}_i \cdot \mathbf{z}_k / \tau)} $$ 其中 $\mathbf{z}_i$ 與 $\mathbf{z}_j$ 是正樣本對,$\mathbf{z}_k$ 是負樣本。
- 應用場景:對比學習、表示學習。
- 優點:能在無標籤情況下學到具判別能力的特徵表示。
Perceptual Loss(感知損失)
- 定義:透過在深度網路(如 VGG)中提取高階特徵,再比較生成結果與真實影像在這些特徵空間的距離。 $$ L_{perc} = \sum_{l} \frac{1}{N_l}|\phi_l(x) - \phi_l(y)|^2 $$ 其中 $\phi_l$ 表示網路第 $l$ 層的特徵,$N_l$ 為該層通道大小。
- 應用場景:圖像合成、風格遷移、超解析度等。
- 優點:在感知層面衡量差異,更符合人類視覺感知。
Mean Squared False Error (MSFE)
概念介紹:Mean Squared False Error(MSFE)是一種用於 3D 體素(voxel)或其他結構化資料的誤差衡量方式,著重於同時平衡「假陽性(false positive)」與「假陰性(false negative)」的誤差。透過對這兩種誤差分別進行平方處理並加總或組合,MSFE 能在形狀重建(shape reconstruction)等任務中,兼顧模型在空間佔據(occupied)與空間未佔據(unoccupied)兩類體素上的預測準確度。
一般形式:MSFE 的具體實作依論文與應用場景而異,但核心思路是定義對假陽性與假陰性的誤差量度,並以平方(squared error)的方式衡量和加總。例如,在某些論文中,MSFE 與下列誤差有關:
- 假陽性誤差(FP Error):針對實際未佔據(unoccupied)的體素,被模型預測為佔據的誤差。
- 假陰性誤差(FN Error):針對實際佔據(occupied)的體素,被模型預測為未佔據的誤差。
若分別計算得到 FP 與 FN,則可能採用類似下式的簡化形式:
$$ MSFE = (FP)^2 + (FN)^2, $$
或更進階地,對 FP 和 FN 進行平均後再平方、加權相加等方式,視任務需求而定。
應用場景:
- 3D 形狀重建:在體素網格(voxel grid)上進行物體形狀預測時,希望同時降低預測的假陽性和假陰性,以獲得更精準的幾何。
- 稀疏資料處理:當資料中未佔據(背景)佔大多數時,單純的 MSE 或交叉熵可能造成不平衡,MSFE 透過額外強調 FP 與 FN 的平方誤差,讓模型更重視這兩種錯誤。
優勢:
- 平衡性:同時對「預測為佔據的錯誤」與「預測為非佔據的錯誤」進行平方處理,使得模型可兼顧兩種型態的錯誤。
- 靈活性:若任務中對假陽性或假陰性有不同側重,可在 MSFE 的計算上進行權重調整。
限制:
- 非通用標準:MSFE 在傳統 2D 分類或回歸任務中並不常見,主要針對 3D 體素或特殊情況。
- 需搭配其他度量:在某些情形下僅使用 MSFE 可能不足以全面描述模型效能,常需要搭配其他損失或評估指標(如 IOU、Dice 等)。
MSFCEL(Mean Squared False Cross-Entropy Loss)
MSFCEL 建立於 “Mean Squared False Error (MSFE)” 的概念之上,將「假陽性交叉熵」($\text{FPCE}$) 與「假陰性交叉熵」($\text{FNCE}$) 以平方和的方式結合,定義如下:
$$ \text{MSFCEL} = \text{FPCE}^2 + \text{FNCE}^2. $$
假陽性交叉熵 FPCE
- FPCE (False Positive Cross-Entropy) 用於衡量未佔用體素的預測誤差,即「實際未佔用卻被誤判為已佔用」。
- 令 $N$ 為未佔用體素總數,$V_n$ 為第 $n$ 個未佔用體素的真實標籤(多為 0),$\hat{V}_n$ 為該體素的預測值,則可定義 $$ \text{FPCE} = -\frac{1}{N} \sum_{n=1}^N \Bigl[,V_n \log \hat{V}_n +(1 - V_n)\log\bigl(1 - \hat{V}_n\bigr)\Bigr]. $$
假陰性交叉熵 FNCE
- FNCE (False Negative Cross-Entropy) 用於衡量已佔用體素的預測誤差,即「實際已佔用卻被誤判為未佔用」。
- 令 $P$ 為已佔用體素總數,$V_p$ 為第 $p$ 個已佔用體素的真實標籤(多為 1),$\hat{V}_p$ 為該體素的預測值,則可定義 $$ \text{FNCE} = -\frac{1}{P} \sum_{p=1}^P \Bigl[,V_p \log \hat{V}_p +(1 - V_p)\log\bigl(1 - \hat{V}_p\bigr)\Bigr]. $$
結合為 MSFCEL
將上述兩個誤差做「平方和」得到 $$ \text{MSFCEL} = \text{FPCE}^2 + \text{FNCE}^2. $$
此時,模組在訓練過程中會同時最小化 $\text{FPCE}$ 與 $\text{FNCE}$,並且因為二者都被「平方」放大,所以有助於平衡地抑制假陽性與假陰性誤差。
優勢與可能應用
平衡佔用與未佔用體素的預測
MSFCEL 透過同時懲罰「假陽性」與「假陰性」的平方誤差,使得模型不會過度偏向單一類別的正確性,而忽略另一類別的精度。提升體素形狀重建品質
在 3D 形狀重建的應用中,若假陽性高,則重建結果會帶來不必要的雜訊(即多餘凸起或雜點);若假陰性高,則會使重建的物體殘缺不全。MSFCEL 同時抑制兩種錯誤,因此更能維持物體輪廓的完整與乾淨。可搭配其它技術
在稀疏體素處理、深度學習網路設計或損失權重調整(re-weighting)等技術中,MSFCEL 都可以融入,幫助更進一步地控制模型學習行為。若有需要,也可結合 focal loss 或 dice loss 等進一步針對稀疏性問題的策略。
Disclaimer: All reference materials on this website are sourced from the internet and are intended for learning purposes only. If you believe any content infringes upon your rights, please contact me at csnote.cc@gmail.com, and I will remove the relevant content promptly.
Feedback Welcome: If you notice any errors or areas for improvement in the articles, I warmly welcome your feedback and corrections. Your input will help this blog provide better learning resources. This is an ongoing process of learning and improvement, and your suggestions are valuable to me. You can reach me at csnote.cc@gmail.com.