我想使用深度学习来训练面部/非面部二进制检测,我应该使用什么损失,我认为这是SigmoidCrossEntropyLoss或Hinge-loss。
是这样,但是我也想知道我应该只使用softmax但只有两个类吗?
我想使用深度学习来训练面部/非面部二进制检测,我应该使用什么损失,我认为这是SigmoidCrossEntropyLoss或Hinge-loss。
是这样,但是我也想知道我应该只使用softmax但只有两个类吗?
Answers:
通常发现铰链损失和交叉熵具有相似的结果。这是另一篇比较不同损失函数的文章,在分类中选择不同损失函数以近似0-1损失有什么影响。
是这样,但是我也想知道我应该只使用softmax但只有两个类吗?
Softmax不是损失,而是归一化函数,它经常与交叉熵损失(通常等于)一起使用SigmoidCrossEntropyLoss
。另请参见输出层中的交叉熵或对数似然
通常,当您遇到样本只能属于一组类中的一个类的问题时,可以将最后一层设置为soft-max层。它使您可以将输出解释为概率。当使用soft-max层时,交叉熵通常效果很好,因为交叉熵中的对数项抵消了soft-max函数中存在的平稳段,因此加快了学习过程(认为点很远)从S型函数的)。
在您的情况下,您有一个二进制分类任务,因此您的输出层可以是标准S形(其中输出表示测试样本为人脸的概率)。您将使用的损耗将是二进制交叉熵。通过这种设置,您可以想象在深度神经网络的最后一层进行逻辑回归。
这是您的几个链接。希望他们能帮上忙。
https://en.wikipedia.org/wiki/Cross_entropy#Cross-entropy_error_function_and_logistic_regression
http://neuralnetworksanddeeplearning.com/chap3.html
https://www.quora.com/How-do-you-decide-which-loss-用于机器学习的功能
您绝对可以只将softmax与“ Face”和“ Not Face”两个类一起使用,并将softmax的输出解释为置信度得分,这是一个很好的功能,可以使您深入了解自己的深层网络。
尝试2类softmax和二进制铰链损耗。最近有一篇论文使用深度支持网络之上的使用线性支持向量机的深度学习,该线性支持向量机使用SVM而不是softmax分类器,并且那里有一些令人鼓舞的结果。
sigmoid
(作为最后一层激活)。谢谢