Recherche de site Web

Une introduction douce aux modèles de génération de sous-titres d'apprentissage profond


La génération de légendes est le problème difficile de l'intelligence artificielle consistant à générer une description textuelle lisible par l'homme à partir d'une photographie.

Cela nécessite à la fois une compréhension des images du domaine de la vision par ordinateur et un modèle de langage issu du domaine du traitement du langage naturel.

Il est important d’envisager et de tester plusieurs façons de formuler un problème de modélisation prédictive donné et il existe en effet de nombreuses façons de formuler le problème de la génération de légendes pour les photographies.

Dans ce didacticiel, vous découvrirez 3 manières de générer des légendes encadrantes et comment développer un modèle pour chacune.

Les trois modèles de génération de sous-titres que nous examinerons sont :

  • Modèle 1 : générer la séquence entière
  • Modèle 2 : générer Word à partir de Word
  • Modèle 3 : générer un mot à partir d'une séquence

Nous passerons également en revue certaines bonnes pratiques à prendre en compte lors de la préparation des données et du développement de modèles de génération de sous-titres en général.

Démarrez votre projet avec mon nouveau livre Deep Learning for Natural Language Processing, comprenant des tutoriels pas à pas et les fichiers code source Python. pour tous les exemples.

Commençons.

Modèle 1 : générer la séquence entière

La première approche consiste à générer la description textuelle complète de la photo à partir d'une photographie.

  • Entrée : Photographie
  • Sortie : description textuelle complète.

Il s'agit d'un modèle de prédiction de séquence un-à-plusieurs qui génère la totalité de la sortie en une seule fois.

Ce modèle impose une lourde charge au modèle de langage pour générer les bons mots dans le bon ordre.

La photographie passe par un modèle d'extraction de caractéristiques tel qu'un modèle pré-entraîné sur l'ensemble de données ImageNet.

Un encodage à chaud est utilisé pour la séquence de sortie, permettant au modèle de prédire la distribution de probabilité de chaque mot de la séquence sur l'ensemble du vocabulaire.

Toutes les séquences sont complétées à la même longueur. Cela signifie que le modèle est obligé de générer plusieurs pas de temps « aucun mot » dans la séquence de sortie.

En testant cette méthode, j'ai découvert qu'un très grand modèle de langage était nécessaire et même dans ce cas, il est difficile de dépasser le modèle générant l'équivalent NLP de la persistance, par ex. générer le même mot répété sur toute la longueur de la séquence comme sortie.

Modèle 2 : générer Word à partir de Word

Il s'agit d'une approche différente dans laquelle le LSTM génère une prédiction d'un mot à partir d'une photographie et d'un mot en entrée.

  • Entrée 1 : Photographie.
  • Entrée 2 : mot généré précédemment ou jeton de début de séquence.
  • Sortie : mot suivant dans la séquence.

Il s'agit d'un modèle de prédiction de séquence un à un qui génère la description textuelle via des appels récursifs au modèle.

L'entrée d'un mot est soit un jeton pour indiquer le début de la séquence dans le cas du premier appel du modèle, soit le mot généré à partir de la fois précédente où le modèle a été appelé.

La photographie passe par un modèle d'extraction de caractéristiques tel qu'un modèle pré-entraîné sur l'ensemble de données ImageNet. Le mot d’entrée est codé en nombre entier et passe par une intégration de mots.

Le mot de sortie est codé à chaud pour permettre au modèle de prédire les probabilités des mots sur l'ensemble du vocabulaire.

Le processus de génération de mots récursif est répété jusqu'à ce qu'un jeton de fin de séquence soit généré.

En testant cette méthode, j'ai découvert que le modèle génère de bonnes séquences de n-grammes, mais se retrouve pris dans une boucle répétant les mêmes séquences de mots pour de longues descriptions. La mémoire du modèle est insuffisante pour mémoriser ce qui a été généré précédemment.

Modèle 3 : générer un mot à partir d'une séquence

Étant donné une photographie et une séquence de mots déjà générée pour la photographie en entrée, prédisez le mot suivant dans la description.

  • Entrée 1 : Photographie.
  • Entrée 2 : séquences de mots générées précédemment ou jeton de début de séquence.
  • Sortie : mot suivant dans la séquence.

Il s'agit d'un modèle de prédiction de séquence plusieurs-à-un qui génère une description textuelle via des appels récursifs au modèle.

Il s'agit d'une généralisation du modèle 2 ci-dessus dans lequel la séquence de mots d'entrée donne au modèle un contexte pour générer le mot suivant dans la séquence.

La photographie passe par un modèle d'extraction de caractéristiques tel qu'un modèle pré-entraîné sur l'ensemble de données ImageNet. La photographie peut être fournie à chaque pas de temps avec la séquence, ou une fois au début, ce qui peut être l'approche préférée.

La séquence d'entrée est complétée selon une longueur fixe et codée en nombre entier pour passer par une intégration de mots.

Le mot de sortie est codé à chaud pour permettre au modèle de prédire les probabilités des mots sur l'ensemble du vocabulaire.

Le processus de génération de mots récursif est répété jusqu'à ce qu'un jeton de fin de séquence soit généré.

Cela semble être le modèle préféré décrit dans les articles sur le sujet et pourrait être la meilleure structure dont nous disposons pour ce type de problème pour le moment.

En testant cette méthode, j'ai constaté que le modèle génère facilement des descriptions lisibles, dont la qualité est souvent affinée par des modèles plus grands entraînés plus longtemps. La clé de la compétence de ce modèle réside dans le masquage des séquences d’entrée complétées. Sans masquage, les séquences de mots générées qui en résultent sont terribles, par ex. le jeton de fin de séquence est répété encore et encore.

Meilleures pratiques de modélisation

Cette section répertorie quelques conseils généraux lors du développement de modèles de génération de sous-titres.

  • Modèle d'extraction de caractéristiques photo pré-entraîné. Utilisez un modèle d'extraction de caractéristiques photo pré-entraîné sur un grand ensemble de données comme ImageNet. C’est ce qu’on appelle l’apprentissage par transfert. Les modèles d'Oxford Vision Geometry Group (VGG) qui ont remporté le concours ImageNet en 2014 sont un bon début.
  • Modèle d'intégration de mots pré-entraîné. Utilisez un modèle d'intégration de mots pré-entraîné avec des vecteurs soit formés sur un corpus de taille moyenne, soit formés sur vos données textuelles spécifiques.
  • Affiner les modèles pré-entraînés. Essayez de rendre les modèles pré-entraînés pouvant être entraînés dans votre modèle pour voir s'ils peuvent être intégrés à votre problème spécifique et entraîner une légère amélioration des compétences.
  • Texte de pré-traitement. Pré-traitez les descriptions textuelles pour réduire le vocabulaire des mots afin de générer, et par conséquent, la taille du modèle.
  • Prétraitement des photos. Prétraitez les photos pour le modèle d'extraction de caractéristiques photo, et même pré-extraitez les caractéristiques afin que le modèle d'extraction de caractéristiques complète ne soit pas requis lors de la formation de votre modèle.
  • Texte de remplissage. Pad des séquences d'entrée à une longueur fixe ; c'est en fait une exigence pour vectoriser votre entrée pour les bibliothèques d'apprentissage en profondeur.
  • Rembourrage de masquage. Utilisez le masquage sur le calque d'intégration pour ignorer les pas de temps « aucun mot », souvent une valeur nulle lorsque les mots sont codés en entiers.
  • Attention. Portez votre attention sur la séquence d'entrée lors de la génération du mot de sortie afin à la fois d'obtenir de meilleures performances et de comprendre où le modèle « regarde » lorsque chaque mot est généré.
  • Évaluation. Évaluez le modèle à l'aide de mesures de traduction de texte standard telles que BLEU et comparez les descriptions générées avec plusieurs légendes d'images de référence.

Avez-vous vos propres bonnes pratiques pour développer des modèles de sous-titrage robustes ?
Faites-le moi savoir dans les commentaires ci-dessous.

Lectures complémentaires

Cette section fournit plus de ressources sur le sujet si vous cherchez à approfondir.

  • Montrer et raconter : un générateur de légendes d'images neuronales, 2015.
  • Montrer, assister et raconter : génération de légendes d'images neuronales avec attention visuelle, 2015.
  • Où placer l'image dans un générateur de légende d'image, 2017.
  • Génération automatique de descriptions à partir d'images : une étude des modèles, des ensembles de données et des mesures d'évaluation, 2016.

Résumé

Dans ce didacticiel, vous avez découvert 3 modèles de prédiction de séquence qui peuvent être utilisés pour résoudre le problème de la génération de descriptions textuelles lisibles par l'homme pour les photographies.

Avez-vous expérimenté l'un de ces modèles ?
Partagez vos expériences dans les commentaires ci-dessous.

Avez-vous des questions ?
Posez vos questions dans les commentaires ci-dessous et je ferai de mon mieux pour y répondre.

Articles connexes