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.
Respuestas:
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.
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.
fuente
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.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:
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:
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".
fuente