Que função de perda devo usar para detecção binária na detecção de face / sem face na CNN?

Respostas:

9

Perda de dobradiça e entropia cruzada são geralmente encontradas com resultados semelhantes. Aqui está outro post comparando diferentes funções de perda Quais são os impactos de escolher diferentes funções de perda na classificação para aproximar a perda de 0-1 .

Está certo, mas também gostaria de usar o softmax, mas com apenas duas classes?

Softmax não é uma perda, mas uma função de normalização, é freqüentemente usado junto com a perda de entropia cruzada, que é essencialmente equivalente a SigmoidCrossEntropyLoss. Consulte também Entropia cruzada ou Probabilidade de log na camada Saída

dontloo
fonte
7

0 0

No seu caso, você tem uma tarefa de classificação binária; portanto, sua camada de saída pode ser o sigmóide padrão (onde a saída representa a probabilidade de uma amostra de teste ser uma face). A perda que você usaria seria entropia cruzada binária. Com essa configuração, você pode imaginar uma regressão logística na última camada da sua rede neural profunda.

Aqui estão alguns links para você. Espero que eles ajudem.
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- função de usar para aprendizado de máquina

Armen Aghajanyan
fonte
Poderia, por favor, esclarecer a regressão logística na última camada de um DNN? Eu li as postagens, mas realmente não consigo ver a utilidade sigmoid(como a ativação da última camada). Obrigado
bit_scientist 18/01
2

Você poderia definitivamente usar o softmax com apenas 2 classes "Face" e "Not Face" e interpretar a saída do softmax como escores de confiança, que é um recurso interessante para obter alguma intuição sobre sua rede profunda.

Experimente a perda de dobradiça binária e softmax de 2 classes. Há um artigo recente Deep Learning usando Linear Support Vector Machines usando um SVM em vez de um classificador softmax em cima de redes de convocação profundas e há alguns resultados promissores lá.

Indie AI
fonte
2

Normalmente, a perda logarítmica seria a escolha preferida, usada em combinação com apenas uma única unidade de saída. A perda logarítmica também é chamada de entropia cruzada binária porque é um caso especial de entropia cruzada trabalhando em apenas duas classes.

elgehelge
fonte
Você deve atualizar seu primeiro link.
nbro 6/01
0

Teoricamente, um softmax com 2 classes pode ser reescrito como sigmóide, portanto, não deve haver diferença nos resultados entre os dois. Na prática, como o @dontloo mencionou, o número de parâmetros na camada de saída seria duplo (não tenho certeza se isso poderia levar a problemas de sobreajuste) e, é claro, você teria duas pontuações para as duas classes (Face e Não_Face).

aknnka
fonte