損失函數(Loss Function),在機器學習和統計學中,是用來量化模型預測輸出與真實結果之間差異的函數。簡而言之,損失函數衡量了模型預測的好壞,目標是通過最小化這個函數來優化模型參數,從而提高預測準確性。下面是一些常用的損失函數及其應用場景:
1. 均方誤差(Mean Squared Error, MSE)
- 理解:對于回歸問題,MSE計算預測值與真實值之差的平方和的均值,能夠放大較大誤差的影響。
- 公式: L ( Y , Y ^ ) = 1 n ∑ i = 1 n ( y i ? y ^ i ) 2 L(Y, \hat{Y}) = \frac{1}{n} \sum_{i=1}^{n}(y_i - \hat{y}_i)^2 L(Y,Y^)=n1?i=1∑n?(yi??y^?i?)2
- 場景:廣泛用于連續值預測任務,如房價預測、股票價格預測等。
2. 平均絕對誤差(Mean Absolute Error, MAE)
- 理解:與MSE類似,但取差值的絕對值,對異常值敏感性較低。
- 公式: L ( Y , Y ^ ) = 1 n ∑ i = 1 n ∣ y i ? y ^ i ∣ L(Y, \hat{Y}) = \frac{1}{n} \sum_{i=1}^{n}|y_i - \hat{y}_i| L(Y,Y^)=n1?i=1∑n?∣yi??y^?i?∣
- 場景:同樣適用于回歸問題,特別是當希望模型對誤差有更均勻的反應時。
3. 交叉熵損失(Cross-Entropy Loss)
- 理解:用于分類問題,特別是在神經網絡中,衡量預測概率分布與實際類別標簽的概率分布的差異。
- 公式(二分類問題,sigmoid激活函數): L ( y , p ) = ? y log ? ( p ) ? ( 1 ? y ) log ? ( 1 ? p ) L(y, p) = -y \log(p) - (1-y) \log(1-p) L(y,p)=?ylog(p)?(1?y)log(1?p)
- 場景:分類任務,如圖像分類、文本分類等。
4. 邏輯斯諦損失(Logistic Loss)
- 理解:實際上是二元交叉熵損失的一種特例,常用于邏輯回歸模型。
- 場景:與交叉熵損失類似,適用于二分類問題。
5. Hinge損失
- 理解:主要用于最大間隔分類器,如支持向量機(SVM),鼓勵模型找到寬的分類邊界。
- 公式: L ( y , y ^ ) = max ? ( 0 , 1 ? y y ^ ) L(y, \hat{y}) = \max(0, 1 - y\hat{y}) L(y,y^?)=max(0,1?yy^?)
- 場景:適用于支持向量機等最大間隔分類問題。
6. Huber損失
- 理解:結合了MSE和MAE的優點,對離群點較為魯棒,當誤差較小時表現為平方損失,誤差較大時變為線性損失。
- 公式:基于閾值 δ ( δ ) δ(\delta) δ(δ),當誤差 ∣ y ? y ^ ∣ ≤ δ |y-\hat{y}|≤δ ∣y?y^?∣≤δ時, L = 1 2 ( y ? y ^ ) 2 L=\frac{1}{2}(y-\hat{y})^2 L=21?(y?y^?)2;否則, L = δ ( ∣ y ? y ^ ∣ ? 1 2 δ ) L=\delta(|y-\hat{y}|-\frac{1}{2}\delta) L=δ(∣y?y^?∣?21?δ)
- 場景:適合包含較多離群值的數據集的回歸問題。
選擇原則:
選擇損失函數時,需考慮任務類型(回歸還是分類)、數據特性(如是否含有離群點)、模型訓練的穩定性以及對誤差的容忍度等因素。例如,在對預測誤差的敏感性要求不高且數據可能存在噪聲時,MAE可能是更好的選擇;而在分類任務中,尤其是多分類或需要概率輸出時,交叉熵損失通常是首選。