Cada ejemplo de red neuronal para reconocimiento de imágenes que he leído produce una respuesta simple de "sí" o "no". Un nodo de salida corresponde a "Sí, este es un rostro humano", y uno corresponde a "No, este no es un rostro humano".
Entiendo que esto es probable para simplificar la explicación, pero me pregunto cómo se podría programar una red neuronal como esta para dar una salida más específica. Por ejemplo, digamos que estaba clasificando animales. En lugar de decir "Animal" o "No es un animal", quisiera respuestas como "Perro", "Pez", "Pájaro", "Serpiente", etc., con un nodo de salida final como "No es un animal / I no reconozcas esto ".
Estoy seguro de que esto debe ser posible, pero tengo problemas para entender cómo. Parece que se debe al algoritmo de entrenamiento de retropropagación de error, ya que entrenas un nodo de salida (es decir, "Esto es un perro") y los pesos de las neuronas cambian, luego el estado ideal para otro nodo de salida que previamente entrenado (es decir, "Esto es un pájaro") comenzará a desviarse, y viceversa. Por lo tanto, entrenar a la red para que reconozca una categoría saboteará cualquier entrenamiento realizado para otra categoría, lo que nos limitará a un diseño simple de "Sí" o "No".
¿Esto hace que tal reconocedor sea imposible? ¿O estoy malinterpretando el algoritmo? Las únicas dos cosas en las que puedo pensar son:
O bien podríamos entrenar una red neuronal para cada cosa que queramos clasificar y usar de alguna manera para construir una super-red mayor (por ejemplo, una red para "perro", una red para "pájaro", etc., que de alguna manera se suman para crear la súper red para "animales"); o,
Cree algún tipo de metodología de entrenamiento ridículamente complicada que requeriría matemáticas increíblemente avanzadas y de alguna manera produciría un estado ideal de peso neuronal para todas las salidas posibles (en otras palabras
insert math magic here
).
(Nota al margen 1: Estoy mirando específicamente los perceptrones multicapa como una especie de red neuronal).
(Nota al margen 2: Para la primera "solución posible" con viñetas, tener cada red neuronal específica e iterar a través de ellas hasta que recibamos una respuesta de "Sí" no es lo suficientemente bueno. Sé que esto podría hacerse con bastante facilidad, pero eso es funcional simple programación en lugar de aprendizaje automático. Quiero saber si es posible tener una red neuronal para alimentar la información y recibir la respuesta adecuada).