KL散度loss和交叉熵loss
交叉熵针对的是该标签的预测值到真实值之间的所需的努力
true: [0,0,1, 0, 0]
predicted:[0.1 0.2 0.3 0.35 0.05]
仅仅计算第三个位置处的差异
loss = -1log(0.3)
而交叉熵针对的所有标签的预测值 同对应的所有真实值之间相互的差异
(此处也可以是两组预测值的差异分布,不一定是真实值,可以是两组预测值,两者做loss,从而实现两组预测的分布趋同)
即 predicted到true 和 true到predicted
predicted1: [0.4 0.1 0.2 0.3]
predicted2:[0.1 0.2 0.3 0.4]
loss1 = 0.4log(0.4/0.1) +0.1log(0.1/0.2) + 0.2log(0.2/0.3) + 0.3log(0.3/0.4)
反映了predicted2的分布 到达 predicted1 所需要的努力
loss2 = 0.1log(0.1/0.4) + 0.2log(0.2/0.1) + 0.3log(0.3/0.2) + 0.4log(0.4/0.3)
反映了predicted1的分布 到达 predicted2 所需要的努力
上面两个值取平均。获得带权重相加也可以。
loss = aloss1 + bloss2 , a>0, b>0, a+b=1
比如一组是真实数据得来的预测值,
一组是真实数据加了扰动后得到的数据,
可以适当适得a>0.5 而 b< 0.5
本文深入探讨KL散度和交叉熵在机器学习中的作用,解释它们如何衡量预测分布与真实分布之间的差异。交叉熵关注所有标签的差异,而KL散度则聚焦于单个或两组预测分布的接近程度。通过实例展示了如何计算两者,并讨论了它们在数据扰动场景下的应用,以及如何通过加权平均损失来调整模型训练的侧重。
1万+

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



