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

27

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

  • Use 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)

  • Use 2 nodos de salida. La entrada pertenece a la clase del nodo con el valor / probabilidad más alto (argmax).

¿Hay documentos escritos que (también) discutan esto? ¿Cuáles son las palabras clave específicas para buscar?

Esta pregunta ya se hizo antes en este sitio, por ejemplo, vea este enlace sin respuestas reales. Necesito hacer una elección (Tesis de maestría), por lo que quiero obtener una idea de los pro / contras / limitaciones de cada solución.

robert
fuente
Creo que el OP de la pregunta vinculada tiene un buen punto, la única diferencia es que la opción 2 tiene un mayor número de parámetros, es más flexible pero más propenso a un ajuste excesivo.
dontloo
1
En Udacity ML Nanodegree aprendí que es mejor usar un nodo de salida si el resultado es mutuamente exclusivo simplemente porque la red tiene menos errores que puede cometer. Creo que no hay profesionales en el uso de 2 nodos de salida en ese caso, pero no tengo evidencia científica para eso
CodingYourLife

Respuestas:

26

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

y=11+mi-X=11+1miX=1miX+1miX=miX1+miX=miXmi0 0+miX

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

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

itdxer
fuente
Cuando dice que uno de ellos tiene todos los pesos cero, ¿quiere decir que el modelo ni siquiera consideró uno de la clase durante el entrenamiento? En la práctica, ¿podemos realmente entrenar este clasificador binario con solo una clase de datos de entrenamiento?
código muerto
Es más como el umbral (límite) se fija durante el entrenamiento y la clase. Para que sepa que si es una clase positiva y si es una clase negativa. Con softmax puedes aprender diferentes umbrales y tener diferentes límites. RE pesa con todos los ceros, quise decir sigmoide lo mismo que softmax con 2 salidas para el caso cuando tienes dos neutrones de salida y una de las salidas y la otra siempre sin importar cuál fue la entrada. Puede ser solo cuando para la segunda salida tenemos todos los pesos iguales a cero. Espero que ayude. x < 0 x 0X>0 0X<0 0X0 0
itdxer
1
Tenga en cuenta que hay soluciones degeneradas de la forma exp(x+alpha) / (exp(alpha) + exp(x+alpha)), en realidad un número infinito de ellas, todas con el mismo resultado de clasificación que el anotado con pesos todos 0. Los pesos probablemente no entrenarán para ser todos cero, sino que entrenarán para degenerarse con la solución que tiene pesos todos 0. Al parecer, evite las soluciones degeneradas (sin sentido y derrochadoras) utilizando solo una neurona de salida.
Dan Nissenbaum
3

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

y=softmax(una)1yomi-unayo×[mi-una1,mi-una2,...,mi-unanorte]

0 0yyo1 por todo lo que yo
y1+y2+...+ynorte=1

Aquí, es la activación de la capa antes de la capa softmax.una

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

0 0y1 para todas las entradas.
Esto se puede asegurar si se aplica una transformación (diferenciable / suave para fines de propagación hacia atrás) que mapea a modo que se cumpla la condición anterior. La función sigmoide cumple con nuestros criterios. No tiene nada de especial, aparte de una simple representación matemática,unay

sigmoideo(una)σ(una)11+mi-una

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

Conclusión

No estoy seguro de si el razonamiento de @ itdxer que muestra softmax y sigmoide es equivalente si es válido, pero tiene razón al elegir 1 neurona en contraste con 2 neuronas para los clasificadores binarios, ya que se necesitan menos parámetros y cálculos. También me han criticado por usar dos neuronas para un clasificador binario ya que "es superfluo".

Miladiosos
fuente