機器學習中的損失函式 二 回歸問題的損失函式

2022-05-18 20:57:05 字數 2184 閱讀 8648

$$mse = \sum_^n (y_i - \hat)^2 \tag1$$

平方損失函式是光滑函式,能夠用梯度下降法進行優化。然而,**值距離真實值越遠,平方損失的懲罰力度越大,因此,它對異常點比較敏感。為了解決該問題,可以採用絕對損失函式。

$$mae = \sum_^n |y_i - \hat| \tag2$$

mae相比mse的優點:

mae相當於在做中值回歸,相比做均值回歸的mse,mae對異常點的魯棒性更好。(中值回歸與均值回歸的介紹詳見「補充資訊」)

mae的不足:

1. mae在 $y = \hat y$ 處無法求導數。針對這種情況,平衡mse的可導性和mae的魯棒性,可以採用huber損失函式(在第3部分介紹)。

2. mae更新的梯度始終相同,那麼在接近最優值處可能仍維持著較大的梯度而錯過最優值。

針對這種情況,可以使用變化的學習率,在接近最優值時降低學習率。

而mse在這種情況下表現較好,即使使用固定的的學習率也可以有效收斂。mse損失的梯度隨損失增大而增大,在損失趨於0時則減小,這使得在訓練結束時,mse模型的結果往往會更精確。 

那麼什麼時候用mse,什麼時候用mae呢?

mse:如果異常點代表在商業中很重要的異常情況,並且需要被檢測出來,則應選用mse損失函式。

mae:相反,如果只把異常值當作受損資料,則應選用mae損失函式。

總而言之,處理異常點時,mae更穩定,但它的導數不連續,因此求解效率較低。

mse對異常點更敏感,但通過令其導數為0,可以得到更穩定的封閉解。 

mse與mae都不能很好解決的問題:

二者兼有的問題是:在某些情況下,上述兩種損失函式都不能滿足需求。例如,若資料中90%的樣本對應的目標值為150,剩下10%在0到30之間。那麼使用mae作為損失函式的模型可能會忽視10%的異常點,而對所有樣本的**值都為150。

這是因為模型會按中位數來**。而使用mse的模型則會給出很多介於0到30的**值,因為模型會向異常點偏移。上述兩種結果在許多商業場景中都是不可取的。

這些情況下應該怎麼辦呢?最簡單的辦法是對目標變數進行變換。而另一種辦法則是換乙個損失函式,這就引出了下面要講的第三種損失函式,即huber損失函式。

補充資訊:1. 中值回歸就是我們優化的目標是使目標值趨於樣本點值的中位數,直觀理解就是大於 與 小於 目標值的樣本點數盡量相等。

2. 均值回歸的目標則是使目標值趨於樣本點值的均值。

3. 為什麼mse是均值回歸,而mae是中值回歸呢?

我在stackexchange找到一條很好的解釋。

(3)huber損失函式在|y - f(x)|較小時為平方損失,在 |y - f(x)| 較大時為線性損失。並且處處可導。

這裡超引數$\delta$的選擇非常重要,因為這決定了你對與異常點的定義。當殘差大於$\delta$,應當採用l1(對較大的異常值不那麼敏感)來最小化,而殘差小於超引數,則用l2來最小化。

由上圖可知,$\delta$ 越大,對異常點越敏感。

為什麼使用huber?

在離最優值較遠時,huber損失相當於mae,對異常點有更好的魯棒性;

當離最優值較近時,huber損失相當於mse,隨著損失的減小梯度也在逐漸減小,可以更好的逼近最優值,可以避免mae中始終維持大梯度而錯過最優值的問題。

使用mae訓練神經網路最大的乙個問題就是不變的大梯度,這可能導致在使用梯度下降快要結束時,錯過了最小點。而對於mse,梯度會隨著損失的減小而減小,使結果更加精確。

在這種情況下,huber損失就非常有用。它會由於梯度的減小而落在最小值附近。比起mse,它對異常點更加魯棒。因此,huber損失結合了mse和mae的優點。但是,huber損失的問題是我們可能需要不斷調整超引數delta。

機器學習8回歸問題

對於之前在分類問題中有邏輯回歸,而對於這個線性回歸以前一般是先講述,將線性回歸的結果通過函式對映到 0,1 區間,再以0.5作為區分形成分類問題。具體的計算方法,在以前的blogs提到過,參考 下面就直接實戰 跟之前一樣,第一步匯入資料。def loaddataset filename numfea...

機器學習入門課程(3) 回歸問題和聚類問題

回歸問題用於 輸入變數和輸出變數之間的關係,特別時當輸入變數的值發生變化時,輸出變數值隨之發生變化。直觀來說,回歸問題等價於函式擬合,選擇一條函式曲線使其很好的擬合已知資料且 未知資料。回歸問題分類 線性回歸 線性回歸演算法假設特徵和結果滿足線性關係。這就意味著可以將輸入項分別乘以一些常量,再將結果...

機器學習中的損失函式

監督學習問題是在假設空間中選取模型作為決策函式,對於給定的輸入x,由f x 給出對應的輸出y,這個輸出的 值可能與真實值一致或不一致,可以用損失函式 loss function 或代價函式 cost function 來度量 錯誤的程度。f x 1,y f x 0,y f x f x 1 y f x...