Caffe中的各种loss函数适合哪些问题?


Caffe中有很多loss函数,比如有EuclideanLoss、SoftmaxLoss、SigmoidCrossEntropyLoss等等,这些loss函数适合于哪类问题?同样问题用哪种loss函数好是靠试的吗?
已邀请:

刘昕_ICT

赞同来自: 李扬 last_one anan1205

补充下关于softmaxloss和sigmoidcrossentropyloss的区别。
Softmaxloss是caffe里面的说法,softmaxloss实际上是SoftmaxLayer + MultinomialLogisticLossLayer。SoftmaxLoss适合于最经典的分类任务,类别标签中只有1个1,其余全部是零,比如人脸识别,物体分类任务。
但是,对于属性分类任务,类别标签里面有不止1个1,这个时候softmaxloss就不适用了,需要用到SigmoidCrossEntropyLoss。同样的,SigmoidCrossEntropyLoss也是两个层的混合,至于哪两个层,留作小测试。SigmoidCrossEntropyLoss也可以直接回归概率分布(标签的每一维具有概率解释,取值范围是【0,1】),比如在年龄估计当中,我们可以把年龄建用LDL(label distribution label)进行概率建模,然后用SigmoidCrossEntropyLoss进行回归【1】。在文献【1】中,我们还给出了使用EuclideanLoss的一个trick,欢迎大家看文章自己发现。
 
【1】Xin Liu, Shaoxin Li, Meina Kan, Jie Zhang, Shuzhe Wu, Wenxian Liu, hu Han, Shiguang Shan, Xilin Chen. AgeNet: Deeply Learned Regressor and Classifier for Robust Apparent Age Estimation. ChaLearn Looking at People Workshop on ICCV 2015. (2nd Winner of Apparent Age Estimation).
 
留两个问题:
1. SigmoidCrossEntropyLoss是哪两个层的合称?
 
2. 为什么 SigmoidCrossEntropyLoss的ground truth标签取值范围必须是【0,1】?
 

cjwdeq

赞同来自: 李扬 yuanyinlove

简单来说:
  1. 欧式距离损失函数:一般适用于回归问题,特别是回归的值是实数的时候。
  2. 对比损失函数:用来训练siamese网络时候。
  3. Hinge loss:在一对多的分类中应用,类似于SVM。
  4. 多项式逻辑损失函数:一般在一对多的分类任务中应用,直接把预测的概率分布作为输入。
  5. sigmoid交叉熵损失函数:预测目标概率分布。
  6. softmax+损失函数:在一对多分类中的应用。

 

disheng

赞同来自:

这个是根据你的任务而定的。例如,回归问题,可以用EuclideanLoss;如果是分类问题,可以采用SoftmaxLoss。

anan1205

赞同来自:

最后的交叉熵loss下降到多少呀

要回复问题请先登录注册