Softmax Cross Entropy 梯度推导

本文详细介绍了Softmax函数的梯度计算及其在交叉熵损失函数中的应用。通过数学推导得出,Softmax的梯度为- pj/pi (i≠j) 和 pi(1-pj) (i=j),交叉熵损失关于输入的梯度为pj - yj,这些结果对于理解深度学习中模型的训练至关重要。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

Softmax Cross Entropy 梯度推导

Softmax的梯度

Softmax定义:
p i = e a i ∑ k = 1 N e a k , i ∈ N p_i = \frac{e^{a_i}}{\sum_{k=1}^Ne^{a_k}}, \quad i\in N pi=k=1Neakeai,iN
数值稳定的Softmax:
e a i ∑ k = 1 N e a k = C e a i C ∑ k = 1 N e a k = e a i + log ⁡ C ∑ k = 1 N e a k + log ⁡ C , i ∈ N \frac{e^{a_i}}{\sum_{k=1}^Ne^{a_k}} = \frac{Ce^{a_i}}{C\sum_{k=1}^Ne^{a_k}} = \frac{e^{a_i + \log{C}}}{\sum_{k=1}^Ne^{a_k + \log{C}}}, \quad i \in N k=1Neakeai=Ck=1NeakCeai=k=1Neak+logCeai+logC,iN
其中 log ⁡ C = − max ⁡ ( a ) \log{C} = -\max{(\bm{a})} logC=max(a)

对于向量函数Softmax,第i个输出相对于第j个输入的偏导数可以定义如下:
∂ p i ∂ a j = ∂ e a i ∑ k = 1 N e a k ∂ a j \frac{\partial p_i}{\partial a_j} = \frac{\partial{\frac{e^{a_i}}{\sum_{k=1}^Ne^{a_k}}}}{\partial a_j} ajpi=ajk=1Neakeai
那么根据商的求导法则:
f ( x ) = g ( x ) h ( x ) , f ′ ( x ) = g ′ ( x ) h ( x ) − h ′ ( x ) g ( x ) ( h ( x ) ) 2 f(x) = \frac{g(x)}{h(x)}, \quad f'(x) = \frac{g'(x)h(x) - h'(x)g(x)}{(h(x))^2} f(x)=h(x)g(x),f(x)=(h(x))2g(x)h(x)h(x)g(x)
在这里, g i = e a i , h i = ∑ k = 1 N e a k g_i = e^{a_i},\quad h_i = \sum_{k=1}^Ne^{a_k} g

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值