在CNN中的人脸/非人脸检测中,应使用哪种丢失函数进行二进制检测?


Answers:



7

通常,当您遇到样本只能属于一组类中的一个类的问题时,可以将最后一层设置为soft-max层。它使您可以将输出解释为概率。当使用soft-max层时,交叉熵通常效果很好,因为交叉熵中的对数项抵消了soft-max函数中存在的平稳段,因此加快了学习过程(认为点很远)从S型函数的)。0

在您的情况下,您有一个二进制分类任务,因此您的输出层可以是标准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-用于机器学习的功能


您能否在DNN的最后一层阐明逻辑回归?我已经阅读了帖子,但看不到它的实用性sigmoid(作为最后一层激活)。谢谢
bit_scientist


2

通常,对数损耗是首选,仅与单个输出单元结合使用。对数损失也称为二进制交叉熵,因为它是交叉熵的一种特例,仅适用于两个类别。


您应该更新第一个链接。
nbro

0

从理论上讲,具有2个类的softmax可以重写为S型,因此两者之间的结果应该没有差异。实际上,就像@dontloo提到的那样,输出层中的参数数量将是两倍(不确定这是否会导致任何过拟合问题),当然,对于这两个类(Face和Non_Face),您将获得2分。

By using our site, you acknowledge that you have read and understand our Cookie Policy and Privacy Policy.
Licensed under cc by-sa 3.0 with attribution required.