softmax代价函数的导数计算
生活随笔
收集整理的這篇文章主要介紹了
softmax代价函数的导数计算
小編覺得挺不錯的,現在分享給大家,幫大家做個參考.
對于softmax的理解請參考Ufldl教程,本文僅對代價函數求導部分進行推導
softmax regression 代價函數:
導數計算:
首先利用 logab=log(a)?log(b)將log函數內部展開:
1{yi=j}logeθTjxi∑kl=1eθTlxi=1{yi=j}[log(eθTjxi)?log(∑l=1keθTlxi)]
接著對 θj求導得:
1{yi=j}[xi?eθTjxi∑kl=1eθTlxixi]=xi(1{yi=j}?eθTjxi∑kl=1eθTlxi)=xi(1{yi=j}?p(yi=j|xi,θ)
上式中,將 log看成 ln,另外,每一次的求導其實只是針對 θ中的某一項 j,所以其他的θ的非 j項都為常數,所以求導以后都為0。
這樣就得到了梯度函數:
?J?θj=?1n∑i=1n[xi(1{yi=j}?p(yi=j|xi,θ)]
原文出處:http://zjjconan.github.io/articles/2015/04/Softmax-Regression-Matlab/
總結
以上是生活随笔為你收集整理的softmax代价函数的导数计算的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: ecs 对比 本地服务器_阿里云服务器双
- 下一篇: eclipse lombok 标红_无法