对于loss的定义和选择,是决定一个模型能否收敛甚至是针对特定问题是否能够进行灵活应用的基石,因而对于loss的理解和把握是炼丹师的基本数学修养。从pytorch的loss的使用来看,是对于loss的理解的一个很好的入口。
https://blog.csdn.net/jacke121/article/details/82812218
对于Loss的理解应该是无止境的,有如下的一些比较高阶的理解:
L1 loss,L2 loss 和 smoothL1loss
对于L1 loss,L2 loss 和 smoothL1loss的理解比较好的是如下一篇文章:
https://blog.csdn.net/ytusdc/article/details/86659696
NLLLoss和CrossEntropyLoss之间的差别
简单讲: crossentropyloss = softmax - log- Nlloss.
https://blog.csdn.net/qq_22210253/article/details/85229988
MAE 和MSE 的区别
MAE:mean absolute error; MSE: mean square error.
;
Smooth L1 loss 的进阶: Huber Loss
Huber损失函数克服了MAE和MSE的缺点,不仅可以保持损失函数具有连续的导数,同时可以利用MSE梯度随误差减小的特性来得到更精确的最小值,也对局外点具有更好的鲁棒性。
一些重要的loss
1. Dice loss
2. Focal Loss
focal loss主要用于解决多分类任务中样本不平衡的现象,可以获得比softmax_cross_entropy更好的分类效果。
在Focal Loss中,它更关心难分类样本,不太关心易分类样本,
对于正类样本来说,如果预测结果为0.97那么肯定是易分类的样本,所以就会很小。
对于正类样本来说,如果预测结果为0.3的肯定是难分类的样本,所以就会很大;
对于负类样本来说,如果预测结果为0.8那么肯定是难分类的样本,就会很大;
对于负类样本来说,如果预测结果为0.1那么肯定是易分类的样本,就会很小。
3. Center Loss
中心损失主要主要用于减少类内距离,虽然只是减少了累内距离,效果上却可以表现出累内距离小了,类间距离就可以增大的效果。该损失不可以直接使用,需要配合传统的softmax loss一起使用。可以起到比单纯softmax loss更好的分类效果。
----------------------------------------------------------------------------------------------------------
----- Some new loss setup------------------------------------------------------------------------
----------------------------------------------------------------------------------------------------------
1. Housdroff Distance Loss
简单讲,就是两组点集之间的最小距离的平均值,用来衡量两组点集之间的间距。
to be continue....
P.s: 部分资料参考:
https://blog.csdn.net/qq_14845119/article/details/80787753