ML-KULeuven/deepproblog

DeepProbLog is an extension of ProbLog that integrates Probabilistic Logic Programming with deep learning by introducing the neural predicate.

DeepProbLog – 神经概率逻辑编程

简介 – DeepProbLog通过添加神经谓词扩展了ProbLog概率逻辑编程语言。这些谓词的概率由神经网络产生,使您能够在单个模型中结合符号推理和深度学习感知。

主要组件

  • ProbLog集成 – 基于现有的ProbLog系统构建,用于定义概率逻辑程序。
  • 神经谓词 – 包装PyTorch模型(例如TorchVision的CNN),使谓词的真值成为学习到的概率。
  • 推理 – 通过底层ProbLog引擎支持精确推理,并在安装额外依赖(PySwip + SWI-Prolog)时支持可选的近似推理
  • 示例 – 仓库附带src/deepproblog/examples文件夹,包含相关研究论文中描述的实验。

安装

pip install deepproblog   # 拉取ProbLog、PySDD、PyTorch、TorchVision等。

测试还需要pytest,可以使用以下命令运行内置测试套件:

python -m deepproblog test

如果要使用近似推理模式,请安装额外的pyswip包,并确保系统中有SWI-Prolog。

用例 – 编写一个在不确定事实上进行推理的ProbLog程序,并让其中一些事实由神经网络(例如图像识别)分类。DeepProbLog将在对整个程序进行概率推理的同时训练神经组件。

出版物

  1. DeepProbLog: Neural Probabilistic Logic Programming (NeurIPS 2018)
  2. Neural Probabilistic Logic Programming in DeepProbLog (AIJ)
  3. Approximate Inference for Neural Probabilistic Logic Programming (KR 2021)

许可证 – Apache 2.0(KU Leuven,DTAI研究组)。


以上所有信息均直接来自仓库的README。

相关

  • 项目
  • 项目
  • 项目
  • 项目