作业一:推导 Softmax 梯度

本文详细推导了在交叉熵损失函数下Softmax函数的梯度计算过程。通过数学公式展示了当输入索引等于输出类别时以及不等于输出类别时的梯度变化,并给出了最终的梯度表达式。

作业一:推导交叉熵 loss 下的 Softmax 梯度

Created: March 18, 2022 1:19 PM

L=−log⁡esk∑jesjL = - \log \frac{e^{s_k}}{\sum_j e^{s_j}}L=logjesjesk,求 ∂L∂esi\frac{\partial L}{\partial e^{s_i}}esiL

定义 pi=esi∑jesjp_i = \frac{e^{s_i}}{\sum_j e^{s_j}}pi=jesjesi

  • i=ki = ki=k:

    ∂L∂esi=−1pk∂pk∂sk=−1pkesk⋅∑jesj−esk⋅esk(∑jesj)2=−1pkesk∑jesj∑j≠kesj∑jesj=−1pkesk∑jesj(1−esk∑jesj)=−1pkpk(1−pk)=pk−1 \frac{\partial L}{\partial e^{s_i}} =- \frac{1}{p_k} \frac{\partial p_k}{\partial s_k} \\ =- \frac{1}{p_k} \frac{e^{s_k} \cdot \sum_j e^{s_j} - e^{s_k} \cdot e^{s_k}}{(\sum_j e^{s_j})^2} \\ =- \frac{1}{p_k} \frac{e^{s_k}}{\sum_j e^{s_j}} \frac{\sum_{j \neq k}e^{s_j}}{\sum_j e^{s_j}} \\ =- \frac{1}{p_k} \frac{e^{s_k}}{\sum_j e^{s_j}}(1-\frac{e^{s_k}}{\sum_j e^{s_j}}) \\ =- \frac{1}{p_k} p_k (1-p_k) \\ = p_k - 1 esiL=pk1skpk=pk1(jesj)2eskjesjeskesk=pk1jesjeskjesjj=kesj=pk1jesjesk(1jesjesk)=pk1pk(1pk)=pk1

  • i≠ki \neq ki=k
    ∂L∂esi=−1pi∂pi∂si=−1pk−eskesi(∑jesj)2=1pkesk∑jesjesi∑jesj=1pk⋅pk⋅pi=pi \frac{\partial L}{\partial e^{s_i}} =- \frac{1}{p_i} \frac{\partial p_i}{\partial s_i} \\=- \frac{1}{p_k} \frac{-e^{s_k} e^{s_i}}{(\sum_j e^{s_j})^2} \\=\frac{1}{p_k} \frac{e^{s_k}}{\sum_j e^{s_j}} \frac{e^{s_i}}{\sum_j e^{s_j}} \\=\frac{1}{p_k} \cdot p_k \cdot p_i \\= p_i esiL=pi1sipi=pk1(jesj)2eskesi=pk1jesjeskjesjesi=pk1pkpi=pi

  • 总结
    ∂L∂esi={pk−1,i=kpi,i≠k \frac{\partial L}{\partial e^{s_i}} =\begin{cases}p_k - 1 , \quad i = k \\p_i , \quad i \neq k\end{cases} esiL={pk1,i=kpi,i=k

评论 1
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
红包 添加红包
表情包 插入表情
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值