【Loss】深入理解損失函數logloss

思考:當我們習慣性的使用封裝好的深度學習框架時,是否想過探尋他們調用函數背後的意義,也就是他的實現邏輯?如果封裝不公開源碼,那你是否留意過調用函數時,輸入的參數?今天來看看,一個比較容易忽略的點:損失函數。不知道爲何,想到損失函數的時候,腦子裏出現了Sigmod函數的輸出,某個靈感一閃而過,缺沒有抓住。回去巴拉巴拉網絡結構,發現:論文中沒注意損失函數形式,網絡搭建時,也沒有特別留意損失函數的設置,粗心真的可怕..

loss(name='logloss', loss_type='logistic', inputs=[fc_out.name])

主要內容:

1.先來看幾個深度網絡的損失函數

2.爲什麼是這個損失函數,這個損失函數的優勢

3.對於0-1標籤的模型,這個損失函數怎麼理解,網絡的預測值代表什麼意義?跟標籤怎麼對應?

幾個常見深度網絡的損失函數

PNN的損失函數:log loss,廣泛用於捕捉兩個概率分佈的差異(翻譯的優點彆扭)。

DCN的損失函數:

DIN的損失函數:

爲什麼是這個損失函數,這個損失函數的優勢

這幾個網絡的損失函數都爲logloss,y^是預測結果,可以看出是sigmod函數的輸出,映射到(0, 1)之間,表示爲ctr,預測爲正例的概率,聯想到邏輯迴歸,事件發生的概率爲p,對數機率函數:log(p/(1-p)),化簡得到wx+b,關於輸入的線性迴歸,也就是說,wx+b的值越大,概率值越接近於1,越小概率值越接近於0。那我們優化的目標就是:正例概率最大化。如果一個樣本看做一個事件的話,時間發生的概率P(\widehat{y}|x) = p^{y}*(1-p)^{1-y},讓這個概率最大,這是似然函數,用極大釋然估計方法估計模型參數。

其實這個問題中也包含的解答了第三個問題。

 

參考:

李航老師的統計機器學習p78-79.

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章