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]
- ¿Cuáles son algunas buenas técnicas para la clasificación / segmentación de datos de series temporales?
- En el aprendizaje profundo, ¿cómo clasifica una imagen como desconocida?
- ¿SVM siempre supera a J48? Tengo un caso de uso donde J48 funciona mejor. ¿Significa que algo está mal con mi enfoque / implementación?
- ¿Alguien puede presentar un tutorial o un documento sobre cómo elegir el valor de 'C' en la función de regresión logística scikit-learn?
- ¿Es el "grado de libertad" en el aprendizaje automático igual al número de variables independientes o el número de parámetros?
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.