IBM/LNN

A `Neural = Symbolic` framework for sound and complete weighted real-value logic

逻辑神经网络(LNN)

是什么 – LNN 是一个开源的 Python 库,实现了 逻辑神经网络,这是一种将神经网络的学习能力与符号逻辑的显式推理相结合的神经符号框架。每个神经元对应一个逻辑公式的组成部分,从而构建出一个完全可解释、可微分的模型,能够执行逻辑推理、定理证明,并处理不确定或不完整的知识。

核心思想

  • 神经符号表示 – 神经元携带加权的实数值真值,因此网络编码了一个加权逻辑公式。
  • 全向推理 – 系统可以回答任何查询,而不仅仅是预设的目标,通过在整个网络中传播真值边界实现。
  • 端到端可微分 – 使用自定义损失函数衡量逻辑矛盾,即使知识库中存在不一致,也能进行基于梯度的学习。
  • 开放世界语义 – 真值以区间(边界)形式保持,支持概率解释,并对缺失事实具有鲁棒性。

典型应用场景

  • 构建既需要从数据中学习又需要显式推理的 AI 系统(例如,知识图谱补全、基于规则的决策支持)。
  • 神经符号 AI、定理证明或可解释 AI 的研究,其中模型的可解释性至关重要。
  • 知识库可能存在噪声、矛盾或不完整,但仍需要一个可训练模型的场景。

快速入门

# 克隆并设置精确环境(需要 Python 3.11+)
git clone https://github.com/IBM/LNN
 cd LNN
uv sync --locked          # 安装运行时依赖
# 运行测试套件以验证安装
uv sync --locked --extra dev
uv run pytest -v

该仓库附带了在 Read the Docs 上托管的丰富文档、教程和 API 参考。

文档与资源

  • Read the Docs – 完整的用户指南、API 参考和示例:https://ibm.github.io/LNN/
  • 学术论文 – 原始 arXiv 论文及后续工作的链接。
  • 教育材料 – 面向新手的笔记本和引导教程。
  • 神经符号 AI 团队页面 – LNN 背后的研究团队背景信息。

许可证 – Apache 2.0(宽松,适合商业使用)。

引用 – 如果您在研究中使用 LNN,请引用 2020 年的 arXiv 论文:

@article{riegel2020logical,
  title={Logical neural networks},
  author={Riegel, Ryan and Gray, Alexander and Luus, Francois and Khan, Naweed and Makondo, Ndivhuwo and Akhalwaya, Ismail Yunus and Qian, Haifeng and Fagin, Ronald and Barahona, Francisco and Sharma, Udit and others},
  journal={arXiv preprint arXiv:2006.13155},
  year={2020}
}

相关

  • 项目
  • Dispatch
  • 项目
  • 项目
  • 项目