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에서 직접 가져온 것입니다.
관련
- 프로젝트
- 프로젝트
- 프로젝트
- 프로젝트