邏輯迴歸損失函式(cost function)

夜空中最亮的不咚發表於2018-04-10

轉載:https://www.cnblogs.com/richqian/p/4511557.html

邏輯迴歸模型預估的是樣本屬於某個分類的概率,其損失函式(Cost Function)可以像線型迴歸那樣,以均方差來表示;也可以用對數、概率等方法。損失函式本質上是衡量”模型預估值“到“實際值”的距離,選取好的“距離”單位,可以讓模型更加準確。

1. 均方差距離

Jsqrt(w)=∑i=1myi(1−p(xi;w))2+(1−yi)(0−p(xi;w))2(1)
Jsqrt(w)=∑i=1myi(1−p(xi;w))2+(1−yi)(0−p(xi;w))2(1)

用均方差作為損失函式,當模型完全預估錯誤時(y=1, p=0; 或y=0, p=1),損失是1。預估正確時,損失是0。錯誤值離正確值的“距離”相對較小,區分度不大。

另外,上面的損失函式相對θθ並非是凸函式,而是有很多極小值(local minimum)的函式。因此,很多凸優化的演算法(如梯度下降)無法收斂到全域性最優點。

2. log距離

均方差作為LR模型的距離衡量標準,最“預估錯誤”的懲罰太過柔和。因此,最後訓練出來的模型會出現較多的“極端”預估錯誤情況。另外,均方差損失函式的非凸性也限制了其使用價值。

log距離作為損失函式的公式如下:

Jlog(w)=∑i=1m−yiLog(p(xi;w))−(1−yi)Log(1−p(xi;w))(2)
Jlog(w)=∑i=1m−yiLog(p(xi;w))−(1−yi)Log(1−p(xi;w))(2)

式(2)與式(1)的區別如下圖所示:

3. 概率距離

LR模型預估的是概率,自然的,損失函式可以用聯合概率分佈來衡量。

Jstat(w)=−∏i=1m(p(xi;w))yi(1−p(xi;w))1−yi(3)
Jstat(w)=−∏i=1m(p(xi;w))yi(1−p(xi;w))1−yi(3)

比較式(2)和式(3)可知:

Jlog(w)=Log(Jstat(w))(4)
Jlog(w)=Log(Jstat(w))(4)

由於log函式為單調遞增函式,log距離和概率距離本質上是一樣的,訓練得到的結果也應該一致。



相關文章