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から直接取得されています。

関連

  • プロジェクト
  • プロジェクト
  • プロジェクト
  • プロジェクト