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에서 직접 가져온 것입니다.

관련

  • 프로젝트
  • 프로젝트
  • 프로젝트
  • 프로젝트