crossentropyloss
本文主要对于交叉熵的手动计算和pytorch中的crosse
本文主要对于交叉熵的手动计算和PyTorch中的CrossEntropyLoss模块计算结果不一致的问题展开讨论,查阅了PyTorch的官方文档,最终发现是CrossEntropyLoss在计算交叉熵之前会对输入的概率分布进行一次SoftMax操作导致的。 在强化学习中,策略学习常用到一个损失函数为l=−lnπθ(a∣s)⋅gl=-\ln\pi_\theta(a|s)\cdot gl=−lnπθ(a∣s)⋅g,其中πθ\pi_\thetaπθ在状态sss下是关于动作的一个概率分布,而动作aaa是经验中记录的,在状态sss下选择的确定动作。因此有: 因此,该损失函数便被转换为了计算两个概率分布之间交叉熵的计算形式