Pytorch Implémentation de réseaux relationnels - Un module de réseau neuronal simple pour le raisonnement relationnel
Implémenté et testé sur la tâche de type de cervelle.
La sorte de Clevr est une version simplifiée de Clevr.Ce est composé de 10000 images et 20 questions (10 questions relationnelles et 10 questions non relationnelles) par chaque image. 6 couleurs (rouge, vert, bleu, orange, gris, jaune) sont affectées à une forme choisie au hasard (carré ou cercle) et placées dans une image.
Les questions non relationnelles sont composées de 3 sous-types:
Ces questions sont "non relationnelles" car l'agent n'a qu'à se concentrer sur certains objets.
Les questions relationnelles sont composées de 3 sous-types:
Ces questions sont "relationnelles" parce que l'agent doit considérer les relations entre les objets.
Les questions sont codées dans un vecteur de taille de 11: 6 pour un vecteur à un hot pour certaines couleurs entre 6 couleurs, 2 pour un vecteur à un hot de questions relationnelles / non relationnelles. 3 pour un vecteur à un hot de 3 sous-types.

C'est-à-dire avec l'exemple d'image indiquée, nous pouvons générer des questions non relationnelles comme:
Et questions relationnelles:
Créer un environnement conda à partir du fichier d' environment.yml
$ conda env create -f environment.yml
Activer l'environnement
$ conda activate RN3
Si vous n'utilisez pas Conda Installez Python 3 normalement et utilisez pip install pour installer les dépendances restantes. La liste des dépendances se trouve dans le fichier environment.yml .
$ ./run.sh
ou
$ python sort_of_clevr_generator.py
Pour générer un ensemble de données de clôture et
$ python main.py
Pour entraîner le modèle Binary RN. Alternativement, utilisez
$ python main.py --relation-type=ternary
Pour entraîner le modèle RN ternaire.
Dans l'article d'origine, la tâche de type-Clevr a utilisé un modèle différent de la tâche Clevr. Cependant, comme le modèle utilisé CLEVR nécessite beaucoup moins de temps pour calculer (le réseau est beaucoup plus petit), ce modèle est utilisé pour la tâche de type de cervelle.
| Réseaux relationnels (20e époque) | CNN + MLP (sans RN, 100e époque) | |
|---|---|---|
| Question non relationnelle | 99% | 66% |
| Question relationnelle | 89% | 66% |
CNN + MLP s'est produit sur les données de formation.
Les réseaux relationnels montrent de bien meilleurs résultats dans des questions relationnelles et des questions de non-relation.
@GNGDB accélère le modèle par 10 fois.