log_softmax能够解决函数overflow和underflow,加快运算速度,提高数据稳定性。
softmax:
exp(x_i) / exp(x).sum()
softmax在输入很大的时候,会产生向上溢出,超出float的表示范围。输入很小时,分子分母很小,可能四舍五入为0,导致向下溢出。
log_softmax:
log( exp(x_i) / exp(x).sum() )
实际操作上如下,M是x中的最大值

参考资料
log_softmax是softmax的一种优化形式,有效防止数值溢出问题。当输入数值过大或过小时,softmax可能导致溢出或下溢。log_softmax通过取指数运算的对数来消除这种风险,同时保持概率的归一化。在实际操作中,通过找到输入的最大值进行减法操作,可以进一步提高计算的稳定性和速度。
log_softmax能够解决函数overflow和underflow,加快运算速度,提高数据稳定性。
softmax:
exp(x_i) / exp(x).sum()
softmax在输入很大的时候,会产生向上溢出,超出float的表示范围。输入很小时,分子分母很小,可能四舍五入为0,导致向下溢出。
log_softmax:
log( exp(x_i) / exp(x).sum() )
实际操作上如下,M是x中的最大值

参考资料
4291
6499
13万+
1340
1663

被折叠的 条评论
为什么被折叠?