softmax和softamxLoss求导公式推导

本文详细介绍了Softmax函数及其损失函数Softmax Loss的定义,并通过数学推导展示了它们的导数计算过程,重点讨论了利用链式法则进行求导的方法,对于理解神经网络中的分类问题具有重要意义。
摘要由CSDN通过智能技术生成

Softmax

定义

f(xi)=exijexj f ( x i ) = e x i ∑ j e x j

求导

df(xk)dxi=exijexj+exi1(jexj)2exi=f(xi)f(xi)2=f(xi)(1f(xi))  if k=i d f ( x k ) d x i = e x i ∑ j e x j + e x i − 1 ( ∑ j e x j ) 2 e x i = f ( x i ) − f ( x i ) 2 = f ( x i ) ( 1 − f ( x i ) )     i f   k = i

df(xk)dxi=??  if k !=i d f ( x k ) d x i = ? ?     i f   k   ! = i

Softmaxloss

定义

L(xi)=kyklogfk(xi) L ( x i ) = − ∑ k y k l o g f k ( x i ) 其中 y=(y0,y1,...,yn) y = ( y 0 , y 1 , . . . , y n ) , yi{0,1} y i ∈ { 0 , 1 } xi x i 类别描述, 比如常见的one hot encoding中,对一个样本 xi x i , y y 只有一个元素值为1,其他都是0,所以假设xi标签中只有 yi=1 y i = 1 ,则求和号可以去掉有

L(xi)=logfi(xi)=logexijexj=xi+logjexj L ( x i ) = − l o g f i ( x i ) = − l o g e x i ∑ j e x j = − x i + l o g ∑ j e x j

求导1

直接利用展开式 L(xi)=xi+logjexj L ( x i ) = − x i + l o g ∑ j e x j

dLdxi=1+exijexj=f(xi)1 d L d x i = − 1 + e x i ∑ j e x j = f ( x i ) − 1

求导2

从原始公式 L(xi)=logfi(xi) L ( x i ) = − l o g f i ( x i )

dLdxi=dLdfidfidxi=1fi(xi)f(xi)(1f(xi))=f(xi)1 d L d x i = d L d f i d f i d x i = − 1 f i ( x i ) f ( x i ) ( 1 − f ( x i ) ) = f ( x i ) − 1

PS: fi() f i ( ) 的下标似乎应该去掉???

重点

链式法则是和复合函数求导关联, f(g(x)) f ( g ( x ) ) 是复合函数, f(x)g(x) f ( x ) g ( x ) 不是符合函数

df(g(x))x=dfdgdgdx d f ( g ( x ) ) x = d f d g d g d x

d(f(x)g(x))dx=df(x)dxg(x)+dg(x)dxf(x) d ( f ( x ) g ( x ) ) d x = d f ( x ) d x g ( x ) + d g ( x ) d x f ( x )

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值