神经网络 Log-Sum-Exp

在神经网络计算中,Log-Sum-Exp操作常用于softmax和log likelihood计算,但面临下溢和上溢问题。通过将指数的中心值平移到最大值,可以避免溢出并确保合理结果。文章探讨了这一技巧及其应用。
摘要由CSDN通过智能技术生成

参考:https://blog.csdn.net/zziahgf/article/details/78489562

pytorch:

def log_sum_exp(x):
    """Utility function for computing log_sum_exp while determining
    This will be used to determine unaveraged confidence loss across
    all examples in a batch.
    Args:
        x (Variable(tensor)): conf_preds from conf layers
    """
    x_max = x.data.max()
    return torch.log(torch.sum(torch.exp(x-x_max), 1, keepdim=True)) + x_max

假设 NN 个 值的数据集 {xn}Nn=1{xn}n=1N,需要计算的值为:

z=log∑Nn=1exp{xn}z=log∑n=1Nexp{xn}

当采用 softmax 对 multinomial 分布进行参数化时,比如,logistic 回归和有多于 2 个无序类别时,这种计算经常出现.

如果想要计算 log likehood,由于存在归一化常数,也会看到这种表达式.

直接进行计算,则是灾难性的,因为存在下溢(underflow) 和上溢(overflow), 取决于 xnxn 的尺度(sc

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

AI算法网奇

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值