1. 摘要 📝
神经符号多被预测为下一代人工智能的潜在形式之一,近年来开展神经符号领域的研究愈来愈热门。逻辑张量网络作为神经符号紧耦合的一种形式,其核心价值,可以用人类可理解的逻辑规则,去约束神经网络的黑盒学习过程,让模型不仅能拟合数据,还能符合业务常识和先验知识。本篇将介绍逻辑张量网络的基本概念,作为逻辑张量网络(Logic Tensor Networks, LTN)入门篇,在介绍的过程中,也会穿插一些本人的思考、问题及答案(T&Q&A)🔍。
2. 前言 🧩
LTN有很多涉及到标准一阶逻辑的基础内容,标准一阶逻辑是LTN的「理论母体」:LTN 的所有符号体系、语法规则、推理逻辑,都完全继承自标准一阶逻辑,只是把经典的二值离散语义,扩展成了连续、张量化、可微的实值语义。而在扩展的过程中,用到了模糊逻辑领域的模糊连接算子、模糊聚合算子。
2.1 什么是标准一阶逻辑? 🤔
标准一阶逻辑(First-Order Logic, 简称 FOL,也叫一阶谓词逻辑、经典一阶逻辑),是一套把人类的自然语言推理、数学证明转化为无歧义、可严格验证、可机械推导的符号规则的数学框架。
2.1.1 “一阶”是什么意思?
“一阶”决定了表达边界:逻辑中的量词(“所有”、“存在”)只能用来量化「个体变量」,不能量化「谓词、函数、集合」。
- 一阶合法表达:(所有的人都会呼吸),这里量词只量化了个体变量;
- 超一阶的二阶表达:(所有谓词都满足排中律),这里量词量化了谓词,超出了一阶逻辑的范围。
2.1.2 标准一阶逻辑的核心组成 📋
标准一阶逻辑的完整体系分为4部分:
① 符号系统 📝
分为两大类:
| 符号类型 | 包含内容 | 核心特点 |
|---|---|---|
| 逻辑符号 | 连接词()、量词() | 含义是逻辑系统固定不变的,和具体任务、论域无关,是通用的推理规则 |
| 非逻辑符号 | 常量、变量、函数、谓词 | 含义是自定义、任务相关的,逻辑系统不预设它的意义,必须通过「解释/接地(Grounding)」赋予具体含义 |
② 语法规则 📏
定义了什么样的符号组合是「合法的逻辑公式(合式公式)」,比如是合法公式,不是合法公式。
③ 语义规则 🌐
给抽象的符号公式赋予真假含义,核心是「论域 + 解释函数」:
- 论域:逻辑中所有个体的取值范围,是一个离散的集合(比如、);
- 解释函数:给每个非逻辑符号赋予论域里的具体含义——常量映射为论域里的个体,谓词映射为论域上的二值关系,函数映射为论域上的离散函数;
- 最终结果:每个合法公式都会被赋予{真(1), 假(0)}两个绝对的真值,没有中间值。
④ 推理规则 🧑🏫
定义了从真前提推导出真结论的机械规则(比如经典的肯定前件MP规则:如果为真,且为真,那么一定为真),保证推理过程完全无歧义、可验证,甚至可以由计算机自动执行。
2.2 模糊逻辑 🌀
2.2.1 模糊逻辑算子
- 为什么需要模糊连接算子和模糊聚合算子?
FOL的连接词(否定、合取、析取、蕴含)是二值的,只能处理{0,1}的真假。同样,FOL的量词(全称量词“所有”、存在量词“存在”)也是二值的:只有“所有x都为真”才输出1,否则输出0;只要有一个x为真就输出1,否则输出0。
这种情况无法处理LTN中的连续真度,也无法求导。
- 两个算子的本质:
-
模糊连接算子,是把二值逻辑的连接词,扩展成区间上的连续、可微函数,用来计算复合逻辑公式的真度。
-
有两个谓词的真度、,模糊连接算子就是告诉你,怎么计算、、、的复合真度,而且计算过程是可微的。
-
模糊聚合算子,是把二值量词扩展成区间上的连续、可微聚合函数,用来计算带量词的逻辑公式的整体真度。
-
有一个变量,它有个取值,对应个真度,模糊聚合算子就是告诉你,怎么把这个真度聚合成一个整体的真度,代表“”或“”的满足程度,而且聚合过程是可微的。
-
3. 基本概念 🔑
3.1 Real Logic(实逻辑)
实值逻辑定义了Grounding的概念(区别于传统逻辑学中的Grounding概念),其本质是将逻辑域(即常量、变量和逻辑符号)映射至实数域中的张量,或基于张量的运算操作。这类运算可以是数学函数,也可以是可学习的神经网络。换言之,接地映射(记为)是一种将逻辑符号映射为实值张量或张量运算的函数。
首先介绍逻辑张量网络(LTN)的语义,即LTN对逻辑符号(常量、变量、谓词、公式等)的“含义解释规则”,与标准一阶逻辑不同,LTN的域是通过实数域中的张量来进行具体化解释的。
为了强调LTN通过实数特征来对符号进行解释,我们使用术语(中文翻译:接地)来代表这一过程,符号表示为:。可以将一个实数张量与逻辑中的任意符号相关联,也可以把逻辑公式映射到区间的实数值。Grounding可以理解为LTN的「语义解释函数」——它给每一个逻辑符号,都赋予一个实数张量 / 可微函数的实际含义;
T&Q&A:为什么必须把逻辑公式映射成实数值?
这是LTN能把逻辑规则和深度学习结合的核心前提:
- 逻辑公式是符号的组合:比如,这只是一串抽象的符号组合,本身不能被优化、不能参与梯度下降;
- 映射成实数值 = 给公式赋予可优化的语义:通过Grounding,把公式映射成区间的实数值(真度),这个值代表「这个逻辑规则被满足的程度」——越接近1,代表规则越被满足;越接近0,代表规则被违反;
- 实现端到端训练:这个实数值是可微的,我们可以把「最大化公式的真度」作为优化目标,用梯度下降更新模型参数,最终让逻辑规则约束深度学习模型的学习过程。
Real Logic由非逻辑部分(符号)、逻辑连接词和量词组成:
-
常量:表示某个张量空间中的个体 (任意阶数的张量)。这些格式可以是预定义的(数据、数据点)或者是可学习的(嵌入向量)。
-
变量:表示个体的序列。
-
函数:可以是任何数学函数,即可以是预定义,也可以是可学习的。
-
可以是无训练参数的特征变换、距离函数、回归函数
-
也可以使用pytorch中的任意操作来定义,实现可训练的特征映射、目标拟合,参数可通过梯度下降优化。例如线性函数、深度神经网络
-
-
谓词:表示从某个n元域映射到实数值区间的数学函数「打分函数」,可以理解为真度(满足程度)。
- 真度的理解可以放到实际任务中,例如,谓词可以是相似度度量,那么谓词的结果可以理解为相似程度。谓词也可以是分类器,那么谓词的结果可以理解为属于这个类别的置信度。
-
连接词:()使用模糊连接算子来建模。
-
量词:使用模糊聚合算子来定义。
T&Q&A:跟我们平时理解的常量、变量、函数、谓词,差别是什么?
平时我们理解的是「纯符号/纯数值的通用定义」,而LTN里的这四类概念,是为可微逻辑推理量身定制的、张量化、带严格语义绑定的特化版本。
四类概念核心差异汇总表:
| 核心概念 | 日常通用定义(数学/编程/标准一阶逻辑) | LTN 中的特化定义 |
|---|---|---|
| 常量 | 固定的数值/对象,比如数学里的、编程里的a=3,只能是固定值,不可学习 | 不仅可以是预定义的固定张量,还可以是可学习的嵌入向量(比如nn.Embedding的输出);是任意阶的实数张量,核心是「逻辑个体的张量化表示」,而非单纯的固定值 |
| 变量 | 单个值的占位符,比如数学里的、编程里的循环变量,一次只能代表一个值 | 是一批个体的序列(Batch),对应论域里的一组样本,不是单个占位符;自带维度语义,会自动完成笛卡尔积配对,核心是「论域中一批个体的张量化表示」,用来做量词聚合、批量逻辑推理 |
| 函数 | 任意输入到输出的映射,无类型约束,比如数学里的、编程里的任意自定义函数,输出可以是任意类型 | 必须是张量空间到张量空间的可微映射,输入输出只能是实数张量;必须保留变量的维度语义(笛卡尔积结构不展平);核心是「逻辑项的可微特征变换」,输出的还是逻辑个体,而非真度 |
| 谓词 | 标准一阶逻辑中定义的n元离散关系,输入n个个体,输出只有{0,1}二值真假,比如数学里的,只有“是/否”两种结果 | 是n元张量到区间的可微函数,输出的是连续的「真度」,而非二值真假;核心是「逻辑命题的可微满意度打分」,是连接逻辑规则和深度学习的核心桥梁 |
:Grounding的理解,中文文献中翻译成接地,听着很拗口,其实可以理解成对一种转换关系的称呼,例如映射。本文直接使用原始的英文表述。
下一篇博客将结合代码和简单示例来讲解一下,常量、变量、函数、谓词四类非逻辑符号以及连接词和量词这两类逻辑符号的 Grounding 规则,明确其从抽象符号到实数张量空间的语义映射方式。
补充问答(Q&A) ❓
Q:LTN 中的 Grounding(接地)和传统逻辑学中的 Grounding 有什么本质区别?
A:两者核心差异在于「映射目标和用途不同」。传统逻辑学中的Grounding,是将抽象符号映射到「离散的论域个体」(比如把“猫”映射到现实中的猫,把谓词“可爱”映射到{0,1}二值关系),目的是给符号赋予“真假意义”,用于逻辑推理;而LTN中的Grounding,是将抽象符号映射到「实数域的张量或可微函数」(比如把“猫”映射到嵌入向量,把谓词“可爱”映射到[0,1]的真度函数),目的是让逻辑公式可微、可优化,实现逻辑规则与深度学习的结合。
Q:实逻辑(Real Logic)和标准一阶逻辑的核心区别是什么?
A:最核心的区别是「语义体系不同」,具体有3点:① 论域不同:标准一阶逻辑的论域是离散集合,实逻辑的论域是实数张量空间;② 真值范围不同:标准一阶逻辑是二值(0/1),实逻辑是连续真度([0,1]);③ 可微性不同:标准一阶逻辑的公式无导数,无法优化,实逻辑的公式通过模糊算子和Grounding映射,变成可微函数,可通过梯度下降优化。简单说,实逻辑是“可微化、张量化的一阶逻辑”,是LTN实现神经符号结合的核心基础。