(a) GSNN() como método para integrar gráficos de conocimiento potencialmente grandes en un sistema de aprendizaje de un extremo a otro es computacionalmente factible para gráficos grandes;
(b) Un marco para clasificación de imágenes utilizando gráficos de conocimiento ruidosos;
(c)Explicación de nuestras capacidades de clasificación de imágenes. Utilice un modelo de propagación. Nuestro método supera significativamente las líneas de base para la clasificación de etiquetas múltiples.
El mayor problema al aplicar GGNN a tareas de imágenes es la escalabilidad computacional. Por ejemplo, Neil [4] tiene más de 2000 conceptos y Nell [3] tiene más de 2 millones de creencias seguras. Incluso si reducimos nuestras tareas, las imágenes siguen siendo enormes. La propagación hacia adelante en el GGNN estándar es (), que es el número de nodos, y la propagación hacia atrás es (), donde es el número de pasos de propagación. Realizamos un experimento simple con GGNN en gráficos sintéticos y descubrimos que después de más de 500 nodos, un paso hacia adelante y hacia atrás tomó más de 1 segundo en un caso, incluso con suposiciones de parámetros extensas. En 2000 nodos, una sola imagen tarda más de un minuto. No es posible utilizar GGNN de forma inmediata.
Nuestra solución a este problema es Graph Search Neural Network (GSNN). Como sugiere el nombre, la idea no es realizar una actualización cíclica de todos los nodos del gráfico a la vez, sino comenzar con algunos nodos iniciales en función de la entrada y seleccionar solo aquellos nodos cuya expansión sea útil para la salida final. Por lo tanto, solo calculamos los pasos de actualización en un subconjunto del gráfico. Entonces, ¿cómo elegimos qué subconjunto de nodos usar para inicializar el gráfico? Durante el entrenamiento y las pruebas, determinamos los nodos iniciales en el gráfico en función de la probabilidad de los conceptos determinados por el detector o clasificador de objetos. En nuestros experimentos, utilizamos Faster R-CNN en cada una de las 80 especies de cacao. Para puntuaciones que exceden un umbral seleccionado, seleccionamos el nodo correspondiente en el gráfico como el conjunto inicial de nodos activados.
Una vez que tenemos el nodo inicial, también agregamos los nodos adyacentes al nodo inicial al conjunto activo. Considerando el nodo inicial, la creencia sobre el nodo inicial primero debe propagarse a todos los nodos vecinos. Sin embargo, después del primer paso, necesitamos una forma de decidir qué nodo expandir a continuación. Por lo tanto, aprendemos una función de puntuación para cada nodo que estima la importancia del nodo. Después de cada paso de propagación, predecimos la puntuación de importancia de cada nodo en el gráfico actual.
Esta es una red de aprendizaje, una red importante.
Una vez que tengamos los valores para , agregaremos los nodos con la puntuación más alta que nunca se hayan expandido a nuestro conjunto expandido y agregaremos todos los nodos adyacentes a estos nodos al conjunto activo. La Figura 2 ilustra esta extensión. Cuando t = 1, solo se expanden los nodos detectados. Cuando t = 2, expandimos el nodo seleccionado según el valor de importancia y agregamos sus vecinos al gráfico. En el último paso de tiempo, calculamos la salida de cada nodo y reordenamos la salida rellena con ceros en la red de clasificación final.
Para entrenar la red de importancia, asignamos un valor de importancia objetivo a cada nodo de una imagen determinada en el gráfico. A los nodos correspondientes a conceptos de verdad fundamental en la imagen se les asigna un valor de importancia de 1. A los vecinos de estos nodos se les asigna un valor. Los nodos a dos saltos de distancia tienen valores, y así sucesivamente. La idea es que el nodo más cercano a la salida final sea la extensión más importante.
Ahora tenemos una red de un extremo a otro que toma como entrada un conjunto inicial de nodos y comentarios y genera una salida para cada nodo activo en el gráfico. Consta de tres grupos de redes: red de comunicación, red de importancia y red de salida (red de promoción, red de importancia).
Neto y neto de salida). La pérdida final del problema de imagen se puede propagar a través de la red de salida desde la salida final de la tubería, mientras que la pérdida de importancia se propaga a través de cada salida de importancia. La arquitectura GSNN se muestra en la Figura 3. Primero, se inicializa la confianza de detección y se detecta inicialmente el estado oculto del nodo. Luego inicializamos
los estados ocultos de los nodos adyacentes con 0. Luego usamos una red de propagación para actualizar el estado oculto. Luego, el valor de se usa para predecir la puntuación de importancia, que se usa para seleccionar el siguiente nodo a agregar. Luego, estos nodos se inicializan y el estado oculto se actualiza nuevamente a través de la red de propagación. Después del paso T, tomamos todos los estados ocultos acumulados para predecir la salida GSNN de todos los nodos activos. Durante el proceso de retropropagación, la pérdida de entropía cruzada binaria (BCE) se retroalimenta a través de la capa de salida, la pérdida de importancia se retroalimenta a través de la red de importancia y se actualizan los parámetros de la red.
El último detalle es agregar sesgo de nodo a GSNN. En GGNN, la función de salida de cada nodo acepta el estado oculto y la anotación inicial de ese nodo y calcula su salida. En cierto sentido, es independiente del significado de los nodos. Es decir, durante el entrenamiento o las pruebas, GSNN toma un gráfico que quizás nunca antes se haya visto y algunas anotaciones iniciales para cada nodo. Luego utiliza la estructura del gráfico para propagar estas anotaciones a través de la red y luego calcula la salida. Los nodos del gráfico pueden representar cualquier cosa, desde relaciones humanas hasta programas de computadora. Sin embargo, en nuestra red de gráficos, el hecho de que un nodo particular represente "caballo" o "gato" puede ser relevante, y también podemos limitarnos a gráficos estáticos en lugar de conceptos de imágenes. Entonces introducimos el término de sesgo de nodo y cada nodo en el gráfico tiene algún valor de aprendizaje. Nuestra ecuación de salida es el término de sesgo asociado con un nodo específico en todo el gráfico. Este valor se almacena en una tabla y su valor se actualiza mediante retropropagación.
3.3. Pipeline y línea base de imágenes.
Otro problema al adaptar las redes de gráficos a los problemas de visión es cómo incorporar redes de gráficos en los canales de imágenes. Para la clasificación, esto es bastante simple. Tomamos la salida de la red de gráficos, la reordenamos para que los nodos siempre aparezcan en el mismo orden en la red final y llenamos los nodos no expandidos con ceros. Entonces, si tenemos un gráfico con salidas de 316 nodos y cada nodo predice una variable oculta de 5 dimensiones, entonces crearemos un vector de características de 1580 dimensiones a partir del gráfico. También concatenamos este vector de características con la capa FC7 (4096 tenue) de la red VGG-16 ajustada [35] y la puntuación más alta para cada clase COCO (80 tenue) predicha por el R-CNN más rápido. Este vector de características de 5756 dimensiones se introduce en una red de clasificación final, que ha sido entrenada para abandonar.
Para las líneas de base, comparamos: (1) solo la línea de base VGG ingresa FC7 en la red de clasificación final (2) detecta la línea de base e ingresa FC7 y la puntuación COCO más alta en la red de clasificación final;
[1] Notas en papel: GSNN: Cuanto más sepa: clasificación de imágenes mediante gráficos de conocimiento
[2] Cuanto más sepa: clasificación de imágenes mediante gráficos de conocimiento— —Notas sobre el artículo sobre clasificación de imágenes de mapas de conocimiento
[1]Cammarino/GSNN_TMYN
[2] SteinsGate9/gsnn_demo