交叉熵损失函数分类_交叉熵损失函数
生活随笔
收集整理的這篇文章主要介紹了
交叉熵损失函数分类_交叉熵损失函数
小編覺得挺不錯的,現(xiàn)在分享給大家,幫大家做個參考.
我們先從邏輯回歸的角度推導(dǎo)一下交叉熵(cross entropy)損失函數(shù)。
從邏輯回歸到交叉熵?fù)p失函數(shù)
這部分參考自 cs229-note1 part2。
為了根據(jù)給定的
預(yù)測 (0或1),令假設(shè)函數(shù)為其中,
是sigmoid函數(shù),表達(dá)式為進(jìn)一步,我們假設(shè)有
我們可以看到在
中, 是模型參數(shù), 則是為了將最后的值限制在0、1之間,進(jìn)而將其作為概率。接下來,通過一個小技巧(-),將(1)式中的兩個概率寫到一起,即
我們可以看到,無論
的取值是0還是1,(2)式都與(1)等價。于是,得到似然函數(shù)得到對數(shù)似然函數(shù)
于是代價函數(shù) ,其中 為樣本的總數(shù)。為什么不直接一點(diǎn)
通過上面的推導(dǎo),我們得到了交叉熵?fù)p失函數(shù)的表達(dá)式
其中,
。本質(zhì)上,我們的目的是希望
盡可能接近 ,(3)式在 時取最小值,那么為什么我們不直接,直接取平方損失函數(shù)呢?假設(shè)在邏輯回歸中使用平方損失函數(shù),那么有
求導(dǎo)得
其中,
上面的推導(dǎo)中用到了sigmoid函數(shù)的性質(zhì):
。從(5)式中可以看出,當(dāng)
或 時, ;可以看出,當(dāng) 的值趨近于0或1時, 趨近于0,即導(dǎo)致了梯度消失。所以,平方損失函數(shù)在這里不適用。那交叉熵?fù)p失函數(shù)就可以避免這個問題嗎?我們求導(dǎo)試試看,
我們發(fā)現(xiàn),
和 剛好被消去,梯度消失的問題得到了避免。多分類中的交叉熵?fù)p失函數(shù)
在多分類中,我們不再使用sigmoid函數(shù),而是使用softmax函數(shù)生成一個概率分布。
相應(yīng)的交叉熵?fù)p失函數(shù)為
其中
當(dāng)
的時候,這便是唉pytorch文章中所描述的,交叉熵時logsoftmax和nllloss的結(jié)合。
總結(jié)
以上是生活随笔為你收集整理的交叉熵损失函数分类_交叉熵损失函数的全部內(nèi)容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: springboot脚本启动bat_Sp
- 下一篇: 删除机器人 异星工厂_10个视频,它们是