softmax回归加交叉熵损失函数求导

对类别进行一位有效编码
y = [ y 1 , y 2 , . . . , y n ] T \mathbf y=[y1,y2,...,y_n]^T y=[y1,y2,...,yn]T
y i = { 1 if i = y o otherwise y_i=\begin{cases} 1 &\text{if i = y}\\ o&\text{otherwise} \end{cases} yi={1oif i = yotherwise

在这里插入图片描述
预测出来的 o \mathbf o o经过softmax层得到
y ^ = s o f t m a x ( o ) \mathbf {\hat y} = softmax(\mathbf {o}) y^=softmax(o)
y i ^ = e o i ∑ k e o k \hat{y_i} = \frac{e^{o_i}}{\sum_ke^{o_k}} yi^=keokeoi
损失函数:
l ( y , y ^ ) = − ∑ i y ^ i ln ⁡ y ^ i = − ln ⁡ y ^ y l(\mathbf y, \hat{\mathbf y}) = - \displaystyle\sum_i\hat y_i\ln\hat y_i=-\ln\hat y_y l(y,y^)=iy^ilny^i=lny^y
其梯度与真实概率和预测概率的区别
∂ o i l ( y , y ^ ) = s o f t m a x ( o ) i − y i \partial_{o_i}l(\mathbf y, \hat{\mathbf y})=softmax(o)_i-y_i oil(y,y^)=softmax(o)iyi
这个式子就是求偏导后推出来的
也就是对 − ln ⁡ y ^ y -\ln {\hat y_y} lny^y进行求偏导
我假设i不等于y
∂ ( − ln ⁡ y ^ y ) = − 1 y ^ y ∂ o i y ^ y \partial(-\ln {\hat y_y})=-\frac{1}{\hat y_y}\partial_{o_i} \hat y_y (lny^y)=y^y1oiy^y
其中
− 1 y ^ y = − ∑ k e o k e o y -\frac{1}{\hat y_y}=-\frac{\sum_ke^{o_k}}{e^{o_y}} y^y1=eoykeok (a)
∂ o i y ^ y = ∂ o i e o y ∑ k e o k = − e o y e o i ( ∑ k e o k ) 2 \partial_{o_i} \hat y_y=\partial_{o_i} \frac{e^{o_y}}{\sum_ke^{o_k}}=-\frac{e^{o_y}e^{o_i}}{(\sum_ke^{o_k})^2} oiy^y=oikeokeoy=(keok)2eoyeoi
上面两个式子结合就是
∂ ( − ln ⁡ y ^ y ) = − ∑ k e o k e o y × − e o y e o i ( ∑ k e o k ) 2 = e o i ∑ k e o k ) = s o f t m a x ( o i ) \partial(-\ln {\hat y_y})=-\frac{\sum_ke^{o_k}}{e^{o_y}}\times -\frac{e^{o_y}e^{o_i}}{(\sum_ke^{o_k})^2}=\frac{e^{o_i}}{\sum_ke^{o_k})}=softmax(o_i) (lny^y)=eoykeok×(keok)2eoyeoi=keok)eoi=softmax(oi)
如果i = y的话就是
∂ ( − ln ⁡ y ^ y ) = s o f t m a x ( o i ) − y i \partial(-\ln {\hat y_y})=softmax(o_i)-y_i (lny^y)=softmax(oi)yi
其梯度是真实概率和预测概率的区别。这个式子可以这么形容。当然也可以联想到一定的逻辑关系。因为我们最终的目的是让预测的概率和真实的概率一样的。比如当 y i = 0 y_i=0 yi=0时,我们希望 s o f t m a x ( o ) i 也 = 0 softmax(o)_i也=0 softmax(o)i=0

这也是为什么我们用softmax()作为我们回归函数的原因吧

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值