回覆列表
  • 1 # 小鴿子看世界

    由於不允許問題中出現過多的字元,我只好使用截圖。請仔細檢視下面的截圖,瞭解問題詳情。

    人們用邏輯迴歸進行二元分類的時候,會經常把交叉熵函式用作損失函式。具體來說,假設有T個訓練樣本,其中

    會使用如下損失函式:

    ,其中sigm表示sigmoid函式。

    但是進行線性迴歸的時候,卻經常使用平方誤差作為損失函式。在邏輯迴歸中使用熵函式而不用平方誤差或邏輯迴歸中的分類誤差,其中有什麼具體原因嗎?我在某本書中看到,如果用平方誤差二元分類的話,所得到的損失函式將是非凸的。這是使用熵函式的唯一原因嗎?還是有其他我沒有注意到的更深層次的原因?

    為了瞭解損失函式之間的差異,我在y = x線的兩側隨機生成了50個數據點,給y = x線其中一側的資料點賦值c = 1,給另外一側的資料點賦值c = 0。生成資料後,使用以下損失函式計算透過原點的

    不同直線的成本:

    1. 使用預測標籤和實際標籤的平方誤差函式。

    2. 使用連續分數而不是閾值為0的平方誤差函式。

    3. 使用連續分數

    的平方誤差函式。

    4. 分類錯誤,即錯誤分類點的個數。

    5. 交叉熵損失函式。

    我只考慮了透過原點的線,例如

    以便繪製損失函式圖,一共得到了以下四張函式圖。

    從上面的圖中可以推斷出:

    1. 函式(1)對應的圖是不平滑、不連續、非凸的。這可以理解,因為成本可以對任意

    只取有限的值。

    2. 函式(2)對應的圖是平滑的、凸的。

    3. 函式(3)對應的圖是平滑的、非凸的。

    4. 函式(4)對應的圖是不平滑、非凸的,類似於(1)。

    5. 函式(5)對應的圖是平滑的、凸的,類似於(2)。

    如果我的推理沒錯的話,為了最小化損失函式,(2)和(5)對應的損失函式的功能是相同的,因為它們都是平滑的凸函式。使用(5)而不用(2),其中有沒有什麼原因? 此外,除了平滑性或凸性之外,是否還有其他使用交叉熵損失函式而不使用平方誤差的原因?

    可以在二進位制分類中分析交叉熵和平方誤差損失函式。如果你仔細看的話,會發現交叉熵函式是分段的。

    l(w)=−log(sgm(wTx))l(w)=−log(sgm(wTx))

    如果 yt=1yt=1,

    l(w)=−log(1−sgm(wTx))l(w)=−log(1−sgm(wTx))

    如果ytyt=0=0

    輸出為z=sgm(wTx)z=sgm(wTx) 時,誤差需要接近零,但該輸出是接近期望輸出的。在二進位制分類中,期望值通常是一個低值(0或-1)和一個高值(1)。

    zz接近1且所需輸出為0時,誤差會很大,計算如下:

    l(w)=−log(1−z)l(w)=−log(1−z)

    另一方面,如果zz接近零,損失則會很小:

    l(w)≈−log(1)=0l(w)≈−log(1)=0

    如果所需輸出為1,也同樣適用。

    因此,交叉熵將迫使分割平面在保持“1組”在正側上的點、同時保持“0組”在負側上的點之間延伸。離這條線很遠的離群值將具有較強的、將被Sigmoid捨棄的絕對wTxwTx值。sigmoid函式將以這種方式消除對強離群值的敏感性,使得交叉熵對離群值不敏感。

    現在再來看平方誤差。

    yt=[−1,1]yt=[−1,1]的時候,

    e=(1−ytz)2e=(1−ytz)2

    該函式是凸的、光滑的,但會收斂得很慢。尤其是zz是有界的,這一點可以在實踐中得到很好的應用。

    如果省略sigmoid sgmsgm函式的話,問題就沒那麼簡單了。

    yt=[−1,1]yt=[−1,1]的時候,

    e=(1−ytwTx)2e=(1−ytwTx)2

    不管是什麼符號,平方誤差都會懲罰非常大的無界wTxwTx值。 因此在這種情況下,平方誤差可能會對離群值過於敏感,這一點跟交叉熵函式不同。

    所以答案是可以在二進位制分類中使用平方誤差,只是跟交叉熵損失函式相比,平方誤差的效果沒那麼理想。

  • 2 # 你看我獨角獸嗎

    MSE:

    一般而言,廣義線性模型經常使用MSE(均方差),即下圖所示。

    在使用梯度下降法時會進行反向求導,梯度更新公式如下:

    由於sigmoid function的性質,兩端較為平坦,會導致在求導時大部分取值很小,所以w和b的更新步伐會很小。

    交叉熵函式:

    為了克服這個缺點,此時就需要引入交叉熵代價函式,從上圖可以看出,導數中沒有σ′(z)這一項,權重的更新是受σ(z)−y這一項影響,即受誤差的影響。所以當誤差大的時候,權重更新就快,當誤差小的時候,權重的更新就慢,這是一個很好的性質。而且交叉熵有兩個與均方差相同的性質——非負性和代價函式最優時接近於0,所以LR用交叉熵做代價函式會比普通的MSE要好。

  • 中秋節和大豐收的關聯?
  • 昭蘇為何被稱為中國天馬之鄉?