AI 面試高頻問(wèn)題: 為什么二分類(lèi)不用 MSE 損失函數(shù)?
?由于微信改了推送規(guī)則,請(qǐng)加星標(biāo),多點(diǎn)贊和在看,以便第一時(shí)間收到推送。?
?機(jī)器學(xué)習(xí)與數(shù)學(xué)

對(duì)于二分類(lèi)問(wèn)題,損失函數(shù)不采用均方誤差(Mean Squared Error,MSE)至少可以從兩個(gè)角度來(lái)分析。
1從數(shù)據(jù)分布角度
首先,使用 MSE 意味著假設(shè)數(shù)據(jù)采樣誤差是遵循正態(tài)分布的。用貝葉斯門(mén)派的觀點(diǎn)來(lái)看,意味著作了高斯先驗(yàn)的假設(shè)。實(shí)際上,可以分為兩類(lèi)(即二分類(lèi))的數(shù)據(jù)集是遵循伯努利分布。
如果假設(shè)誤差遵循正態(tài)分布,并使用最大似然估計(jì)(Maximum Likelihood Estimation,MLE),我們將得出 MSE 正是用于優(yōu)化模型的損失函數(shù)。
首先,正態(tài)/高斯分布

訓(xùn)練數(shù)據(jù)
我們可以這樣來(lái)看,實(shí)際觀測(cè)值
因此,每個(gè)觀測(cè)值
假設(shè)數(shù)據(jù)是獨(dú)立同分布的,因此使用最大似然估計(jì)時(shí),只要最大化所有觀測(cè)值誤差正態(tài)分布的乘積。即似然函數(shù)為,
為了簡(jiǎn)化公式,可以采用似然函數(shù)的自然對(duì)數(shù),
上式倒數(shù)第二行的第一項(xiàng)是獨(dú)立于
由于方差
最后,我們可以通過(guò)
以上是通過(guò) MLE 得到 MSE 的推導(dǎo)過(guò)程。這是想說(shuō)明,使用 MSE 損失函數(shù)的背景假設(shè)是數(shù)據(jù)誤差遵循高斯分布。實(shí)際上,二分類(lèi)問(wèn)題并不符合這個(gè)假設(shè)。
2從優(yōu)化角度
其次,MSE 函數(shù)對(duì)于二分類(lèi)問(wèn)題來(lái)說(shuō)是非凸的。簡(jiǎn)而言之,如果使用 MSE 損失函數(shù)訓(xùn)練二分類(lèi)模型,則不能保證將損失函數(shù)最小化。這是因?yàn)?MSE 函數(shù)期望實(shí)數(shù)輸入在范圍
當(dāng)將一個(gè)無(wú)界的值傳遞給 MSE 函數(shù)時(shí),在目標(biāo)值

看上面右邊的圖,函數(shù)的一側(cè)是凹的,而另一側(cè)是凸的,沒(méi)有明確的最小值點(diǎn)。因此,如果在初始化二分類(lèi)神經(jīng)網(wǎng)絡(luò)權(quán)重時(shí),權(quán)值萬(wàn)一設(shè)置得很大,使其落在 MSE 凹的那一側(cè)(如下圖紅色標(biāo)記的點(diǎn)),由于梯度幾乎為

為什么是這樣呢?讓我們把 Sigmoid 函數(shù)代進(jìn)去看看,
此時(shí)求導(dǎo)會(huì)多一個(gè)因子,就是

說(shuō)句題外話(huà),當(dāng)我們進(jìn)行線性回歸(即通過(guò)直線擬合數(shù)據(jù))時(shí),選用 MSE 作為損失函數(shù)是一個(gè)不錯(cuò)的選擇。在沒(méi)有關(guān)于數(shù)據(jù)的分布知識(shí)的情況下,假設(shè)高斯分布通常是可行的。

3有更好選擇
假如沒(méi)有更好的選擇,那么在權(quán)重初始化方面做做工作,MSE 也能湊合著用。但實(shí)際上,確實(shí)存在更好的選擇,那就是交叉熵。戳這里可以溫習(xí)一下本號(hào)關(guān)于交叉熵的圖解介紹。至于為什么交叉熵在這個(gè)問(wèn)題上好使,且聽(tīng)下回分解。
?參考資料?
正態(tài)分布: https://en.wikipedia.org/wiki/Normal_distribution
[2]Sigmoid: https://en.wikipedia.org/wiki/Sigmoid_function
[3]Rafay Khan: https://towardsdatascience.com/why-using-mean-squared-error-mse-cost-function-for-binary-classification-is-a-bad-idea-933089e90df7
