¿Qué decide la elección de la función (Softmax vs Sigmoid) en un clasificador logístico?
Supongamos que hay 4 clases de salida. Cada una de las funciones anteriores da las probabilidades de que cada clase sea la salida correcta. Entonces, ¿cuál tomar para un clasificador?
Respuestas:
La función sigmoidea se usa para la regresión logística de dos clases, mientras que la función softmax se usa para la regresión logística multiclase (también conocida como MaxEnt, regresión logística multinomial, regresión softmax, clasificador de entropía máxima).
En la regresión logística de dos clases, las probabilidades predichas son las siguientes, utilizando la función sigmoidea:
En la regresión logística multiclase, con clases , las probabilidades predichas son las siguientes, utilizando la función softmax:K
Se puede observar que la función softmax es una extensión de la función sigmoidea al caso multiclase, como se explica a continuación. Veamos la regresión logística multiclase, con clases:K=2
con . Vemos que obtenemos las mismas probabilidades que en la regresión logística de dos clases usando la función sigmoide. Wikipedia se expande un poco más sobre eso.β=−(β0−β1)
fuente
De hecho, son equivalentes, en el sentido de que uno puede transformarse en el otro.
Suponga que sus datos están representados por un vector , de dimensión arbitraria, y construyó un clasificador binario para ello, utilizando una transformación afín seguida de un softmax:x
Transformémoslo en un clasificador binario equivalente que use un sigmoide en lugar del softmax. En primer lugar, tenemos que decidir cuál es la probabilidad de que queremos que salga el sigmoide (que puede ser para la clase o ). Esta elección es absolutamente arbitraria, por lo que elijo la clase . Entonces, mi clasificador tendrá la forma:C0 C1 C0
Los clasificadores son equivalentes si las probabilidades son las mismas, por lo que debemos imponer:
Reemplazar , y por sus expresiones en términos de y y hacer algo sencillo manipulación algebraica, puede verificar que la igualdad anterior se mantenga si y solo si y están dados por:z0 z1 z′ w0,w1,w′,b0,b1,b′ x w′ b′
fuente
He notado que las personas a menudo se dirigen a esta pregunta cuando buscan si usar sigmoid vs softmax en redes neuronales. Si usted es una de esas personas que construye un clasificador de red neuronal, a continuación se explica cómo aplicar sigmoid o softmax a los valores de salida sin formato de su red:
Referencia: para obtener una explicación más detallada de cuándo usar sigmoid vs. softmax en el diseño de redes neuronales, incluidos los ejemplos de cálculos, consulte este artículo: "Clasificación: Sigmoid vs. Softmax".
fuente
Además de todas las respuestas anteriores, me gustaría mencionar el hecho de que cualquier problema de clasificación de varias clases puede reducirse a múltiples problemas de clasificación binaria utilizando el método "uno contra todos", es decir, tener sigmoides C (cuando C es el número de clases) e interpretando cada sigmoide como la probabilidad de estar en esa clase específica o no, y tomando la probabilidad máxima.
Entonces, por ejemplo, en el ejemplo de dígitos MNIST, puede usar un softmax o diez sigmoides. De hecho, esto es lo que Andrew Ng hace en su curso Coursera ML. Puede consultar aquí cómo Andrew Ng usó 10 sigmoides para la clasificación multiclase (adaptado de Matlab a python por mí), y aquí está mi adaptación de softmax en python.
Además, vale la pena señalar que si bien las funciones son equivalentes (para el propósito de la clasificación multiclase) difieren un poco en su implementación (especialmente con respecto a sus derivados y cómo representar y).
Una gran ventaja de usar múltiples clasificaciones binarias (es decir, Sigmoides) sobre una sola clasificación multiclase (es decir, Softmax) es que si su softmax es demasiado grande (por ejemplo, si está utilizando una incrustación de una sola palabra de un tamaño de diccionario de 10K o más ) - puede ser ineficiente entrenarlo. En cambio, lo que puede hacer es tomar una pequeña parte de su conjunto de entrenamiento y usarlo para entrenar solo una pequeña parte de sus sigmoides. Esta es la idea principal detrás del muestreo negativo .
fuente