paper-with-me

Papers

Learning programs by learning from failures

2020-05-05 · Andrew Cropper, Rolf Morel

We describe an inductive logic programming (ILP) approach called learning from failures. In this approach, an ILP system (the learner) decomposes the learning problem into three separate stages: generate, test, and constrain. In the generate stage, the learner generates a hypothesis (a logic program) that satisfies a set of hypothesis constraints (constraints on the syntactic form of hypotheses). In the test stage, the learner tests the hypothesis against training examples. A hypothesis fails when it does not entail all the positive examples or entails a negative example. If a hypothesis fails, then, in the constrain stage, the learner learns constraints from the failed hypothesis to prune the hypothesis space, i.e. to constrain subsequent hypothesis generation. For instance, if a hypothesis is too general (entails a negative example), the constraints prune generalisations of the hypothesis. If a hypothesis is too specific (does not entail all the positive examples), the constraints prune specialisations of the hypothesis. This loop repeats until either (i) the learner finds a hypothesis that entails all the positive and none of the negative examples, or (ii) there are no more hypotheses to test. We introduce Popper, an ILP system that implements this approach by combining answer set programming and Prolog. Popper supports infinite problem domains, reasoning about lists and numbers, learning textually minimal programs, and learning recursive programs. Our experimental results on three domains (toy game problems, robot strategies, and list transformations) show that (i) constraints drastically improve learning performance, and (ii) Popper can outperform existing ILP systems, both in terms of predictive accuracies and learning times.

📄 PDF Abstract BibTeX arXiv:2005.02259

Code (1)

logic-and-learning-lab/popper

Tasks

Inductive logic programming

Similar Papers 제목 키워드 기반

SPoC: Search-based Pseudocode to Code

2019-06-12 · NeurIPS 2019 12 · Sumith Kulal, Panupong Pasupat, Kartik Chandra, Mina Lee 외

We consider the task of mapping pseudocode to long programs that are functionally correct. Given test cases as a mechanism to validate programs, we search over the space of possible translations of the pseudocode to find…

Program SynthesisTranslation

Learning logic programs by explaining their failures

2021-02-18 · Rolf Morel, Andrew Cropper

Scientists form hypotheses and experimentally test them. If a hypothesis fails (is refuted), scientists try to explain the failure to eliminate other hypotheses. The more precise the failure analysis the more hypotheses …

Inductive logic programming

Evaluation-Strategy Gap in Fault Diagnosis of Deep Learning Programs

2026-06-25 · Sigma Jahan arxiv

Deep Learning (DL) programs can fail during training for many reasons, and diagnosing the cause is a costly and time-consuming maintenance task. Techniques for diagnosing such failures are commonly assessed using within-…

Fault Diagnosis

ViUniT: Visual Unit Tests for More Robust Visual Programming

2024-12-12 · CVPR 2025 1 · Artemis Panagopoulou, Honglu Zhou, Silvio Savarese, Caiming Xiong 외

Programming based approaches to reasoning tasks have substantially expanded the types of questions models can answer about visual scenes. Yet on benchmark visual reasoning data, when models answer correctly, they produce…

Image GenerationImage-text matchingQuestion AnsweringText Matching+2

Effectiveness of LLM-based Software Diversity for Reliability Improvement -- an Empirical Study

2026-07-03 · Gabriel Almeida, Ilir Gashi, Vladimir Stankovic, João R. Campos arxiv

Software diversity has been extensively studied as a means of reducing the risk of common-mode failures. Classic work showed that the central issue is whether failures of diversely redundant components overlap in ways th…

Code Generation