請問MAE和MSE的關係,會出現反相關的現象嗎,也就是一個下降,一個上升?

今天做實驗,調的是sklearn.metrics里的mean_square_error和mean_absolute_error方法,裡面傳的參數是一樣的,損失函數定義的也是MSE,但是迭代出來MSE不降反升,MAE倒是持續下降,求解答


首先給出答案,那就是你所描述的情況是可能出現的!下面具體說一下:

首先統一一下說法,由於你調用的是mean_square_error,所以我後面一直稱為MSE,然後將mean_absolute_error稱為MAE。MSE被叫做均方誤差,也有叫殘差平方和的。MAE為絕對誤差。

假設想要預測的變數為 Y=left( y_1,y_2,...,y_n 
ight) ,而預測到的值為 hat{Y}=left( hat{y_1},hat{y_2},...,hat{y_n} 
ight) ,MSE及MAE的定義分別如下:

MSE=frac{1}{n}sum_{i=1}^{n}{(y_i-hat{y_i})^2} , MAE=frac{1}{n}sum_{i=1}^{n}{|y_i-hat{y_i}|}

上面的MSE和MAE分別可以對應到向量的2-範數和1-範數。若是分別使用參數向量的2-範數和1-範數作為線性回歸損失函數的正則項,那麼就可以分別得到Ridge回歸及LASSO回歸。當然這是題外話!

下面舉一個例子來說明會出現你的情況:

假如想要預測的變數的真實值為 Y=left( 1, 1, 2, 1 
ight) , 而當前的預測值為 hat{Y}=left( 0.6, 0.6, 1.6, 0.6 
ight) ,我們可以簡單計算出此時的MSE和MAE分別為: MSE=frac{1}{4}[(1-0.6)^2+(1-0.6)^2+(2-1.6)^2+(1-0.6)^2]=0.16MAE=frac{1}{4}(|1-0.6|+|1-0.6|+|2-1.6|+|1-0.6|)=0.4

然後對上面的預測值進行調整,可能由於數據噪音或者由於學習率(learning rate)設置過大等原因導致MSE發散,舉個例子,比如調整後新預測的值為 hat{Y}=left( 1, 1, 1, 1 
ight) ,此時我們重新計算MSE和MAE:

MSE=frac{1}{4}[(1-1)^2+(1-1)^2+(2-1)^2+(1-1)^2)=0.25

MAE=frac{1}{4}(|1-1|+|1-1|+|2-1|+|1-0|)=0.25

顯然MSE從0.16變為了0.25是在增加的,而MAE從0.4變為了0.25,是在減少的。這裡的示例和你出現的情況一致。

具體以上面哪個為標準需要根據你的需要以及你的需求來決定。上面在你設置MSE為損失函數然後MSE還在升高,你可以嘗試降低learning rate,增加訓練數據量等方法來嘗試解決一下。

-------------

P.S. 1. 問題標題中問的是RMSE和MSE的關係,根據問題的具體描述,題主應該是想說MSE和MAE,所以直接回答的MSE和MAE。感謝wenlin和梁賦航的評論!

P.S. 2. 最初MSE和MAE公式有些問題,已經修正,感謝元峰提醒!

P.S. 3. 關於Ridge和LASSO的表述有些錯誤,已經修正。感謝三笠 阿克曼指出!


謝邀。已有的答案已經舉出例子了。

更本質的原因在於,向量的 1 範數和 2 範數之間沒有單調關係,所以完全有可能出現誤差向量的 1 範數增大而 2 範數減小(或反之)的現象。


RMSE比MAE對大誤差,尤其是極值非常敏感。出現你說的情況的原因是,雖然整體上誤差絕對值在不斷減小,但誤差的分布發生了變化,兩個尾部更厚了一點。

你說的反相關是負相關吧,這兩個一般是正相關的,但是顯然能從散點圖裡面挑出來一小部分點,使得他們跟整體的規律相反。但是我覺得這不是負相關。

建議你再檢查一下迭代演算法,可能主要的問題不在RMSE和MAE這裡。

統計和機器學習我都不懂,經驗之談。


手機作圖,簡單易懂。

來,看一個例子,我也訓練兩條樣本,圖中的橫縱坐標代表兩條樣本的誤差,那麼L1的等誤差線是那兩條直線,L2的等誤差線是那個圓弧。

從A到D,L1上升,L2下降。

從B到C,L1下降,L2上升。

變成n個樣本也是一樣。只是圖變成高維空間了。


推薦閱讀:

如何用互聯網大數據的思維 解決服裝定製行業做不大的難題?
如何才能擊敗AlphaGo?
如何評價索尼用人工智慧創作單曲這件事?

TAG:人工智慧 | 機器學習 | 推薦系統 | 神經網路 | 深度學習DeepLearning |