¿Qué función de pérdida debo usar para la detección binaria en la detección de rostro / no rostro en CNN?

Respuestas:

9

La pérdida de la bisagra y la entropía cruzada generalmente se encuentran con resultados similares. Aquí hay otra publicación que compara diferentes funciones de pérdida. ¿Cuáles son los impactos de elegir diferentes funciones de pérdida en la clasificación para aproximar la pérdida 0-1 ?

¿Es correcto, pero también me pregunto si debería usar softmax pero con solo dos clases?

Softmax no es una pérdida sino una función de normalización, a menudo se usa junto con la pérdida de entropía cruzada, que es esencialmente equivalente a SigmoidCrossEntropyLoss. Ver también Cross-Entropy o Log Likelihood en Output layer

dontloo
fuente
7

En general, cuando tiene un problema en el que la muestra solo puede pertenecer a una clase entre un conjunto de clases, configura la última capa para que sea una capa soft-max. Le permite interpretar las salidas como probabilidades. Cuando se usa una capa soft-max, la entropía cruzada generalmente funciona muy bien, porque el término logarítmico en la entropía cruzada cancela la meseta que está presente en la función soft-max, por lo tanto, acelera el proceso de aprendizaje (piense en puntos muy lejanos). de en la función sigmoidea).0

En su caso, tiene una tarea de clasificación binaria, por lo tanto, su capa de salida puede ser el sigmoide estándar (donde la salida representa la probabilidad de que una muestra de prueba sea una cara). La pérdida que usaría sería la entropía cruzada binaria. Con esta configuración, puede imaginar tener una regresión logística en la última capa de su red neuronal profunda.

Aquí hay un par de enlaces para ti. Espero que ayuden.
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- función-a-usar-para-machine-learning

Armen Aghajanyan
fuente
¿Podría arrojar algo de luz sobre la regresión logística en la última capa de un DNN? He leído las publicaciones pero realmente no puedo ver la utilidad sigmoid(como la activación de la última capa). Gracias
bit_scientist
2

Definitivamente, podría usar softmax con solo 2 clases "Face" y "Not Face" e interpretar la salida de softmax como puntajes de confianza, que es una buena característica para tener cierta intuición sobre su red profunda.

Pruebe tanto el softmax de 2 clases como la pérdida de bisagra binaria. Hay un documento reciente de Aprendizaje profundo que usa máquinas de vectores de soporte lineal que usa un SVM en lugar de un clasificador softmax encima de las conexiones profundas y hay algunos resultados prometedores allí.

AI independiente
fuente
2

Por lo general, la pérdida logarítmica sería la opción preferida, utilizada en combinación con una sola unidad de salida. La pérdida logarítmica también se denomina entropía cruzada binaria porque es un caso especial de entropía cruzada que funciona solo en dos clases.

elgehelge
fuente
Deberías actualizar tu primer enlace.
nbro
0

Teóricamente, un softmax con 2 clases se puede reescribir como un sigmoide, por lo tanto, no debería haber una diferencia en los resultados entre los dos. Prácticamente, como mencionó @dontloo, el número de parámetros en la capa de salida sería el doble (no estoy seguro de si esto podría conducir a problemas de sobreajuste) y, por supuesto, tendría 2 puntajes para las dos clases (Face y Non_Face).

aknnka
fuente