[参考《TensorFlow实战Google深度学习框架(第2版)》]
作为分类问题中的损失函数
在神经网络的多分类问题中,常常使用one-hot的方法设置n类输出,比如在手写体识别问题中,如果是数字1,神经网络的输出越接近[0,1,0,0,0,0,0,0,0,0]越好。那么如何衡量神经网络与label的接近程度呢?交叉熵是常用的使用方法。其刻画的是两个概率分布之间的距离。
交叉熵是信息论中的概念。对于给定的两个概率分布p和q,交叉熵的计算公式是(PyTorch中对数以自然常数e为底):
H ( p , q ) = − ∑ i p i   l n   q i H(p,q)=-\sum_{i}p_i\,ln\, q_i H(p,q)=−i∑pilnqi
在神经网络中常常通过一个Softmax层将原始输出层变成一个概率分布(神经网络图如下:):
y o u t p u t = s o f t m a x ( y ) i = e y i ∑ j = 1 n e y j y_{output}=softmax(y)_i=\frac{e^{yi}}{\sum_{j=1}^{n}e^{yj}} youtput

本文介绍了交叉熵作为分类问题损失函数的用途,特别是在神经网络的多分类任务中。通过示例解释了如何计算交叉熵,展示了它如何衡量预测概率分布与真实标签之间的距离。在PyTorch中,交叉熵通过torch.nn.CrossEntropyLoss函数实现,该函数内部包含了Softmax操作。
最低0.47元/天 解锁文章
1228

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



