Neural-guided, Bidirectional Program Search for Abstraction and Reasoning
This work addresses the problem of visual reasoning generalization for AI systems, presenting incremental progress on ARC with novel methods.
The paper tackles the challenge of systematic reasoning generalization in AI by proposing two approaches for the Abstraction and Reasoning Corpus (ARC), using DreamCoder for symbolic abstractions and a neural-guided bidirectional search algorithm with deductive reasoning, demonstrating effectiveness on ARC, 24-Game tasks, and a 'double-and-add' puzzle.
One of the challenges facing artificial intelligence research today is designing systems capable of utilizing systematic reasoning to generalize to new tasks. The Abstraction and Reasoning Corpus (ARC) measures such a capability through a set of visual reasoning tasks. In this paper we report incremental progress on ARC and lay the foundations for two approaches to abstraction and reasoning not based in brute-force search. We first apply an existing program synthesis system called DreamCoder to create symbolic abstractions out of tasks solved so far, and show how it enables solving of progressively more challenging ARC tasks. Second, we design a reasoning algorithm motivated by the way humans approach ARC. Our algorithm constructs a search graph and reasons over this graph structure to discover task solutions. More specifically, we extend existing execution-guided program synthesis approaches with deductive reasoning based on function inverse semantics to enable a neural-guided bidirectional search algorithm. We demonstrate the effectiveness of the algorithm on three domains: ARC, 24-Game tasks, and a 'double-and-add' arithmetic puzzle.