(《机器学习》完整版系列)第15章 规则学习——15.10 归纳逻辑程序设计之逆归结

在命题逻辑中我们讨论了归结与逆归结,这里我们将其推广到一阶逻辑中
一阶逻辑的归结、逆归结通常用到“置换”和“合一”操作
逆结归的特点之一就是能自动发明新谓词,但新谓词的语义需要领域知识进行理解

逆归结

在命题逻辑中我们讨论了归结与逆归结,这里我们将其推广到一阶逻辑中,

逆归结操作定义了四种【西瓜书式(15.10)   ∼ \,\thicksim (15.13)】,分别是吸收、辨识、内构和互构。 其中,小写字母表示逻辑文字,大写字母表示合取式的逻辑子句,“分数” X Y \frac{X}{Y} YX的意义同图~\ref{fig:fig15-7}(但不是真正分数),特点:

  • “分子” X X X中的子句,要么是“分母” Y Y Y的归结项,要么是 Y Y Y的某子句的等价项。
  • “分母” Y Y Y中的子句,是由“分子” X X X中的子句逆归结出来的知识,记为 X ⊢ Y X\vdash Y XY X X X推出 Y Y Y),而出现的新逻辑文字(如,互构中的 r r r),则看作学到的新命题。

这些操作的推导要用到逻辑代数知识,这里以“吸收”操作为例,进行推导示例:

观察【西瓜书式(15.10)】,只须求出图15.9 中的 C 2 C_2 C2 p ← ( B ∧ q ) p\leftarrow (B\land q) p(Bq)即可。
图15.9 吸收的推导

图15.9 吸收的推导

C = p ← A ∧ B = p ∨ ( ¬ ( A ∧ B ) ) (由式(15.14)) = p ∨ ( ( ¬ A ) ∨ ( ¬ B ) ) ) = p ∨ ¬ A ∨ ¬ B C 1 = q ← A = q ∨ ( ¬ A ) (由式(15.14)) = q ∨ ¬ A \begin{align} C & =p\leftarrow A\land B\notag \\ & =p\lor(\lnot (A\land B)) \text{(由式(15.14))}\notag \\ & =p\lor((\lnot A)\lor (\lnot B)))\notag \\ & =p\lor\lnot A\lor \lnot B \tag{15.27} \\ C_1 & =q\leftarrow A\notag \\ & =q\lor(\lnot A) \text{(由式(15.14))}\notag \\ & =q\lor\lnot A \tag{15.28} \end{align} CC1=pAB=p(¬(AB))(由式(15.14)=p((¬A)(¬B)))=p¬A¬B=qA=q(¬A)(由式(15.14)=q¬A(15.27)(15.28)

L = q L=q L=q,并将式(15.27)、式(15.28)代入式(15.13)有
C 2 = ( C − ( C 1 − { L } ) ) ∨ { ¬ L } = ( ( p ∨ ¬ A ∨ ¬ B ) − ( ( q ∨ ¬ A ) − { q } ) ) ∨ { ¬ q } = ( p ∨ ( ¬ A ) ∨ ( ¬ B ) ) − ( ¬ A ) ) ∨ { ¬ q } = p ∨ ( ¬ B ) ) ∨ { ¬ q } = p ∨ ( ¬ ( B ∧ q ) ) = p ← ( B ∧ q ) (由式(15.14)) \begin{align} C_2 & =(C-(C_1-\{L \}))\lor \{\lnot L \}\notag \\ & =((p\lor\lnot A\lor \lnot B)-((q\lor\lnot A)-\{q \}))\lor \{\lnot q \}\notag \\ & =(p\lor(\lnot A)\lor (\lnot B))-(\lnot A))\lor \{\lnot q \}\notag \\ & =p\lor (\lnot B))\lor \{\lnot q \}\notag \\ & =p\lor( \lnot (B\land q))\notag \\ & =p\leftarrow (B\land q) \text{(由式(15.14))} \tag{15.29} \end{align} C2=(C(C1{L})){¬L}=((p¬A¬B)((q¬A){q})){¬q}=(p(¬A)(¬B))(¬A)){¬q}=p(¬B)){¬q}=p(¬(Bq))=p(Bq)(由式(15.14)(15.29)
即得证。

上述逆归结写成输入(“分子”)和输出(“分母”)的形式,即为图15.10 【西瓜书式(15.10)】。
图15.10 吸收

图15.10 吸收

一阶逻辑的归结、逆归结通常用到“置换”和“合一”操作:

(i) 置换

  • 用“分子”置换“分母”,记为 { X Y } \{\frac{X}{Y}\} {YX}:“分数”中“分子”比“分母”更具体,置换可视为进行具体化,如, 人 动物 \frac{\text{人}}{\text{动物}} 动物,则用“人”去置换“动物”,即: 某命题对“动物”成立,置换后,该命题对“人”也成立。
  • 与代数中的置换类似,可以定义复合置换和逆置换等。

(ii) 合一
{ A = 色泽更深 ( 1 , X ) B = 色泽更深 ( Y , 2 ) ⟹ θ C = 色泽更深 ( 1 , 2 ) \begin{align} \begin{cases} A=\text{色泽更深}(1,X) \\ B=\text{色泽更深}(Y,2) \end{cases} \mathop{\Longrightarrow }\limits^\theta C=\text{色泽更深}(1,2) \tag{15.30} \end{align} {A=色泽更深(1,X)B=色泽更深(Y,2)θC=色泽更深(1,2)(15.30)
即找一个置换 θ \theta θ,使得 A , B A,B A,B能“合一”成 C C C

比较 A A A C C C,应有置换 { 2 X } \{\frac{2}{X}\} {X2},比较 B B B C C C,应有置换 { 1 Y } \{\frac{1}{Y}\} {Y1},而这两置换不矛盾,故可取 θ = { f r a c 2 X , 1 Y } \theta =\{frac{2}{X},\frac{1}{Y}\} θ={frac2X,Y1}。 在置换 θ \theta θ的作用下, A θ = B θ = C A\theta=B\theta=C Aθ==C,称置换 θ \theta θ A A A B B B的“合一化子”。

对于一组一阶逻辑表达式 W W W,可能有多个“合一化子”,这时,可定义其中“最厉害”(替换的常量越少越好,泛化越广越好)的为“最一般合一化子”,记为MGU。

15.3 归结与逆归结图 15.1,有
{ C 1 = A ∨ L C 2 = B ∨ ¬ L \begin{align} \begin{cases} C_1=A \lor L \\ C_2=B \lor \lnot L \\ \end{cases} \tag{15.31} \end{align} {C1=ALC2=B¬L(15.31)

然而,通常不易直接发现互补项( L L L ¬ L \lnot L ¬L),我们求其次。 假定
{ C 1 = A ∨ L 1 C 2 = B ∨ L 2 \begin{align} \begin{cases} C_1=A \lor L_1 \\ C_2=B \lor L_2 \\ \end{cases} \tag{15.32} \end{align} {C1=AL1C2=BL2(15.32)
看能否有合一化子 θ \theta θ,使得 L 1 θ = ¬ L 2 θ L_1\theta=\lnot L_2\theta L1θ=¬L2θ,若有,则也可进行归结,归结为
C = ( C 1 − L 1 ) θ ∨ ( C 2 − L 2 ) θ \begin{align} C & =(C_1- L_1)\theta \lor (C_2- L_2)\theta \tag{15.33} \end{align} C=(C1L1)θ(C2L2)θ(15.33)
这即【西瓜书式(15.14)】,它是【西瓜书式(15.7)】的推广。

证明:将 θ \theta θ作用于 C 1 , C 2 C_1,C_2 C1,C2,即
{ C 1 θ = ( A ∨ L 1 ) θ = A θ ∨ L 1 θ C 2 θ = ( B ∨ L 2 ) θ = B θ ∨ L 2 θ \begin{align} \begin{cases} C_1\theta=(A \lor L_1)\theta=A\theta \lor L_1\theta \\ C_2\theta=(B \lor L_2)\theta=B\theta \lor L_2\theta \\ \end{cases} \tag{e15.34} \end{align} {C1θ=(AL1)θ=AθL1θC2θ=(BL2)θ=L2θ(e15.34)

L 1 θ = ¬ L 2 θ L_1\theta=\lnot L_2\theta L1θ=¬L2θ,设其为 L L L,则式(15.32)变为
{ C 1 θ = A θ ∨ L C 2 θ = B θ ∨ ¬ L \begin{align} \begin{cases} C_1\theta=A\theta \lor L \\ C_2\theta=B\theta \lor \lnot L \\ \end{cases} \tag{15.35} \end{align} {C1θ=AθLC2θ=¬L(15.35)

对式(15.35)应用归结原理式(15.9),则
C = C 1 θ ⋅ C 2 θ = A θ ∨ B θ \begin{align} C & =C_1\theta\cdot C_2\theta\notag \\ & =A\theta \lor B\theta \tag{15.36} \end{align} C=C1θC2θ=Aθ(15.36)

式(15.34)变形为
{ A θ = ( C 1 − L 1 ) θ B θ = ( C 2 − L 2 ) θ \begin{align} \begin{cases} A\theta =(C_1- L_1)\theta \\ B\theta =(C_2- L_2)\theta \\ \end{cases} \tag{15.37} \end{align} {Aθ=(C1L1)θ=(C2L2)θ(15.37)

将式(15.37)代入式(15.36),则得式(15.33),证毕。

该归结表明:将寻找满足式(15.31)互补的 L L L ¬ L \lnot L ¬L,转变为针对式(15.32)而寻找满足 L 1 θ = ¬ L 2 θ L_1\theta=\lnot L_2\theta L1θ=¬L2θ的合一化子 θ \theta θ,然后,应用式(15.33)。 即归结由【西瓜书式(15.7)】扩展为【西瓜书式(15.14)】。

一阶逻辑中,已知: C C C C 1 C_1 C1,且 C = C 1 ⋅ C 2 C=C_1\cdot C_2 C=C1C2,求 C 2 C_2 C2。 我们曾推出过式(15.13)即命题逆归结【西瓜书式(15.9)】,这里我们再作推广,即推导一阶逆归结【西瓜书式(15.16)】:

由已知条件即可知 C 1 C_1 C1中哪些文字在归结中消除了,设 L 1 ∈ C 1 L_1\in C_1 L1C1归结后消除,即 L 1 ∉ C L_1\notin C L1/C,注:前述 L L L(文字)有时写为 { L } \{L\} {L},有时写为 L L L,本书并不作区别,这里对 L 1 L_1 L1 L 2 L_2 L2也如此。

则有
C 1 = A ∨ { L 1 } \begin{align} C_1=A \lor \{L_1\} \tag{15.38} \end{align} C1=A{L1}(15.38)

L 2 ∈ C 2 ,   L 2 ∉ C L_2\in C_2,\, L_2\notin C L2C2,L2/C,即归结时消去了 L 2 L_2 L2,则
C 2 = B ∨ { L 2 } \begin{align} C_2=B \lor \{L_2\} \tag{15.39} \end{align} C2=B{L2}(15.39)

假定我们找到了 θ 1 ,   θ 2 \theta _1 ,\, \theta _2 θ1,θ2使得
( ¬ { L 1 } ) θ 1 ∘ θ 2 = { L 2 } θ 1 ∘ θ 2 \begin{align} (\lnot \{L_1\})\theta _1 \circ \theta _2=\{L_2\}\theta _1 \circ \theta _2 \tag{15.40} \end{align} (¬{L1})θ1θ2={L2}θ1θ2(15.40)
并且它俩的作用域不同: θ 1 \theta _1 θ1 { L 2 } \{L_2\} {L2}不起作用; θ 2 \theta _2 θ2 ¬ { L 1 } ) \lnot \{L_1\}) ¬{L1})不起作用,即
{ ( ¬ { L 1 } ) θ 1 ∘ θ 2 = ( ¬ { L 1 } ) θ 1 { L 2 } θ 1 ∘ θ 2 = { L 2 } θ 2 \begin{align} \begin{cases} (\lnot \{L_1\})\theta _1 \circ \theta _2=(\lnot \{L_1\})\theta _1 \\ \{L_2\}\theta _1 \circ \theta _2=\{L_2\}\theta _2 \\ \end{cases} \tag{15.41} \end{align} {(¬{L1})θ1θ2=(¬{L1})θ1{L2}θ1θ2={L2}θ2(15.41)

由式(15.40)、式(15.41)有
{ ( ¬ { L 1 } ) θ 1 = { L 2 } θ 2 \begin{align} \begin{cases} (\lnot \{L_1\})\theta _1=\{L_2\}\theta _2 \\ \end{cases} \tag{15.42} \end{align} {(¬{L1})θ1={L2}θ2(15.42)

在此条件下,式(15.38)、式(15.39)组成式(15.32),式(15.40)说明 θ 1 ∘ θ 2 \theta _1 \circ \theta _2 θ1θ2为合一化子,故可应用式(15.33)归结,即
C = ( C 1 − { L 1 } ) θ 1 ∘ θ 2 ∨ ( C 2 − { L 2 } ) θ 1 ∘ θ 2 \begin{align} C & =(C_1- \{L_1\})\theta _1 \circ \theta _2 \lor (C_2- \{L_2\})\theta _1 \circ \theta _2 \tag{15.43} \end{align} C=(C1{L1})θ1θ2(C2{L2})θ1θ2(15.43)

增加 θ 1 , θ 2 \theta _1 , \theta _2 θ1,θ2作用域的需求: θ 1 \theta _1 θ1 C 2 C_2 C2不起作用; θ 2 \theta _2 θ2 C 1 C_1 C1不起作用,即
{ ( C 1 ) θ 1 ∘ θ 2 = ( C 1 ) θ 1 ( C 2 ) θ 1 ∘ θ 2 = ( C 2 ) θ 2 \begin{align} \begin{cases} (C_1)\theta _1 \circ \theta _2=(C_1)\theta _1 \\ (C_2)\theta _1 \circ \theta _2=(C_2)\theta _2 \\ \end{cases} \tag{15.44} \end{align} {(C1)θ1θ2=(C1)θ1(C2)θ1θ2=(C2)θ2(15.44)
由式(15.42)、式(15.44)
{ ( C 1 − { L 1 } ) θ 1 ∘ θ 2 = ( C 1 − { L 1 } ) θ 1 ( C 2 − { L 2 } ) θ 1 ∘ θ 2 = ( C 2 − { L 2 } ) θ 2 \begin{align} \begin{cases} (C_1- \{L_1\})\theta _1 \circ \theta _2=(C_1- \{L_1\})\theta _1 \\ (C_2- \{L_2\})\theta _1 \circ \theta _2=(C_2- \{L_2\})\theta _2 \\ \end{cases} \tag{15.45} \end{align} {(C1{L1})θ1θ2=(C1{L1})θ1(C2{L2})θ1θ2=(C2{L2})θ2(15.45)

由式(15.43)、式(15.45)有
C = ( C 1 − { L 1 } ) θ 1 ∨ ( C 2 − { L 2 } ) θ 2 \begin{align} C & =(C_1- \{L_1\})\theta _1 \lor (C_2- \{L_2\})\theta _2 \tag{15.46} \end{align} C=(C1{L1})θ1(C2{L2})θ2(15.46)


C 2 θ 2 = ( C − ( C 1 − { L 1 } ) θ 1 ) ∨ { L 2 } θ 2 = ( C − ( C 1 − { L 1 } ) θ 1 ) ∨ ( ¬ { L 1 } ) θ 1 (由式(15.42)) \begin{align} C_2\theta _2 & =(C-(C_1-\{L_1\})\theta _1 ) \lor \{L_2\}\theta _2\notag \\ & =(C-(C_1-\{L_1\})\theta _1 ) \lor (\lnot \{L_1\})\theta _1 \text{(由式(15.42))} \tag{15.47} \end{align} C2θ2=(C(C1{L1})θ1){L2}θ2=(C(C1{L1})θ1)(¬{L1})θ1(由式(15.42)(15.47)
两边以逆置换作用,即
C 2 = ( ( C − ( C 1 − { L 1 } ) θ 1 ) ∨ { ¬ L 1 } θ 1 ) θ 2 − 1 \begin{align} C_2=((C-(C_1-\{L_1\})\theta _1 ) \lor \{\lnot L_1\}\theta _1)\theta _2^{-1} \tag{15.48} \end{align} C2=((C(C1{L1})θ1){¬L1}θ1)θ21(15.48)
这即是扩展后的逆归结式,即由【西瓜书式(15.9)】扩展成【西瓜书式(15.16)】。

现在回过头来,看看如何找到满足式(15.40)、式(15.41)、式(15.44)的 θ 1 , θ 2 \theta _1 , \theta _2 θ1,θ2

比较已知的 C C C C 1 C_1 C1,二者间相同的文字分别记为 C ′ C' C C 1 ′ C'_1 C1(可能变量不一样,设合一化子为 ϕ 1 \phi _1 ϕ1),则有
{ C = C ′ ∨ C ′ ′ C 1 = C 1 ′ ∨ L 1 C 1 ′ ϕ 1 = C ′ \begin{align} \begin{cases} C=C'\lor C'' \\ C_1=C'_1\lor L_1 \\ C'_1\phi _1=C' \\ \end{cases} \tag{15.49} \end{align} C=CC′′C1=C1L1C1ϕ1=C(15.49)
故有
{ L 1 ∈ C 1 ,   L 1 ∉ C ( C 1 − L 1 ) ϕ 1 = C ′ ϕ 1 作用域为:  v a r s ( C 1 − L 1 ) \begin{align} \begin{cases} L_1 \in C_1,\, L_1\notin C \\ (C_1- L_1)\phi _1=C' \\ \phi _1\text{作用域为: }\mathrm{vars}(C_1- L_1) \end{cases} \tag{15.50} \end{align} L1C1,L1/C(C1L1)ϕ1=Cϕ1作用域为: vars(C1L1)(15.50)

考察 ¬ L 1 ϕ 1 \lnot L_1\phi _1 ¬L1ϕ1,以它的文字构造出一个 L 2 L_2 L2(文字相同,但设定变量不在 v a r s ( C 1 ) \mathrm{vars}(C_1) vars(C1)范围中),文字相同故可以合一(如,式(15.30)),即可构造置换 ϕ 2 \phi _2 ϕ2 θ 2 \theta _2 θ2使其合一化
{ ¬ L 1 ϕ 1 ∘ ϕ 2 = L 2 θ 2 ϕ 2 作用域为:  v a r s ( C 1 ) − v a r s ( C 1 − L 1 ) θ 2 作用域为:  v a r s ( L 2 ) v a r s ( L 2 ) ∩ v a r s ( C 1 ) = ∅ \begin{align} \begin{cases} \lnot L_1\phi _1\circ \phi _2=L_2\theta _2 \\ \phi _2\text{作用域为: }\mathrm{vars}(C_1)-\mathrm{vars}(C_1- L_1) \\ \theta _2\text{作用域为: }\mathrm{vars}(L_2) \\ \mathrm{vars}(L_2)\cap \mathrm{vars}(C_1)=\varnothing \end{cases} \tag{15.51} \end{align} ¬L1ϕ1ϕ2=L2θ2ϕ2作用域为: vars(C1)vars(C1L1)θ2作用域为: vars(L2)vars(L2)vars(C1)=(15.51)
θ 1 = ϕ 1 ∘ ϕ 2 \theta _1=\phi _1\circ \phi _2 θ1=ϕ1ϕ2,由式(15.50)、式(15.51),其作用域:
{ v a r s ( C 1 − L 1 ) } ∪ { v a r s ( C 1 ) − v a r s ( C 1 − L 1 ) } = v a r s ( C 1 ) \begin{align} \{\mathrm{vars}(C_1- L_1)\}\cup\{\mathrm{vars}(C_1)-\mathrm{vars}(C_1- L_1)\}=\mathrm{vars}(C_1) \tag{15.52} \end{align} {vars(C1L1)}{vars(C1)vars(C1L1)}=vars(C1)(15.52)
由式(15.51)、式(15.52),有
{ θ 1 作用域为:  v a r s ( C 1 ) θ 2 作用域为:  v a r s ( L 2 ) v a r s ( L 2 ) ∩ v a r s ( C 1 ) = ∅ \begin{align} \begin{cases} \theta _1\text{作用域为: }\mathrm{vars}(C_1) \\ \theta _2\text{作用域为: }\mathrm{vars}(L_2) \\ \mathrm{vars}(L_2)\cap \mathrm{vars}(C_1)=\varnothing \\ \end{cases} \tag{15.53} \end{align} θ1作用域为: vars(C1)θ2作用域为: vars(L2)vars(L2)vars(C1)=(15.53)
由式(15.53)有
{ ¬ L 1 ϕ 1 ∘ ϕ 2 = ¬ L 1 θ 1 = ¬ L 1 θ 1 ∘ θ 2 L 2 θ 2 = L 2 θ 1 ∘ θ 2 \begin{align} \begin{cases} \lnot L_1\phi _1\circ \phi _2=\lnot L_1\theta _1=\lnot L_1\theta _1\circ \theta _2 \\ L_2\theta _2=L_2\theta _1\circ \theta _2 \end{cases} \tag{15.54} \end{align} {¬L1ϕ1ϕ2=¬L1θ1=¬L1θ1θ2L2θ2=L2θ1θ2(15.54)

代入式(15.51)第一式,得
¬ L 1 θ 1 ∘ θ 2 = L 2 θ 1 ∘ θ 2 \begin{align} \lnot L_1\theta _1\circ \theta _2=L_2\theta _1\circ \theta _2 \tag{15.55} \end{align} ¬L1θ1θ2=L2θ1θ2(15.55)
其中,设 θ 1 ∘ θ 2 \theta _1\circ \theta _2 θ1θ2已简化为最一般合一化子(MGU),这即是式(15.40)。 作用域也满足式(15.44)的要求。

显然,上述 L 2 , θ 1 , θ 2 L_2,\theta _1 ,\theta _2 L2,θ1,θ2的选择不唯一(但 L 1 L_1 L1是唯一的,由式(15.49)确定),故需要一些判断标准来取舍,常用的工具有: 覆盖率、准确率和信息熵等。

逆结归的特点之一就是能自动发明新谓词,但新谓词的语义需要领域知识进行理解,【西瓜书p.363】得出了
{ q ( 1 , S ) ← 纹理更清 ( 1 , S ) q ( 1 , T ) ← 敲声更沉 ( 1 , T ) \begin{align} \begin{cases} q(1,S)\leftarrow \text{纹理更清}(1,S) \\ q(1,T)\leftarrow \text{敲声更沉}(1,T) \\ \end{cases} \tag{15.56} \end{align} {q(1,S)纹理更清(1,S)q(1,T)敲声更沉(1,T)(15.56)
其中,新谓词 q q q是什么含义不得而知:更甜?更新鲜? ⋯ \cdots

本文为原创,您可以:

  • 点赞(支持博主)
  • 收藏(待以后看)
  • 转发(他考研或学习,正需要)
  • 评论(或讨论)
  • 引用(支持原创)
  • 不侵权

上一篇:15.9 归纳逻辑程序设计之最小一般泛化
下一篇:15.11 基于逆归结的机器证明

  • 3
    点赞
  • 5
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值