Implementação de redes de memória de ponta a ponta com interface do tipo Sklearn usando o TensorFlow. As tarefas são do conjunto de dados 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
Executando uma única tarefa de babi
Executando um modelo conjunto em todas as tarefas de babi
Esses arquivos também são um bom exemplo de uso.
Para que uma tarefa passasse, deve atender à precisão de 95%+ testes. Medido em tarefas únicas nos dados 1K.
Pass: 1,4,12,15,20
Várias outras tarefas têm precisão de 80%de teste.
O otimizador de descida de gradiente estocástico foi usado com um cronograma de taxa de aprendizado recozida, conforme especificado na Seção 4.2 das redes de memória de ponta a ponta
Os seguintes parâmetros foram usados:
| Tarefa | Precisão do treinamento | Precisão de validação | Precisão do teste |
|---|---|---|---|
| 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 |
Pass: 1,6,9,10,12,13,15,20
Novamente, o otimizador de descida de gradiente estocástico foi usado com um cronograma de taxa de aprendizado recozida, conforme especificado na Seção 4.2 das redes de memória de ponta a ponta
Os seguintes parâmetros foram usados:
| Tarefa | Precisão do treinamento | Precisão de validação | Precisão do teste |
|---|---|---|---|
| 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 |
Os resultados de tarefas únicas são de 10 trilhas repetidas do modelo de tarefa única, que acumula todas as 20 tarefas com diferentes inicializações aleatórias. O desempenho do modelo com a menor precisão de validação para cada tarefa é mostrado na tabela acima.
Os resultados do treinamento conjunto são de 10 trilhas repetidas do modelo conjunto que acumula todas as tarefas. O desempenho do modelo único cuja precisão de validação passou mais tarefas (> = 0,95) é mostrada na tabela acima (junta_scores_run2.csv). As pontuações de todas as 10 execuções estão localizadas nos resultados/ diretórios.