75 votos

Red neuronal: ¿Para la clasificación binaria utilizar 1 o 2 neuronas de salida?

Supongamos que quiero hacer una clasificación binaria (algo pertenece a la clase A o a la clase B). Hay algunas posibilidades de hacerlo en la capa de salida de una red neuronal:

  • Utiliza 1 nodo de salida. La salida 0 (<0,5) se considera clase A y 1 (>=0,5) se considera clase B (en caso de sigmoide)

  • Utiliza 2 nodos de salida. La entrada pertenece a la clase del nodo con mayor valor/probabilidad (argmax).

¿Hay algún documento escrito que (también) discuta esto? ¿Cuáles son las palabras clave específicas para la búsqueda?

Esta pregunta ya se ha formulado antes en este sitio Por ejemplo, véase este enlace sin respuestas reales. Tengo que hacer una elección (tesis de maestría), por lo que quiero obtener una visión de los pros/contras/limitaciones de cada solución.

46voto

itdxer Puntos 475

En el segundo caso, probablemente esté escribiendo sobre la función de activación softmax. Si eso es cierto, entonces el sigmoide es sólo un caso especial de la función softmax. Eso es fácil de demostrar.

$$ y = \frac{1}{1 + e ^ {-x}} = \frac{1}{1 + \frac{1}{e ^ x}} = \frac{1}{\frac{e ^ x + 1}{e ^ x}} = \frac{e ^ x}{1 + e ^ x} = \frac{e ^ x}{e ^ 0 + e ^ x} $$

Como puede ver, sigmoide es lo mismo que softmax. Puedes pensar que tienes dos salidas, pero una de ellas tiene todos los pesos iguales a cero y por lo tanto su salida será siempre igual a cero.

Así que la mejor opción para la clasificación binaria es utilizar una unidad de salida con sigmoide en lugar de softmax con dos unidades de salida, porque se actualizará más rápido.

7voto

Miladiouss Puntos 171

Los algoritmos de aprendizaje automático, como los clasificadores, modelan estadísticamente los datos de entrada, aquí, determinando el probabilidades de la entrada perteneciente a diferentes categorías. Para un número arbitrario de clases, normalmente se añade una capa softmax al modelo, de modo que las salidas tendrían propiedades probabilísticas por diseño:

$$\vec{y} = \text{softmax}(\vec{a}) \equiv \frac{1}{\sum_i{ e^{-a_i} }} \times [e^{-a_1}, e^{-a_2}, ...,e^{-a_n}] $$

$$ 0 \le y_i \le 1 \text{ for all i}$$ $$ y_1 + y_2 + ... + y_n = 1$$

Aquí, $a$ es la activación de la capa anterior a la capa softmax.

Esto es perfectamente válido para dos clases, sin embargo, también se puede utilizar una neurona (en lugar de dos) dado que su salida satisface:

$$ 0 \le y \le 1 \text{ for all inputs.}$$ Esto puede asegurarse si se aplica una transformación (diferenciable/suave a efectos de retropropagación) que mapee $a$ a $y$ de manera que se cumpla la condición anterior. La función sigmoidea cumple nuestros criterios. No tiene nada de especial, aparte de una simple representación matemática,

$$ \text{sigmoid}(a) \equiv \sigma(a) \equiv \frac{1}{1+e^{-a}}$$

propiedades matemáticas útiles (diferenciación, estar acotado entre 0 y 1, etc.), eficiencia computacional y tener la pendiente adecuada para que la actualización de los pesos de la red tenga un cambio pequeño pero medible en la salida con fines de optimización.

Conclusión

No estoy seguro de que el razonamiento de @itdxer que demuestra que softmax y sigmoide son equivalentes sea válido, pero tiene razón en cuanto a elegir 1 neurona en lugar de 2 neuronas para clasificadores binarios ya que se necesitan menos parámetros y cálculos. También se me ha criticado por utilizar dos neuronas para un clasificador binario ya que "es superfluo".

0voto

Lucas Green Puntos 2993

Para la clasificación binaria, hay 2 salidas p0 y p1 que representan probabilidades y 2 objetivos y0 e y1.

donde p0, p1 = [0 1] y p0 + p1 = 1; y0,y1 = {0, 1} e y0 + y1 = 1.

Por ejemplo, p0 = 0,8, p1 = 0,2; y0 = 1, y1 = 0.

Para satisfacer las condiciones anteriores, la capa de salida debe tener activaciones sigmoides y la función de pérdida debe ser la entropía cruzada binaria.

i-Ciencias.com

I-Ciencias es una comunidad de estudiantes y amantes de la ciencia en la que puedes resolver tus problemas y dudas.
Puedes consultar las preguntas de otros usuarios, hacer tus propias preguntas o resolver las de los demás.

Powered by:

X