Implémentation des réseaux de mémoire de bout en bout avec une interface de type Sklearn à l'aide de TensorFlow. Les tâches proviennent de l'ensemble de données BABL.
git clone [email protected]:domluna/memn2n.git
mkdir ./memn2n/data/
cd ./memn2n/data/
wget http://www.thespermwhale.com/jaseweston/babi/tasks_1-20_v1-2.tar.gz
tar xzvf ./tasks_1-20_v1-2.tar.gz
cd ../
python single.py
Exécuter une seule tâche Babi
Exécuter un modèle conjoint sur toutes les tâches Babi
Ces fichiers sont également un bon exemple d'utilisation.
Pour une tâche à réussir, il doit respecter la précision de 95% +. Mesuré sur des tâches uniques sur les données 1K.
Passer: 1,4,12,15,20
Plusieurs autres tâches ont une précision de test de 80% +.
Optimiseur de descente de gradient stochastique a été utilisé avec un calendrier de taux d'apprentissage recuit comme spécifié dans la section 4.2 des réseaux de mémoire de bout en bout
Les paramètres suivants ont été utilisés:
| Tâche | Précision de formation | Précision de validation | Exactitude des tests |
|---|---|---|---|
| 1 | 1.0 | 1.0 | 1.0 |
| 2 | 1.0 | 0,86 | 0,83 |
| 3 | 1.0 | 0,64 | 0,54 |
| 4 | 1.0 | 0,99 | 0,98 |
| 5 | 1.0 | 0,94 | 0,87 |
| 6 | 1.0 | 0,97 | 0,92 |
| 7 | 1.0 | 0,89 | 0,84 |
| 8 | 1.0 | 0,93 | 0,86 |
| 9 | 1.0 | 0,86 | 0,90 |
| 10 | 1.0 | 0,80 | 0,78 |
| 11 | 1.0 | 0,92 | 0,84 |
| 12 | 1.0 | 1.0 | 1.0 |
| 13 | 0,99 | 0,94 | 0,90 |
| 14 | 1.0 | 0,97 | 0,93 |
| 15 | 1.0 | 1.0 | 1.0 |
| 16 | 0,81 | 0,47 | 0,44 |
| 17 | 0,76 | 0,65 | 0,52 |
| 18 | 0,97 | 0,96 | 0,88 |
| 19 | 0,40 | 0,17 | 0,13 |
| 20 | 1.0 | 1.0 | 1.0 |
Passer: 1,6,9,10,12,13,15,20
Encore une fois, l'optimiseur de descente de gradient stochastique a été utilisé avec un calendrier de taux d'apprentissage recuit comme spécifié dans la section 4.2 des réseaux de mémoire de bout en bout
Les paramètres suivants ont été utilisés:
| Tâche | Précision de formation | Précision de validation | Exactitude des tests |
|---|---|---|---|
| 1 | 1.0 | 0,99 | 0,999 |
| 2 | 1.0 | 0,84 | 0,849 |
| 3 | 0,99 | 0,72 | 0,715 |
| 4 | 0,96 | 0,86 | 0,851 |
| 5 | 1.0 | 0,92 | 0,865 |
| 6 | 1.0 | 0,97 | 0,964 |
| 7 | 0,96 | 0,87 | 0,851 |
| 8 | 0,99 | 0,89 | 0,898 |
| 9 | 0,99 | 0,96 | 0,96 |
| 10 | 1.0 | 0,96 | 0,928 |
| 11 | 1.0 | 0,98 | 0,93 |
| 12 | 1.0 | 0,98 | 0,982 |
| 13 | 0,99 | 0,98 | 0,976 |
| 14 | 1.0 | 0,81 | 0,877 |
| 15 | 1.0 | 1.0 | 0,983 |
| 16 | 0,64 | 0,45 | 0,44 |
| 17 | 0,77 | 0,64 | 0,547 |
| 18 | 0,85 | 0,71 | 0,586 |
| 19 | 0,24 | 0,07 | 0.104 |
| 20 | 1.0 | 1.0 | 0,996 |
Les résultats des tâches uniques proviennent de 10 traces répétées du modèle de tâche unique à réaliser les 20 tâches avec différentes initialisations aléatoires. Les performances du modèle avec la précision de validation la plus faible pour chaque tâche sont indiquées dans le tableau ci-dessus.
Les résultats de la formation conjointe proviennent de 10 sentiers répétés du modèle conjoint accrocher toutes les tâches. Les performances du modèle unique dont la précision de validation ont passé le plus de tâches (> = 0,95) est indiquée dans le tableau ci-dessus (joint_scores_run2.csv). Les scores des 10 cycles sont situés dans les résultats / répertoires.