作者:Matrix.小澤直樹
最近在看李沐的實用機器學習課程,講到regression問題的loss的時候有彈幕問:“為什麼要平方?”
如果是幾年前學生問我這個問題,我會回答:“因為做回歸的時候的我們的殘差有正有負,取個平方求和以後可以很簡單的衡量模型的好壞。同時因為平方後容易求導數,比取絕對值還要分情況讨論好用。”
但是經過了幾年的科研以後,我覺得這樣的回答太過于經驗性了,一定會有什麼更有道理的解釋,于是在知乎上搜了搜。
《CC思SS:回歸模型中的代價函數應該用MSE還是MAE[1]》 這篇文章中提到MSE對于偏差比較大的資料懲罰得比較多,但是會被outlier影響,同時MSE的優化目标是平均值,而MAE的優化目标是中位數。即如果我們的資料集足夠大,對于同一個x會有多個y,MSE的目标是盡可能讓我們的預測值接近這些y的平均值。同時這篇文章還提到在做gradient descent的時候,MSE的梯度可以在越接近最小值的地方越平緩,這樣不容易步子扯大了。而MAE的梯度一直不變,得手動調整learning rate。
《在回歸問題中,為何對MSE損失的最小化等效于最大似然估計?[2]》而這個問題裡有人提到“根據中心極限定理,誤差服從正态分布,此時使得樣本似然函數最大等價于使得MSE最小。” 這段話引起了我的興趣,在查閱了一些英文資料以後發現這是來自于花書的結論(Ian的《Deep Learning》)。
以下解釋來源于花書(5.5)和[這篇部落格][3]
要弄懂為什麼回歸問題要用MSE,首先要先明白什麼是極大似然估計MLE(Maximum Likelihood Estimation)。
極大似然估計MLE
用一個一維的資料來講解MLE的過程,假設我們有一組資料,我們假設它服從正态分布,我們的目的是:找到一組正态分布的均值和方差,使得在這套正态分布的均值方差下,我們觀測到這批資料的機率最大。

手上的資料
關于這組資料,我們先胡亂地猜測一下它符合的正态分布如下:
胡亂猜測的正态分布
對于這個正态分布,我們可以計算每個點出現的機率: 。其中 和 是這個正态分布的均值和方差, 是第 條資料,我們把每條資料出現的機率相乘,得到了“在這套正态分布的均值方差下,我們觀測到這批資料的機率”。
同樣的,我們可以猜測另一種正态分布:
另一種猜測的正态分布
同樣的,我們可以計算“在這套正态分布的均值方差下,我們觀測到這批資料的機率”。
最後,我們在這群待選的均值和方差中,選出那個能使我們觀測到這批資料的機率最大的均值和方差。也就是我們在做
回歸問題
現在我們再看回歸問題,對于回歸問題來說,我們的目标不是去找一個x的正态分布了。對于一個回歸問題,我們以最簡單的線性回歸舉例。對于一個回歸問題,我們的目标是 ,其中 和 是模型的參數,而 是噪聲,我們假設噪聲符合正态分布 。
那麼我們的 其實也可以看成符合正态分布(并不是嚴謹的寫法) ,其中 其實就是模型的預測值,也就是說 。
正态分布的probability density function是 ,帶入得到。
那麼也就是說,如果我們想最大化我們觀測到的 的情況的話,我們應該最大化上面這個pdf的連乘結果。注意到這個值由一個常數乘上一個 的次方項,優化的時候常數項可以忽略。
于是我們的目标變成了 ,這裡出現了連乘,又出現了 的次方項,很正常的想到取log,于是變成了
402 Payment Required
,忽略常數項,稍微整理一下得到
402 Payment Required
。
于是我們就證明了,我們在做線性回歸的時候,我們如果假設我們的噪聲符合高斯分布,那麼我們的目标函數就是MSE。
總結
很多時候,一些基礎知識可能會影響你對一個模型結果表現的了解,如果對這種基礎知識沒有概念的話,深度學習就變成了瞎調模型瞎調參數了。[另一篇部落格][4]就提到了,在做super resolution的時候,如果用MSE,做出來的圖檔會非常的模糊,就是因為MSE是基于高斯分布假設,最後的結果會盡可能地靠近高斯分布最高的地方,使得結果不會太sharp。以後還是得适時提高深度學習的理論基礎。
參考資料
REFERENCE
[1] CC思SS:回歸模型中的代價函數應該用MSE還是MAE
https://zhuanlan.zhihu.com/p/45790146
[2] 在回歸問題中,為何對MSE損失的最小化等效于最大似然估計?
https://www.zhihu.com/question/426901520