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將在對整個程式進行機率推理的同時訓練神經元件。
出版物
- DeepProbLog: Neural Probabilistic Logic Programming (NeurIPS 2018)
- Neural Probabilistic Logic Programming in DeepProbLog (AIJ)
- Approximate Inference for Neural Probabilistic Logic Programming (KR 2021)
授權 – Apache 2.0(KU Leuven,DTAI研究團隊)。
以上所有資訊均直接來自儲存庫的README。
相關
- 專案
- 專案
- 專案
- 專案