如何防止softmax函数overflow和underflow?

  • 上溢出:c极其大的时候,计算 e c e^c ec
  • 下溢出:当c趋于负无穷的时候,分母是一个极小的数,导致下溢出
    请添加图片描述
  • 解决方法
    M = max ⁡ x i , i = 1 , 2 , ⋯   , n M=\max{x_i}, i=1,2,\cdots,n M=maxxi,i=1,2,,n, 也就是所有 x i x_i xi中的最大值,只要将 f ( x ) i f(x)_i f(x)i的值改为 f ( x ) i − M f(x)i-M f(x)iM即可解决上溢和下溢的问题,并且,计算结果在理论上仍然和 f ( x ) i f(x)_i f(x)i保持一致.

在很多数值计算的库中,都采用了此类方法保持数值稳定.

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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值