Búsqueda mutua de imagen y texto: use CNN para clasificar 100,000 categorías de imágenes y texto

[Título]:Incrustación de texto e imagen convolucional de doble ruta

[arXiv]: http://cn.arxiv.org/abs/1711.05535

[Código]:layumi/Imagen-Texto-Incrustación

 

[Motivación]:

En este trabajo intentamos clasificar imágenes de 113.287 clases (MSCOCO) con CNN.

  • De hecho, consideramos que cada imagen en el conjunto de entrenamiento es una clase. (Por supuesto, si solo se usa una imagen, CNN definitivamente se ajustará demasiado). Al mismo tiempo, usamos descripciones de imágenes de 5 oraciones (texto) y las agregamos al entrenamiento. Entonces, cada categoría equivale a 6 muestras (1 imagen + 5 oraciones de descripción).

  • El problema que el artículo quiere resolver es la recuperación a nivel de instancia, es decir, si estás en un grupo de imágenes de 5000 imágenes, estás buscando "una chica rubia de azul está tomando un taxi". solo tiene una respuesta correcta. A diferencia del nivel de clase o el nivel de categoría, buscar "femenino" puede tener muchas respuestas correctas. Por lo tanto, este problema es más detallado y se necesitan más detalles visuales y textuales.

  • Al mismo tiempo, hemos observado que muchos trabajos anteriores utilizan directamente la red preentrenada de ImageNet a nivel de clase. Pero estas redes en realidad pierden información (número/color/posición). Las siguientes tres imágenes pueden usar la etiqueta Perro en imagenet, pero de hecho podemos dar una descripción más precisa en lenguaje natural. Ese es el problema que queremos resolver en este artículo (búsqueda mutua de imágenes y textos a nivel de instancia).

 

 

[Trabajo relacionado]:

Puede hacer clic en mi respuesta anterior, así como en la respuesta del senior.

¿Cuál es más prometedor, la visión por computadora o el procesamiento del lenguaje natural, o cada uno tiene sus propios méritos?

 

[Método]:

  1. Para la descripción en lenguaje natural, usamos la estructura CNN, relativamente menos utilizada, en lugar de la estructura LSTM. Para entrenar en paralelo, afine toda la red. La estructura se muestra en la figura. La estructura es en realidad muy simple.

Para TextCNN, usamos un bloque similar a ResNet. Tenga en cuenta que la oración es unidimensional. En el uso real, usamos una conversión 1X2.

 

2. Pérdida de instancia. Nos dimos cuenta de que el objetivo final es hacer que cada imagen tenga características discriminatorias, al igual que la descripción en lenguaje natural. Entonces, ¿por qué no tratar cada imagen como una clase? (Tenga en cuenta que esta suposición no está supervisada y no requiere ninguna etiqueta).

Este tipo de clasificación de muestra pequeña en realidad se usa comúnmente para la reidentificación de peatones antes, pero la reidentificación de peatones (1467 categorías, 9.6 imágenes por categoría y etiquetas de identificación artificial) no es tan extrema como la nuestra.

Flickr30k: 31.783 categorías (1 imagen + 5 descripciones), de las cuales las imágenes de formación son 29.783 categorías

MSCOCO: 123,287 categorías (1 imagen + ~5 descripciones), de las cuales las imágenes de entrenamiento son 113,287 categorías

Noté que Flickr30k en realidad tiene muchas imágenes similares de perros.

Sin embargo, aún los trataremos como clases distintas, con la esperanza de aprender también diferencias detalladas.

(Para CUHK-PEDES, debido a que la descripción de la misma persona es similar. Usamos a la misma persona como clase, por lo que hay más imágenes de capacitación para cada clase. CUHK-PEDES usa la anotación de ID, mientras que MSCOCO y Flickr30k no tenemos usar.)

 

3. ¿Cómo combinar texto e imágenes para el entrenamiento?

De hecho, el texto y las imágenes son fáciles de aprender unos de otros para la clasificación. Por lo tanto, necesitamos una restricción para que se asignen al mismo espacio semántico de alto nivel.

Adoptamos un método simple: antes de la clasificación final fc, deje que el texto y la imagen usen una W, luego se usará una restricción suave en el proceso de actualización, y esto se completa (consulte el documento 4.2 para obtener más detalles). En el experimento, encontramos que solo usando esta restricción suave W, el resultado es muy bueno. (Ver los resultados de la Etapa I en el artículo)

 

4. ¿Converge la formación?

convergente. Bienvenidos todos a mirar el código. Es la pérdida directa de softmax sin truco.

La clasificación de imágenes converge más rápido. El texto es más lento. En Flickr30k, ImageCNN converge rápidamente,

TextCNN se aprende desde el principio y hay 5 muestras de entrenamiento al mismo tiempo, por lo que es relativamente lento.

 

5. ¿La pérdida de instancias no está supervisada?

La suposición de pérdida de instancia no está supervisada, porque no utilizamos información adicional (etiquetas de categoría, etc.). En su lugar, se utiliza la información "cada imagen es una clase".

 

6. El uso de otros métodos no supervisados, como la agrupación de kmeans primero, ¿puede lograr un resultado similar a la pérdida de instancias?

Intentamos usar ResNet50 preentrenado para extraer características de pool5 y reunimos 3000 y 10000 clases respectivamente.

(La agrupación en clústeres es muy lenta. Aunque los subprocesos múltiples están habilitados, se tardó más de una hora en reunir 10 000 clases, y tenía miedo de que no me quedara suficiente memoria y fallara. Tenga cuidado).

El resultado de usar la pérdida de instancias en MSCOCO es mejor. Creemos que la agrupación no ha resuelto realmente el problema. El perro negro/el perro gris/ambos perros son perros, y el problema de los detalles de la imagen puede ignorarse.

 

7. Es más difícil que el resultado. Porque la red de todos no es la misma (injusto), e incluso la división de tren/prueba es diferente (muchos artículos anteriores no lo indicaron y lo compararon directamente).

Entonces, al hacer la tabla, tratamos de enumerar todos los métodos tanto como fuera posible. Tenga en cuenta las diferentes divisiones.

Intente comparar VGG-19 con VGG-19, ResNet-152 con ResNet-152. Bienvenidos a todos a leer el documento en detalle.

Gran parte de lo que se relaciona con nuestro documento es obra del Sr. Lu. Realmente recomiendo a todos que lo lean.

 

8. ¿Es necesariamente mejor un TextCNN más profundo?

Esta pregunta fue hecha por el Revisor.

Un documento relacionado es ¿Las redes convolucionales deben ser profundas para la clasificación de texto?

De hecho, esto también se encontró en nuestros experimentos adicionales. En los dos conjuntos de datos más grandes, no hay una mejora significativa de Res50 a Res152 en el lado del texto.

 

9. Algunos trucos (puede que no funcionen en otras tareas)

  • Debido a que he visto LSTM bidireccional, una idea natural es CNN bidireccional. Lo probé yo mismo y descubrí que no funcionó. Interludio: En ese momento, me encontré con un cartel traducido por fb CNN en ICML y pregunté al respecto. Dijeron, por supuesto que se puede usar, pero no lo intentaron.

  • El cambio de posición que se usa en este artículo es colocar el texto ingresado por CNN y dejar aleatoriamente algunas posiciones frente a él. Similar al funcionamiento del jitter de imagen. Todavía hay una mejora significativa. Vea el documento para más detalles.

  • Una mejora de datos más confiable puede ser reemplazar algunas palabras en la oración con sinónimos. Aunque descargué el diccionario de sinónimos de la oficina libre en ese momento, al final fue inútil. Finalmente, word2vec se usa para inicializar la primera capa de conversión de CNN. Hasta cierto punto, también contiene el efecto de los sinónimos. (Palabras similares, palabra vector también es similar)

  • Tal vez las muestras de cada categoría en el conjunto de datos estén relativamente equilibradas (básicamente 1+5), que también es la razón de nuestros buenos resultados. No es fácil sobreajustar algunas "muchas" clases.

 

[Resultados]

  • ¿TextCNN ha aprendido diferentes palabras con diferentes niveles de importancia? (Anexo al artículo)

Intentamos eliminar algunas palabras de la oración para ver cuáles tenían el mayor impacto en el puntaje de coincidencia.

  • Algunos resultados de búsqueda mutua imagen-texto (apéndice del artículo)

  • búsqueda en lenguaje natural

  • resultados de grano fino

Es posible que los detalles no estén muy claros en el documento, consulte el código/comunicación.

 

 

--------------Más otros artículos-------------

Supongo que te gusta

Origin blog.csdn.net/Layumi1993/article/details/91350473
Recomendado
Clasificación