Eu quero usar o aprendizado profundo para treinar uma detecção binária de face / sem face, que perda devo usar, acho que é SigmoidCrossEntropyLoss ou perda de dobradiça .
Está certo, mas também gostaria de usar o softmax, mas com apenas duas classes?
sigmoid
(como a ativação da última camada). ObrigadoVocê 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á.
fonte
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.
fonte
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).
fonte