損失函數(shù)是機(jī)器學(xué)習(xí)中用來衡量模型預(yù)測結(jié)果與真實(shí)結(jié)果之間的差異的函數(shù),它反映了模型的優(yōu)化目標(biāo)和性能指標(biāo)。在機(jī)器學(xué)習(xí)中,選擇合適的損失函數(shù)至關(guān)重要,因為它直接影響模型的訓(xùn)練效果和最終性能。以下是一些選擇合適損失函數(shù)的要點(diǎn)和方法:
回歸任務(wù) :
均方誤差(Mean Squared Error,MSE) :計算預(yù)測值與真實(shí)值之間差值的平方的平均值。它對誤差進(jìn)行了平方操作,所以會放大較大誤差的影響,常用于線性回歸等任務(wù)中。例如預(yù)測房價,若真實(shí)房價是 500 萬,預(yù)測值為 400 萬,差值為 100 萬,MSE 會計算這個差值的平方等相關(guān)運(yùn)算來衡量損失。其數(shù)學(xué)表達(dá)式為:
,其中
是樣本數(shù)量,
是真實(shí)值,
是預(yù)測值。
平均絕對誤差(Mean Absolute Error,MAE) :計算預(yù)測值與真實(shí)值之間差值的絕對值的平均值。相比于 MSE,它對異常值沒那么敏感,因為沒有進(jìn)行平方放大操作。比如同樣預(yù)測房價的例子,它只計算差值的絕對值來衡量損失,數(shù)學(xué)表達(dá)式為:
。
均方根誤差(Root Mean Squared Error,RMSE) :它是 MSE 的平方根,和 MSE 類似,但量綱與目標(biāo)變量一致,使得其在實(shí)際解釋損失大小時更直觀,公式為
。
分類任務(wù) :
交叉熵?fù)p失(Cross Entropy Loss) :在多分類問題中廣泛應(yīng)用,比如圖像分類識別是貓、狗還是兔子等類別。它衡量了兩個概率分布之間的差異,模型輸出的預(yù)測概率分布和真實(shí)的類別概率分布(通常是 one-hot 編碼形式,即正確類別為 1,其余為 0)之間的差異越小,交叉熵?fù)p失越小。對于二分類的情況,其表達(dá)式可以簡化為
,其中
是真實(shí)標(biāo)簽(0 或 1),
是預(yù)測為正類的概率;多分類的一般形式相對復(fù)雜些,和類別數(shù)量以及概率分布計算相關(guān)。
鉸鏈損失(Hinge Loss) :常用于支持向量機(jī)(SVM)中,特別是在處理線性可分的二分類問題時表現(xiàn)良好。它鼓勵正確分類的樣本與決策邊界保持一定的間隔,表達(dá)式為
,其中
是樣本
的真實(shí)標(biāo)簽(
表示正負(fù)類),
是權(quán)重向量,
是樣本特征向量,
是偏置項。
對數(shù)損失(Log Loss) :和交叉熵?fù)p失類似,常用于衡量分類模型的性能,本質(zhì)上也是基于概率的一種損失衡量方式,特別在邏輯回歸等模型中常用,其計算公式為
,這里
是真實(shí)標(biāo)簽,
是預(yù)測為正類的概率。
存在異常值的數(shù)據(jù) :如果數(shù)據(jù)集中存在少量較大或較小的異常值,像在一些金融數(shù)據(jù)預(yù)測(如股票價格預(yù)測)中,MAE 相對更合適,因為 MSE 會因為對誤差的平方操作而過度受到異常值的影響,導(dǎo)致模型訓(xùn)練可能偏向于減小異常值帶來的巨大損失,而忽略了其他正常樣本的擬合情況。
數(shù)據(jù)分布不均勻的情況 :在分類任務(wù)中,若不同類別樣本數(shù)量差異很大(比如正類樣本占比極少,負(fù)類樣本占比極大,像在疾病檢測中健康樣本遠(yuǎn)多于患病樣本),可以考慮使用加權(quán)的交叉熵?fù)p失,對少數(shù)類樣本的損失賦予更高權(quán)重,使得模型能更關(guān)注對這些少量但重要的樣本的學(xué)習(xí),避免總是傾向于預(yù)測多數(shù)類而忽略少數(shù)類。
基于概率輸出的模型 :像邏輯回歸、神經(jīng)網(wǎng)絡(luò)用于分類時,交叉熵?fù)p失就很契合,因為這些模型最后輸出的是類別的概率,而交叉熵?fù)p失正是基于概率分布差異來衡量損失的,能很好地引導(dǎo)模型去優(yōu)化概率輸出,使其更接近真實(shí)的類別分布。
基于距離衡量的模型 :例如 K 近鄰等簡單的基于樣本距離進(jìn)行決策的模型,在回歸場景下使用 MAE 或者 MSE 這類基于預(yù)測值和真實(shí)值距離(差值)來衡量損失的函數(shù)就比較自然,能夠讓模型去調(diào)整特征空間中的距離關(guān)系來更好地做出預(yù)測。
某些損失函數(shù)的梯度特性好 :例如 MSE 損失函數(shù),它在求導(dǎo)等梯度計算方面形式比較簡單,在使用梯度下降等優(yōu)化算法訓(xùn)練模型時,計算的復(fù)雜度低、效率高,能夠比較平穩(wěn)快速地更新模型參數(shù)。而像一些復(fù)雜的自定義損失函數(shù),如果其梯度計算復(fù)雜甚至不連續(xù),那么在模型訓(xùn)練優(yōu)化時就會面臨困難,可能導(dǎo)致訓(xùn)練難以收斂或者收斂到局部最優(yōu)的情況。
選擇的損失函數(shù)最好和最終用于評估模型好壞的指標(biāo)有一定關(guān)聯(lián)性,比如在回歸任務(wù)中,如果最終關(guān)注模型預(yù)測的平均絕對誤差情況,那在訓(xùn)練時選擇 MAE 作為損失函數(shù),就能在訓(xùn)練過程中直接朝著優(yōu)化這個評估指標(biāo)的方向去調(diào)整模型,更有利于達(dá)到期望的模型性能。
總之,要綜合多方面的因素來選擇合適的損失函數(shù),必要時可以嘗試不同的損失函數(shù)對比模型訓(xùn)練的效果,最終確定最適合具體問題的那一款損失函數(shù)。損失函數(shù)是否能夠滿足業(yè)務(wù)或?qū)嶋H問題的需求,例如預(yù)測結(jié)果的置信度、可解釋性、可擴(kuò)展性等。