¿Puede una red neuronal proporcionar más respuestas que "sí" o "no"?

11

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).

asteri
fuente

Respuestas:

15

Para responder solo su título, sí. Las redes neuronales pueden dar respuestas no booleanas. Por ejemplo, las redes neuronales se han utilizado para predecir los valores del mercado de valores, que es una respuesta numérica y, por lo tanto, más que solo sí / no. Las redes neuronales también se utilizan en el reconocimiento de escritura a mano, en el que la salida puede ser uno de una amplia gama de caracteres: el alfabeto completo, los números y la puntuación.

Para centrarnos más en su ejemplo, reconocer animales, diría que es posible. Es principalmente una extensión del ejemplo de reconocimiento de escritura a mano; está reconociendo las características de una forma y las compara con formas "ideales" para ver qué coincide. Los problemas son técnicos, más que teóricos. La escritura a mano, cuando se ejecuta a través del software de reconocimiento, generalmente se asigna a un conjunto de líneas y curvas, agradable y simple. Las caras de los animales son más difíciles de reconocer, por lo que necesitaría una lógica de procesamiento de imágenes para extraer características como ojos, nariz, boca, contorno de cráneo áspero, etc. Sin embargo, solo preguntó si es posible, no cómo, por lo que la respuesta es sí.

Su mejor opción es probablemente echar un vistazo a cosas como la teoría de resonancia adaptativa. El principio general es que la información sensorial (en este caso, las métricas sobre el tamaño relativo, la forma y el espaciado de las diversas características faciales) se compara con un "prototipo" o plantilla que define esa clase de cosas. Si la diferencia entre la entrada sensorial y la plantilla recordada está por debajo de cierto umbral (como se define mediante un "parámetro de vigilancia"), se supone que el objeto que se está observando es un miembro del grupo representado por la plantilla; Si no se puede encontrar ninguna coincidencia, el sistema declara que es un tipo nunca antes visto. Lo bueno de este tipo de red es que cuando reconoce que un objeto es, por ejemplo, un caballo, puede aprender más sobre el reconocimiento de caballos para poder notar la diferencia entre, digamos,

EDITAR:

(En aras de la divulgación completa: todavía estoy investigando esto para un proyecto, por lo que mi conocimiento aún es incompleto y posiblemente un poco extraño en algunos lugares).

¿Cómo se relaciona esto con los pesos de configuración de retropropagación para un nodo de salida que arruina los pesos para otro nodo previamente entrenado?

Por lo que he leído hasta ahora, el paradigma ART es ligeramente diferente; se divide en dos secciones: una que aprende las entradas y otra que aprende las salidas para ellas. Esto significa que cuando se trata de un conjunto de entrada que no coincide, se activa y ajusta una neurona no comprometida para que coincida con la entrada, de modo que esa neurona desencadene una coincidencia la próxima vez. Las neuronas en esta capa son solo para reconocimiento. Una vez que esta capa encuentra una coincidencia, las entradas se entregan a la capa debajo, que es la que calcula la respuesta. Para su situación, esta capa probablemente sería muy simple. El sistema que estoy viendo está aprendiendo a conducir. Esto es en realidad dos tipos de aprendizaje; uno está aprendiendo a conducir en una variedad de situaciones, y el otro está aprendiendo a reconocer la situación. Por ejemplo,

Esta idea de aprender nuevas entradas sin arruinar comportamientos previamente aprendidos se conoce como el dilema estabilidad / plasticidad. Una red debe ser lo suficientemente estable como para mantener el comportamiento aprendido, pero lo suficientemente plástica como para que se le puedan enseñar cosas nuevas cuando las circunstancias cambien. Esto es exactamente lo que las redes ART están destinadas a resolver.

anaximandro
fuente
Gracias por tu gran respuesta! Entonces, ¿cómo se relaciona esto con los pesos de configuración de retropropagación para un nodo de salida que arruina los pesos para otro nodo previamente entrenado? ¿O estoy pensando en esto de la manera incorrecta?
asteri
@Jeff He agregado un poco a mi respuesta. No es particularmente detallado, me temo, todavía estoy aprendiendo esto yo mismo. Aún así, su pregunta se relaciona con el dilema estabilidad / plasticidad, en el sentido de que desea poder entrenar una red para reconocer algo nuevo sin olvidar cómo reconocer algo que ya sabe, y la Teoría de resonancia adaptativa está dirigida precisamente a resolver ese problema, así que probablemente valga la pena estudiarlo.
anaximandro
3

La respuesta de @ anaximander es bastante buena, pensé en comentar esta parte de tu pregunta:

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".

Bueno, creo que su suposición está mal aquí; si entiendo correctamente, tiene un NN con una salida por categoría que está tratando de clasificar. Idealmente, le gustaría que funcionen casi independientemente, para que la clasificación de "perro" y "pájaro" no se dispare al mismo tiempo. Entonces, realmente, durante el entrenamiento, lo que sucederá es que cuando entrenas el NN con un resultado de "perro", la propagación hacia atrás intentará garantizar que el "pájaro" y otras neuronas de salida no produzcan falsos positivos. Entonces, teóricamente, funcionará bien, contrario a tu comentario; El refuerzo de un resultado negativo para "pájaro" es correcto.

Sin embargo, su problema será la escalabilidad de este enfoque. A medida que agrega más categorías a la red, la capacitación se volverá más compleja al menos de manera lineal (pero probablemente mucho peor). Por esta razón, muchas personas usan un enfoque en el que se entrenan NN individuales para cada categoría; Esto mantiene las cosas lo suficientemente simples y relativamente escalables. El meta-nivel de cómo se combinan estos depende de usted. Simplemente podría recorrer todas las NN y ver cuáles producen resultados positivos, podría crear NN heurísticas de nivel medio que intenten reducir el tipo de animal para usted, o incluso podría tener una NN gigante que combine las NN individuales como neuronas . En esencia, lo que estoy tratando de decir es que tienes un conocimiento previo de la estructura del problema: las clasificaciones individuales son muy distintas entre sí;

EDITAR: Para responder a la pregunta del título, por supuesto, las NN pueden proporcionar más respuestas que sí / no. En los modelos "estándar", cada neurona de salida generalmente dispara sí / no (aunque este comportamiento podría cambiarse, si estuviera tan inclinado), representando un bit de información; pero al igual que con su computadora, los bits se pueden combinar para proporcionar un rango de valores discretos, que se pueden interpretar de la manera que desee. Un ejemplo bastante visual de salidas no binarias sería un Mapa autoorganizado , que generalmente tiene una salida 2D.

Daniel B
fuente
Gracias por tu respuesta. Sabía que podía tener tantos nodos de salida como quisiera, pero me preocupaba que, debido a la naturaleza del algoritmo de retropropagación de error (ajustando todos los pesos hacia un resultado deseado), aprender una clasificación desaprendería otra.
asteri
1

Respuesta corta y no muy rígida: sí, cada NN puede proporcionar más información que solo yes, o no. Se debe al umbral. Si los pesos son más altos que algún umbral, la respuesta es una de las clases de clasificación, si es más baja, la respuesta es la segunda clase de clasificación. Básicamente:

    0..threshold 
    threshold..1

La salida de Neuron está en el intervalo [0..1] (o [-1,1] depende), y no desea obtener respuesta si la salida es más baja o más alta que el umbral, pero la salida (la salida puede convertirse fácilmente en 0..1 intervalo y eso significa%)


fuente