【深度学习】回归问题和分类问题损失函数求导

1.回归问题

在这里插入图片描述
J = 1 2 N ∑ i = 1 N ∥ y i − y ^ ∥ 2 J = \frac{1}{2N}\sum_{i=1}^{N} \|y^i - \hat{y} \|^2 J=2N1i=1Nyiy^2
∂ J ∂ y i = 1 N ∑ i = 1 N ( y i − y ^ ) \frac{ \partial J}{\partial y^i} = \frac{1}{N}\sum_{i=1}^{N}{(y^i - \hat{y})} yiJ=N1i=1N(yiy^)

2.分类问题

在这里插入图片描述
先对y进行softmax:
S k = e y k ∑ i = 1 n e y i S_k = \frac{e^{y_{k}}}{\sum_{i=1}^{n}{e^{y_i}}} Sk=i=1neyieyk
以单个样本为例,网络输出的 S ^ ( s 1 , s 2 , . . . , s n ) \hat{S} (s_1,s_2,...,s_n) S^(s1,s2,...,sn)为一个概率分布,n是类别个数;该样本的实际标签一般one-hot形式, S ( 0 , 0 , . . . , 1 , 0 , 0 , . . 0 ) S (0,0,...,1,0,0,..0) S(0,0,...,1,0,0,..0)可以看做是(硬)概率分布。
可以考虑KL散度来计算损失。其实,直接根据交叉熵就可以写出损失函数:
这里只考虑单个样本,方便简化运算。
J = ∑ k = 1 n S l o g S ^ = − l o g ( s k ) = − l o g ( e y k ∑ i = 0 n − 1 e y i ) J = \sum_{k=1}^{n}{Slog\hat{S}} \\ = - log (s_k) =-log(\frac{e^{y_{k}}}{\sum_{i=0}^{n-1}{e^{y_i}}}) J=k=1nSlogS^=log(sk)=log(i=0n1eyieyk)
y k y_k yk求导:
∂ J ∂ y k = ∂ ∂ y k { l o g ( ∑ i = 0 n − 1 e y i ) − y k } = e y k ∑ i = 0 n − 1 e y i − 1 \frac{ \partial J}{\partial y_k} = \frac{\partial }{\partial y_k}\{{log (\sum_{i=0}^{n-1}e^{y_i}}) - y_k \} = \frac{e^{y_{k}}}{\sum_{i=0}^{n-1}{e^{y_i}}} - 1 ykJ=yk{log(i=0n1eyi)yk}=i=0n1eyieyk1
即可以写成 :
∂ J ∂ y k = s k − δ ( i = k ) , δ = 1 , 当 i = k 时 , δ = 0 , 当 i ! = k 时 \frac{ \partial J}{\partial y_k} = s_k - \delta(i=k) , \\ \delta =1,当i=k时,\delta=0, 当i!=k时 ykJ=skδ(i=k)δ=1,i=kδ=0,i!=k
最终写成向量的形式(单个样本形式):
∂ J ∂ y = S ^ − S \frac{ \partial J}{\partial y} = \hat{S}-S yJ=S^S

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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值