Implemente modelos de subtítulos de imágenes neuronales con PyTorch basados en la arquitectura codificador-decodificador.
El conjunto de datos es Flikr8k, que es lo suficientemente pequeño como para calcular el presupuesto y obtener resultados rápidamente. Dentro del conjunto de datos, hay 8091 imágenes, con 5 títulos para cada imagen. Por lo tanto, es propenso a sobreajustarse si el modelo es demasiado complejo. La fuente oficial no funciona, otros enlaces para el conjunto de datos podrían estar aquí y aquí
La arquitectura del modelo se describe a continuación. La red de codificación de la imagen es Resnet-101 (se puede cargar desde torchvision). El decodificador es básicamente un modelo de lenguaje basado en LSTM, con el vector de contexto (característica de imagen codificada) como el estado inicial oculto/de celda del LSTM [1]. También se implementa el modelo atento [2].
El modelo es entrenado por SGD con impulso. La tasa de aprendizaje comienza en 0,01 y se divide por 10 como si estuviera estancado en una meseta. Se utilizan el impulso de 0,9 y la caída de peso de 0,001.
El modelo [1] puede obtener descripciones relativamente razonables, con una puntuación de 35,7 en la prueba BLEU-1.
Imágenes | Subtítulos |
---|---|
Dos perros juegan en la hierba. | |
Una persona navega en kayak en el barco. | |
Un niño chapotea en una piscina. | |
Dos personas se sientan en un muelle junto al agua. | |
Un jugador de fútbol con uniforme rojo corre con un balón de fútbol frente a una multitud. | |
Un practicante de snowboard salta desde una colina. | |
Un perro marrón juega con una pelota en la arena. | |
Un niño con una camisa azul corre por un campo de hierba. | |
Un grupo de personas vestidas con trajes coloridos. |
Pytorch 0.4.1
[1] Mostrar y contar: un generador de subtítulos de imágenes neuronales (https://arxiv.org/abs/1411.4555)
[2] Mostrar, asistir y contar: generación de subtítulos de imágenes neuronales con atención visual (https://arxiv.org/abs/1502.03044)