CrossEntropyLoss交叉熵损失函数,与L1,L2(MSE)优缺点和区别
nn.CrossEntropyLoss() 交叉熵损失函数
应用:多分类,二分类问题。
交叉熵公式如下:
在pytorch具体的数据中可以这样理解:
推理出的数据会首先经过softmax处理成0-1之间的数据,然后送入-log()中,出来的解决和真实标签对应位置上的每一个类别加和取均值。
数据演示:
推理数据:
真实标签:
softmax处理后的结果:
放入log函数中(注:python中log默认是以e为底):
然后取绝对值,找到真实标签在每一个类别上对应位置上的数值。
绝对值处理过就是(2.9192+1.5599+2.4762 ) / 3 = 2.3185
CrossLoss 就等于 2.3185。
交叉熵根本上是对比出一种与真实值的接近程度,是一种信息上的概念。
而L1 L2(MSE)则是对每一个像素上对判断其与真实像素值的差距。
L1 : 绝对值误差
L2:平方差
L1的收敛更快,对异常数据相对L2来说更不敏感,所以鲁棒性更好。
L2收敛的速度更慢,且由于平方的原因对异常点更加敏感,L2的梯度是越来越大的,所以容易找到最优值。
本图文内容来源于网友网络收集整理提供,作为学习参考使用,版权属于原作者。
THE END
二维码