欢迎访问 生活随笔!

生活随笔

当前位置: 首页 > 编程资源 > 编程问答 >内容正文

编程问答

softmax代价函数的导数计算

发布时间:2025/3/15 编程问答 37 豆豆
生活随笔 收集整理的这篇文章主要介绍了 softmax代价函数的导数计算 小编觉得挺不错的,现在分享给大家,帮大家做个参考.

对于softmax的理解请参考Ufldl教程,本文仅对代价函数求导部分进行推导


softmax regression 代价函数:

J(θ)=1mi=1mj=1k1{y(i)=j}logeθTjx(i)kl=1eθTjx(i)
导数计算:
首先利用 logab=log(a)log(b)将log函数内部展开:
1{yi=j}logeθTjxikl=1eθTlxi=1{yi=j}[log(eθTjxi)log(l=1keθTlxi)]
接着对 θj求导得:
1{yi=j}[xieθTjxikl=1eθTlxixi]=xi(1{yi=j}eθTjxikl=1eθTlxi)=xi(1{yi=j}p(yi=j|xi,θ)
上式中,将 log看成 ln,另外,每一次的求导其实只是针对 θ中的某一项 j,所以其他的θ的非 j项都为常数,所以求导以后都为0
这样就得到了梯度函数:
Jθj=1ni=1n[xi(1{yi=j}p(yi=j|xi,θ)]

原文出处:http://zjjconan.github.io/articles/2015/04/Softmax-Regression-Matlab/

总结

以上是生活随笔为你收集整理的softmax代价函数的导数计算的全部内容,希望文章能够帮你解决所遇到的问题。

如果觉得生活随笔网站内容还不错,欢迎将生活随笔推荐给好友。