log_softmax 比 softmax 有什么优势?

人工智能 目标函数 激活函数
2021-10-26 00:43:25

之前了解到softmax作为输出层加上log-likelihood cost function(和nll_losspytorch中的一样)可以解决学习减速问题

但是,当我学习 pytorch mnist 教程时,我很困惑为什么使用log_softmax作为输出层和nll_loss(负对数似然损失)作为损失函数的组合(L26L34)。

我发现使用log_softmax+nll_loss时,测试准确率为99%,而使用softmax+nll_loss时,测试准确率为97%。

我很困惑log_softmaxover有什么好处softmax我们如何解释它们之间的性能差距?log_softmax+nll_loss总是比softmax+nll_loss好吗

1个回答

简短的回答是肯定的,log_softmax + nll_loss 会更好。

我不知道 PyTorch 引擎盖下的实现细节,但请参阅文档中的以下屏幕截图:

图像