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