Skip to content

zrg1993/mac-graph

 
 

Repository files navigation

MacGraph with Population-based Training

The Population-based training code is imported from Genetic Curriculum experiment conducted at Octavian.AI. The idea of Population-based training originates from DeepMind.

The core codebase implements graph question answering (GQA), using CLEVR-graph as the dataset and MACnets as the reasoning architecture.

Project status

Apologies that the training data isn't available - I've yet to find a quick solution to this, when I get the system working on more questions I'll publish a stable "all question" dataset with 1M items. For now, you can easily build you own data - ask David for help.

ObjectiveStatusNotes
Basic MAC cell structure Complete Implemented as per paper, now diverging to achieve below objectives
Recall station (node) properties Complete 99.9% accuracy after 10k training steps
Answer if stations adjacent Complete 99% accuracy after 20k training steps
Stations one apart In progress
Station with property adjacent TBC
Count length of shortest path between nodes TBC

For more in-depth information about what works/doesn't work, check out the experiment log.

Running the code

See RUNNING.md for how to both run the network and also use a cluster to optimize its hyper-parameters.

The short summary of how to train locally:

$ pipenv install
$ pipenv shell
(mac-graph-sjOzWQ6Y) $ python -m macgraph.train

AOB

Acknowledgments

Thanks to Drew Hudson and Christopher Manning for publishing their work, Compositional Attention Networks for Machine Reasoning upon which this is based. Thanks also to DeepMind for publishing their Differentiable Neural Computer results in Nature with a demonstration of that architecture solving graph problems, it is a reassurance that this endeavor is not ill-founded.

A limerick

Since you're here.

There once was an old man of Esser,
Whose knowledge grew lesser and lesser,
It at last grew so small
He knew nothing at all
And now he's a college professor.

About

The MacGraph network. An attempt to get MACnets running on graph knowledge

Resources

License

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published

Languages

  • Python 95.4%
  • Shell 4.4%
  • Dockerfile 0.2%