Learning to Solve Abstract Reasoning Problems with Neurosymbolic Program Synthesis and Task Generation

Jakub Bednarek, Krzysztof Krawiec
10/6/2024
cs.AIcs.SC

No confident code implementation found for this paper. 2 possible matches can be shown below.

Abstract

The ability to think abstractly and reason by analogy is a prerequisite to rapidly adapt to new conditions, tackle newly encountered problems by decomposing them, and synthesize knowledge to solve problems comprehensively. We present TransCoder, a method for solving abstract problems based on neural program synthesis, and conduct a comprehensive analysis of decisions made by the generative module of the proposed architecture. At the core of TransCoder is a typed domain-specific language, designed to facilitate feature engineering and abstract reasoning. In training, we use the programs that failed to solve tasks to generate new tasks and gather them in a synthetic dataset. As each synthetic task created in this way has a known associated program (solution), the model is trained on them in supervised mode. Solutions are represented in a transparent programmatic form, which can be inspected and verified. We demonstrate TransCoder's performance using the Abstract Reasoning Corpus dataset, for which our framework generates tens of thousands of synthetic problems with corresponding solutions and facilitates systematic progress in learning.

View on arXivView PDF

Code Implementations

No confident code match yet

We couldn't find an author-owned or strongly-evidenced community implementation for this paper. 2 weaker matches are hidden by default — verify before relying on them.

No code implementations found yet.

Know of an implementation? Let us know in the comments below!

Similar Papers

Cite this paper

@article{bednarek2024learning,
  title  = {Learning to Solve Abstract Reasoning Problems with Neurosymbolic Program Synthesis and Task Generation},
  author = {Jakub Bednarek and Krzysztof Krawiec},
  year   = {2024},
  eprint = {2410.04480},
  archivePrefix = {arXiv},
  url    = {http://arxiv.org/abs/2410.04480v1}
}

Add a badge to your README

Shows whether official code is linked for this paper.

Code of Paper badge
[![Code of Paper](https://codeofpaper.com/badge/2410.04480.svg)](https://codeofpaper.com/paper/2410.04480)

Discussion