Implementación de redes de memoria de extremo a extremo con interfaz similar a Sklearn usando TensorFlow. Las tareas son del conjunto de datos 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
Ejecutar una sola tarea de Babi
Ejecutar un modelo conjunto en todas las tareas de Babi
Estos archivos también son un buen ejemplo de uso.
Para una tarea que pasará, debe cumplir con la precisión del 95%+ de las pruebas. Medido en tareas individuales en los datos 1K.
Pase: 1,4,12,15,20
Varias otras tareas tienen más del 80%de precisión de prueba.
El optimizador de descenso de gradiente estocástico se utilizó con un programa de tasa de aprendizaje recocido como se especifica en la Sección 4.2 de las redes de memoria de extremo a extremo
Se utilizaron los siguientes parámetros:
| Tarea | Precisión del entrenamiento | Precisión de validación | Prueba de precisión |
|---|---|---|---|
| 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 |
Pase: 1,6,9,10,12,13,15,20
Nuevamente, el optimizador de descenso de gradiente estocástico se usó con un programa de tasa de aprendizaje recocido como se especifica en la Sección 4.2 de las redes de memoria de extremo a extremo
Se utilizaron los siguientes parámetros:
| Tarea | Precisión del entrenamiento | Precisión de validación | Prueba de precisión |
|---|---|---|---|
| 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 |
Los resultados de una sola tarea provienen de 10 senderos repetidos del modelo de tarea única, las 20 tareas con diferentes inicializaciones aleatorias. El rendimiento del modelo con la precisión de validación más baja para cada tarea se muestra en la tabla anterior.
Los resultados de la capacitación conjunta son de 10 senderos repetidos del modelo conjunto que acumulan todas las tareas. El rendimiento del modelo único cuya precisión de validación pasó la mayoría de las tareas (> = 0.95) se muestra en la tabla anterior (conjuntas_scores_run2.csv). Los puntajes de las 10 corridas se encuentran en los resultados/ directorio.