標籤:

平方誤差和絕對值損失的總體解

平方誤差和絕對值損失的總體解

來自專欄 雲山的機器學習備忘錄

僅作為自己學習筆記,其他讀者對本文中錯誤和疏漏謹慎對待。

中譯本《統計學習基礎-數據挖掘、推理與預測》P218頁提到「平方誤差損失的總體解 f(x) = E(Y|x) ,絕對值損失的解是 f(x) = median(Y|x) .」其中平方誤差損失為 L(y,f(x)) = (y-f(x))^2 ,絕對損失 L(y,f(x)) = |y-f(x)| .

這個結論看起來很簡潔,也很有道理,是一條基本的常識,但為什麼這樣ESL書里卻沒有提到。下面我試著說明一下。


首先回憶對於邏輯回歸來說我們知道有條件概率 (這裡寫法按照李航統計學習方法) P(y=1|x)=pi(x),P(y=0|x)=1-pi(x) 。在已知x的條件下,y的條件概率是一個0-1分布。所以我們有極大似然函數 Pi_{i=1}^N[pi(x_i)]^{y_i}[1-pi(x_i)]^{(1-y_i)} ,所以對數似然函數 egin{align} L(w) &=sum_{i=1}^N[y_ilogpi(x_i)+(1-y_i)log(1-pi(x_i))]\ end{align}. 極大化似然函數可以理解為最小化損失函數,所以引出來邏輯回歸的損失函數為 Loss=-sum_{i=1}^N[y_ilogpi(x_i)+(1-y_i)log(1-pi(x_i))]

推廣開來我們可以定義對數損失函數 L(Y,P(Y|x)) = -log(P(Y|x)) .

對於條件分布已知的情況,比如上面的邏輯回歸的條件分布為0-1分布,可以選用對數損失來定義損失函數。條件分布是正態分布或漸近正態分布時,可以用平方損失。在沒有更多信息的時候可以考慮用期望去代表預測值。


當條件分布為正態分布時,似然函數 prod_{i=1}^N f(Y=y_i|x) = prod_{i=1}^Nfrac{1}{(2pisigma^2)^{0.5}}exp(-frac{(y_i-E(y|x_i))^2}{2sigma^2}) ,由正態分布的性質易得, 當似然函數取得最大值時,y_i=E(y|x_i) ,觀察似然函數,我們發現此時的損失函數就是平方誤差損失。

在網上找到一份講義(文末已給出),從另外一個角度去理解,我們希望平方損失在給定x之後,對y的期望值能達到最小[1]。

egin{align} E_Y(L(y,f(x))) &=int(y-f(x))^2f(Y|x)dy\ &=E_Y[(y-f(x))^2|x]\ &=E(Y^2|x)-2f(x)E(Y|x)+f(x)^2 end{align}

其中對f(x)求導並令其為零

egin{align} frac{partial M}{partial f(x)}&=-2E(Y|x)+2f(x)=0\ &f(x)=E(Y|x) end{align}


絕對值損失的總體解,網上有一份很詳細的解釋,我就不抄了,鏈接在下面。

再補充一個Friedman2001年的Greedy function approximation:a grandient boosting machine里一個內容,求了加權的中位數。

Gradient boost演算法

參考文獻:

Condition Expectations and Regression Analysis?

www.le.ac.uk

Proof that the Median Minimizes the Mean Absolute Deviation?

web.uvic.ca


推薦閱讀:

全程中文!谷歌發布機器學習速成課,完全免費(附視聽評測)
OpenAI提出新型元學習方法EPG,調整損失函數實現新任務上的快速訓練
kaggle初體驗:泰坦尼克號生存預測
Fenchel-Lengendre Duality觀點下的優化演算法們(I):前言
Road To Data Science | 數據科學之路專欄索引目錄

TAG:機器學習 |