Table of Contents
Fetching ...

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

Jakub Bednarek, Krzysztof Krawiec

TL;DR

TransCoder, a method for solving abstract problems based on neural program synthesis, is presented, and a comprehensive analysis of decisions made by the generative module of the proposed architecture is conducted.

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.

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

TL;DR

TransCoder, a method for solving abstract problems based on neural program synthesis, is presented, and a comprehensive analysis of decisions made by the generative module of the proposed architecture is conducted.

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.
Paper Structure (13 sections, 6 figures, 4 tables)

This paper contains 13 sections, 6 figures, 4 tables.

Figures (6)

  • Figure 1: Examples from the Abstract Reasoning Corpus Dataset.
  • Figure 2: The overall architecture of TransCoder.
  • Figure 3: The autoencoder architecture used to pre-train the raster encoder in Perception. Left: the encoder (used in TransCoder after pre-training). Right: the decoder (used only in pre-training and then discarded).
  • Figure 4: The state diagram of TransCoder's training, including learning from mistakes.
  • Figure 5: Solving rate after each Reduction phase for TransCoder runs with different exploration and reduction parameters. The graph shows runs with different thresholds of the solved problem rate that trigger the transition from Reduction to Exploration.
  • ...and 1 more figures