交叉熵与均方误差

均方代价函数及不足
  • 均方代价函数:

    L=12Nx||y(x)a2(x)||2 L = 1 2 N ∑ x | | y ( x ) − a 2 ( x ) | | 2

  • 预期:NN在训练时,如果预测值与实际值误差越大,那么反向传播过程中,各种参数的调整的幅度就要更大,从而使训练更快收敛, 然而如果使用均方误差函数,实际有可能误差越大,参数调整的幅度可能更小,训练更缓慢。

    Lw=(ay)σxLb=(ay)σ ∂ L ∂ w = ( a − y ) σ ‘ x ∂ L ∂ b = ( a − y ) σ ‘

    w w b的梯度跟激活函数的梯度成正比。与期望不符合,若y=0,实际输出为0.8、0.9时,sigmoid在0.9时梯度比0.8低

交叉熵代价函数
  • 交叉熵定义:

L=1Nx[ylna+(1y)ln(1a)]Lwj=1Nx(yσ(z)(1y)1σ(z))σwj=1Nx(yσ(z)(1y)1σ(z))σ(z)xj=1Nx(yσ(z)(1y)1σ(z))(σ(z)y)=1Nxxj(σ(z)y) L = − 1 N ∑ x [ y l n a + ( 1 − y ) l n ( 1 − a ) ] ∂ L ∂ w j = − 1 N ∑ x ( y σ ( z ) − ( 1 − y ) 1 − σ ( z ) ) ∂ σ ∂ w j = − 1 N ∑ x ( y σ ( z ) − ( 1 − y ) 1 − σ ( z ) ) σ ‘ ( z ) x j = − 1 N ∑ x ( y σ ( z ) − ( 1 − y ) 1 − σ ( z ) ) ( σ ( z ) − y ) = 1 N ∑ x x j ( σ ( z ) − y )

同理
Lb=1Nx(σ(z)y) ∂ L ∂ b = 1 N ∑ x ( σ ( z ) − y )

为什么会想到交叉熵?

在均方误差函数下:

Lb=(ay)σ(z) ∂ L ∂ b = ( a − y ) σ ′ ( z )

想找到:
Lb=ay ∂ L ∂ b = a − y

又有
Lb=Laazzb=Laσ(z) ∂ L ∂ b = ∂ L ∂ a ⋅ ∂ a ∂ z ⋅ ∂ z ∂ b = ∂ L ∂ a ⋅ σ ′ ( z )

即找
Laσ(z)=(ay) ∂ L ∂ a ⋅ σ ′ ( z ) = ( a − y )

对上式两边积分得
L=[ylna+(1y)ln(1a)]+C L = − [ y l n a + ( 1 − y ) l n ( 1 − a ) ] + C

积分公式
1(1a)da=11a+1ada ∫ 1 ( 1 − a ) d a = ∫ 1 1 − a + 1 a d a

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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值