当前位置: X-MOL 学术Mach. Learn. › 论文详情
Our official English website, www.x-mol.net, welcomes your feedback! (Note: you will need to create a separate account there.)
Learning programs by learning from failures
Machine Learning ( IF 7.5 ) Pub Date : 2021-02-19 , DOI: 10.1007/s10994-020-05934-z
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.



中文翻译:

通过从失败中学习来学习程序

我们描述了一种归纳逻辑编程(ILP)方法,称为从失败中学习。在这种方法中,ILP系统(学习者)将学习问题分解为三个单独的阶段:生成测试约束。在生成阶段,学习者生成满足一组假设约束假设的句法形式的约束)的假设(逻辑程序)。在测试阶段,学习者根据训练示例对假设进行测试。假设失败当它不包含所有正面的例子或包含负面的例子时。如果假设失败,则在约束阶段,学习者从失败的假设中学习约束,以修剪假设空间,即约束后续假设的生成。例如,如果一个假设过于笼统(需要一个否定的例子),则约束会限制该假设的概括。如果假设过于具体(不一定包含所有肯定的例子),则约束会限制假设的专业化。这个循环重复进行,直到(i)学习者发现一个假设,其中包含所有肯定的例子,没有一个否定的例子,或者(ii)没有更多的假设要测试。我们介绍Popper,这是一个ILP系统,它通过结合答案集编程和Prolog来实现此方法。Popper支持无限的问题域,对列表和数字的推理,从文本上学习最少的程序以及学习递归程序。我们在三个领域(玩具游戏问题,机器人策略和列表转换)的实验结果表明(i)约束条件极大地提高了学习性能,并且(ii)Popper在预测准确性和学习时间方面都可以胜过现有的ILP系统。

更新日期:2021-02-19
down
wechat
bug