softmax,CrossEntropyLoss 与梯度计算公式

本文详细介绍了softmax函数的定义及梯度,CrossEntropyLoss的定义,以及在多分类任务中使用softmax时的损失函数梯度计算。同时探讨了Distilling the Knowledge in a Neural Network论文中相关公式的推导。
摘要由CSDN通过智能技术生成

1. softmax ⁡ \operatorname {softmax} softmax 函数的定义

对于任意一个 n n n 维向量 X = ( ⋮ x i ⋮ ) X = \begin {pmatrix} \vdots \\ {x}_{i} \\ \vdots \end {pmatrix} X=xi ,定义

softmax ⁡ ( X ) = ( ⋮ e x i ∑ k e x k ⋮ ) \operatorname {softmax} (X) = \begin {pmatrix} \vdots \\ \dfrac {e ^ {x_i}} { \sum \limits _{k} {e ^ {x_k} } } \\ \vdots \end {pmatrix} softmax(X)=kexkexi

2. softmax ⁡ \operatorname {softmax} softmax 的梯度

n n n 维向量 Y ^ = ( ⋮ y ^ i ⋮ ) = softmax ⁡ ( X ) \widehat {Y} = \begin {pmatrix} \vdots \\ \hat {y}_{i} \\ \vdots \end {pmatrix} = \operatorname {softmax} (X) Y =y^i=softmax(X) ,则

∂ ∂ x j y ^ i = { e x j ∑ k e x k − e x j e x j ( ∑ k e x k ) 2 , i = j − e x i e x j ( ∑ k e x k ) 2 , i ≠ j = { y ^ j ( 1 − y ^ j ) , i = j − y ^ i y ^ j , i ≠ j \dfrac {\partial } {\partial {x_j}} {\hat {y}_{i} } = \begin {cases} \dfrac {e ^ {x_j} \sum \limits _{k} {e ^ {x_k} } - e ^ {x_j} e ^ {x_j} } { { \left ( \sum \limits _{k} {e ^ {x_k} } \right ) } ^2 }, &amp; i = j \\ \\ - \dfrac { e ^ {x_i} e ^ {x_j} } { { \left ( \sum \limits _{k} {e ^ {x_k} } \right ) } ^2 }, &amp; i \neq j \end {cases} = \begin {cases} \hat {y}_{j} \left ( 1 - \hat {y}_{j} \right ), &amp; i = j \\ - \hat {y}_{i} \hat {y}_{j} , &amp; i \neq j \end {cases} xjy^i=(kexk)2exj<

评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值
>