把神经符号学习统一到一个可微框架里,在 MNIST 加法上比 LTN 和 DeepProbLog 又快又准,还兼容 PyTorch。
NeSyCat Torch 扩展了 ULLER 框架,通过强单子和真值聚合结构统一了经典、模糊、概率和神经语义。该实现使用分布单子进行参考语义和度量评估,并引入惰性对数张量单子实现数值稳定可微训练。在 MNIST 加法任务上,基于 HaskTorch、JAX 和 PyTorch 的实现比 LTN 和 DeepProbLog 更快且准确率更高,同时达到接近 DeepStochLog 的精度。该框架保持单子参数化,未来可扩展至连续概率(如 Giry 单子)。
NeSyCat Torch: A Differentiable Tensor Implementation of Categorical Semantics for Neurosymbolic Learning
Neurosymbolic semantics is fragmented: classical, fuzzy, probabilistic and neural systems each define truth by their own inductive rules. NeSyCat, extending ULLER, subsumes them under a single inductive definition of truth, parametric in a strong monad and an aggregation structure on truth-values. NeSyCat has so far lacked an account of predicates and functions learned by neural networks. We provide NeSyCat Torch as the missing link and interpret computational symbols via neural networks, implementing the framework in probabilistic programming and tensor-based backends. We use the distribution monad for reference semantics and metric evaluation, and complement it by a monad for numerically stable, differentiable training: the lazy log-tensor monad over the log-semiring. For efficient training in batches, we furthermore employ a batch monad. The axioms are the source code: written once in monad-based do-notation, monadic bind performs marginalisation, lazily pruning unneeded branches. On MNIST addition, our HaskTorch, JAX, and PyTorch implementations outperform LTN and DeepProbLog in speed and accuracy, while achieving nearly the accuracy of DeepStochLog. However, unlike DeepStochLog, we stay in a uniform framework that applies to many first-order NeSy approaches. Namely, the construction is parametric in the monad; instantiating it with, e.g., the Giry monad extends the approach to continuous probability (working out a neural representation here is left for future work).