Para un problema de clasificación (dos clases), ¿es mejor usar dos salidas con softmax o una salida con entropía cruzada binaria?

En un problema de dos clases, no hay ninguna diferencia entre usar un softmax con dos salidas o una salida binaria, suponiendo que use una función sigmoide (logística) para modelar la probabilidad de la salida. Las dos cosas son matemáticamente equivalentes.

Podemos mostrar esto con bastante facilidad. El modelado con una salida softmax es:

[matemáticas] p (w_j | x, \ theta) = \ frac {\ exp (\ theta_j ^ Tx)} {\ sum \ limits_k \ exp (\ theta_k ^ Tx)} [/ math]

donde [matemática] p (w_j | x) [/ matemática] es la probabilidad de que la observación [matemática] x [/ matemática] esté asociada con la clase [matemática] j [/ matemática] y [matemática] \ theta [/ matemática] Son los parámetros del modelo. Observe que el softmax asegura que las probabilidades sumen uno, y por lo tanto tiene un grado de libertad. En el caso binario, usamos este grado de libertad para restringir una clase. Por lo tanto, tenemos:

[matemáticas] p (w_1 | x, \ theta) = \ frac {1} {1+ \ exp (\ theta ^ Tx)}; p (w_2 | x, \ theta) = 1- \ frac {1} {1+ \ exp (\ theta ^ Tx)} = \ frac {\ exp (\ theta ^ Tx)} {1+ \ exp (\ theta ^ Tx)} [/ matemáticas]

Entonces, el softmax es solo la generalización de la función logística a más de dos clases, o la función logística es un caso especial del softmax para salidas binarias. ¿Qué pasa con la función de pérdida? La entropía cruzada es la función de costo apropiada en ambos casos. Lo más probable es que utilice esta función de costo independientemente de cómo represente sus resultados. Nuevamente, podemos ver que la entropía cruzada binaria (como su nombre lo indica) es solo un caso especial de entropía cruzada para el caso de dos clases. La entropía cruzada estándar se da como:

[matemáticas] E (\ theta) = \ sum \ limits_i \ sum \ limits_j y_ {ij} \ log p (w_j | \ theta, x) [/ math]

donde [math] y_ {ik} [/ math] es una codificación de 1 en caliente de la etiqueta del ejemplo [math] i [/ math] (1 si el ejemplo [math] i [/ math] está asociado con la clase [math] k [/ math], 0 de lo contrario). Ahora considere el caso binario, donde en lugar de una codificación de 1 en caliente, simplemente establecemos [math] y_i [/ ​​math] en 1 si el ejemplo [math] i [/ math] está en la clase 1, y 0 de otra manera. Entonces podemos expresar la entropía cruzada binaria como:

[matemáticas] E (\ theta) = \ sum \ limits_i y_i \ log p (w_1 | x, \ theta) + (1-y_i) \ log (1-p (w_1 | x, \ theta)) [/ math]

Entonces, como puede ver, las dos cosas son exactamente equivalentes. Lo único que cambia es cómo representa sus etiquetas (1-caliente o escalar). Solo asegúrate de ser consistente.

Si es un problema de varias clases, usaría uno solo y si es de varias etiquetas, usaría dos. Para ver la diferencia entre los dos tipos, consulte:

¿Cuál es la diferencia entre Multiclass y Multilabel Problem?

More Interesting

¿Cuáles son algunos ejemplos de inteligencia artificial en sitios web?

Cómo aprender los conceptos básicos del aprendizaje automático dentro de una semana para una entrevista de trabajo

¿Qué es un método de kernel en el contexto del aprendizaje automático?

¿Existen trabajos de Ciencia de datos y Aprendizaje automático para estudiantes de primer año en India?

¿Por qué la similitud entre palabras generalmente se calcula a través del coseno métrico, no euclidiano?

¿Se pueden utilizar algoritmos genéticos y optimización de enjambre de partículas para construir sistemas de reconocimiento de voz?

¿Cuándo las funciones coercitivas tienen un minimizador?

¿Me podría recomendar un curso abierto de aprendizaje automático?

¿Hay alguna manera de usar Machine Learning para predecir el resultado de un lanzamiento de moneda?

¿Cuál es la diferencia entre ajuste de curva y regresión?

¿El curso de aprendizaje automático que el profesor Andrew Ng ofrece en Coursera me será útil como desarrollador de software profesional para resolver problemas de aprendizaje automático del mundo real?

¿Qué biblioteca / framework AI es el mejor, OpenAI, OpenNN o TensorFlow?

¿Cómo estimar la divergencia KL si no se conoce el posterior? En inferencia variacional, KL se utiliza para encontrar una distribución que se aproxime al verdadero posterior, pero el KL requiere conocer el posterior mismo. ¿Cómo se trata esto?

¿Cómo se usan los árboles BSP (partición de espacio binario) en los algoritmos de aprendizaje automático?

Cómo hacer aprendizaje automático usando scikit-learn para un archivo CSV que tiene muchas columnas de texto