L'examen de l'architecture du DNC montre en effet de nombreuses similitudes avec le LSTM . Considérez le diagramme de l'article DeepMind auquel vous avez lié:
Comparez cela à l'architecture LSTM (crédit à ananth sur SlideShare):
Il y a quelques analogues proches ici:
- Tout comme le LSTM, le DNC effectuera une conversion de l' entrée en vecteurs d'état de taille fixe ( h et c dans le LSTM)
- De même, le DNC effectuera une conversion de ces vecteurs d'état de taille fixe en sortie potentiellement de longueur arbitraire (dans le LSTM, nous échantillonnons à plusieurs reprises de notre modèle jusqu'à ce que nous soyons satisfaits / le modèle indique que nous avons terminé)
- Les portes d’ oubli et d’ entrée du LSTM représentent l’ opération d’ écriture dans le DNC (l’oubli consiste essentiellement à mettre à zéro ou partiellement à zéro la mémoire)
- La porte de sortie du LSTM représente l' opération de lecture dans le DNC
Cependant, le DNC est certainement plus qu'un LSTM. De toute évidence, il utilise un état plus grand qui est discrétisé (adressable) en morceaux; cela lui permet de rendre la porte d'oubli du LSTM plus binaire. J'entends par là que l'état n'est pas nécessairement érodé par une fraction à chaque pas de temps, alors que dans le LSTM (avec la fonction d'activation sigmoïde), il l'est nécessairement. Cela pourrait réduire le problème d'oubli catastrophique que vous avez mentionné et ainsi mieux évoluer.
Le DNC est également nouveau dans les liens qu'il utilise entre la mémoire. Cependant, cela pourrait être une amélioration plus marginale du LSTM qu'il n'y paraît si nous ré-imaginons le LSTM avec des réseaux neuronaux complets pour chaque porte au lieu d'une seule couche avec une fonction d'activation (appelons cela un super-LSTM); dans ce cas, nous pouvons réellement apprendre toute relation entre deux emplacements en mémoire avec un réseau suffisamment puissant. Bien que je ne connaisse pas les détails des liens suggérés par DeepMind, ils impliquent dans l'article qu'ils apprennent tout simplement en rétropropagantant des gradients comme un réseau neuronal régulier. Par conséquent, quelle que soit la relation qu'ils codent dans leurs liens, cela devrait théoriquement être apprenable par un réseau de neurones, et donc un «super-LSTM» suffisamment puissant devrait être capable de le capturer.
Cela étant dit , il est souvent le cas en apprentissage profond que deux modèles ayant la même capacité théorique d'expressivité fonctionnent très différemment dans la pratique. Par exemple, considérons qu'un réseau récurrent peut être représenté comme un énorme réseau à action directe si nous le déroulons. De même, le réseau convolutionnel n'est pas meilleur qu'un réseau neuronal vanille car il a une capacité supplémentaire d'expressivité; en fait, ce sont les contraintes imposées à ses poids qui le rendent plus efficace. Ainsi, comparer l'expressivité de deux modèles n'est pas nécessairement une comparaison équitable de leurs performances dans la pratique, ni une projection précise de la façon dont ils évolueront.
Une question que j'ai sur le DNC est ce qui se passe quand il manque de mémoire. Lorsqu'un ordinateur classique manque de mémoire et qu'un autre bloc de mémoire est demandé, les programmes se bloquent (au mieux). Je suis curieux de voir comment DeepMind prévoit de résoudre ce problème. Je suppose qu'il s'appuiera sur une cannibalisation intelligente de la mémoire actuellement utilisée. Dans un certain sens, les ordinateurs le font actuellement lorsqu'un système d'exploitation demande que les applications libèrent de la mémoire non critique si la pression de la mémoire atteint un certain seuil.