logic-and-learning-lab/Popper
An inductive logic programming system
解决的问题
Popper 是一个归纳逻辑编程(ILP)系统,允许计算机从一组示例和现有的背景知识中学习逻辑规则。它自动化了发现解释特定关系的底层逻辑的过程,例如基于亲子数据识别“祖父母”规则。
工作原理
Popper 接受三个主要输入:包含正例和负例的文件、包含已知事实的背景知识(BK)文件,以及定义搜索空间的偏差文件(指定规则头或体中可以使用的谓词)。它使用 CPSAT 或 NuWLS 等求解器,寻找最简单的符合数据的逻辑规则。它可以通过 --noisy 标志处理噪声数据,并支持递归和类型注解等高级逻辑功能,以优化搜索过程。
适用人群
专为具有 Prolog 背景的符号 AI、逻辑编程和自动规则发现领域的研究人员和开发者设计。
主要亮点
- 递归规则学习:能够学习谓词自身引用自身的规则。
- 噪声数据处理:通过
--noisy标志,可从不完美数据中学习。 - C-SAT 和 NuWLS 集成:支持高性能求解器,加速规则发现过程。
- 可自定义约束:支持使用类型和方向注解,显著减少学习时间并提高准确性。
相关
- 项目
- 项目
- 项目
- 项目
- Dispatch