天天看點

為什麼損失函數多用交叉熵entropy來計算

鄙人的新書《Elasticsearch權威指南》正式出版發行,歡迎購買!本書由華為、中興進階技術專家全面審讀并撰序,助您挑戰百萬年薪 購書連結:

為什麼損失函數多用交叉熵entropy來計算

《Elasticsearch權威指南》

視訊教學位址:https://edu.csdn.net/course/detail/8574

技術交流qq群: 659201069

我們知道對于回歸問題一般采用均方差來計算損失,這是因為回歸輸出的是一個實數,這樣來計算一個batch中預測值與實際的均方差是自然而然的選擇的,而且導數非常簡單(神經網絡參數的更新依據就是梯度也就是偏導),這裡不再推導均方差的偏導。

  但對于分類問題,輸出的是一個n維的向量,向量的每個值是對應分類的機率,機率最大的就是預測的分類結果。樣本的标簽值也是一個機率分布,表情衡量兩個機率分布之間的距離當然就是交叉熵,但是神經網絡的輸出又不完全符合機率分布(機率分布的基本要素:所有事件機率和為1),這樣就引出的sotfmax函數,它的作用就是把輸出轉換成機率分布,以用來計算交叉熵損。之是以選用交叉熵還有一個重要的原因就是梯度計算簡單(偏導數非常簡潔,神經網絡的訓練是計算密集型,這樣可以提高訓練效率)。

  z_為原始的神經網絡輸出,經過sotfmax轉化為機率分布y_

為什麼損失函數多用交叉熵entropy來計算

  損失函數交叉熵的計算公式:

  

為什麼損失函數多用交叉熵entropy來計算

  梯度的推導過程如下:

  

為什麼損失函數多用交叉熵entropy來計算

看到最後的結果不是一般的簡單,而是非常簡單,梯度就是預測值與标簽的差。是以輸出是機率分布或者可以轉化為機率分布的神經網絡用交叉熵是非常合适的。

繼續閱讀