该函数将输出向量转化为概率分布,作用和softmax一致。
相比softmax,对较小的概率分布处理能力更好。
一、定义
softmax 计算公式:
log_softmax 计算公式:
可见仅仅是将 softmax 最外层套上 log 函数。
二、使用场景
log_softmax 相比 softmax,对较小的概率分布处理能力更好。
例如向量 ,使用softmax处理后,得到的概率分布如下:
使用 log_softmax 之后得到的概率分布如下:
可见使用 softmax ,第一个数直接变0,当经过一次迭代 之后,使用 softmax 得到的概率分布第一个元素仍为0,因此求得梯度为0,这个数据就不能用于更新参数,而使用 log_softmax 可解决此问题。
因此,log_softmax与softmax的区别在于输出的形式不同,softmax输出的是概率分布,而log_softmax输出的是对数概率分布。
在实际应用中,log_softmax通常用于计算损失函数,而softmax则用于预测[1]。
参考资料:
[1] log_softmax与softmax的区别_编程设计_ITGUEST