一、前言
- 逻辑模型包括:概念学习、树模型、规则模型。这类模型的共同特点是,它们均是通过逻辑表达式将实例空间划分为一组间隔,因此所构建的都是分组模型。
- 这类模型的目标如下:针对要解决的任务,找到可以使每个区隔中的数据更为一致的实例空间划分方案。
- 逻辑学习本质上就是树模型和规则模型,本篇文章将探讨用于从数据中学习逻辑表达式或者概念的各种方法,它们是树模型和规则模型的基础。
二、概念学习
在讲解概念学习之前,需要铺垫一下离散数学的相关知识:
- 文字:命题常元、变元及它们的否定,如:一个布尔表达式A,x>y,a=b...
- 若布尔表达式A对某一个实例x为真,则称A覆盖了x,被A覆盖的所有实例的集合称为A的外延。(本质其实就是满足条件A的所有实例的集合)
- 如果,称A至少具有与A'相同的一般性,若同时有,称A比A'更具有一般性。(其实就是A的集合大于A'的集合,A的条件比A'更泛化,A'的条件比A的条件更苛刻)
- 子句:是一个蕴含关系P—>Q,P是由若干文字构成的合取式,Q是由若干文字构成的析取式。所以,子句等价于若干文字的析取。
- Horn子句:是一个子句A—>B,其中B为一个单个文字。
2.1假设空间
假设空间:就是其中涉及的全部可能的概念所构成的集合。
例如:现在有一种动物海豚,体长(Length={3,4,5}),是否有腮(Gills{yes,no}),背部是否凸起(Beak={yes,no}),牙齿数量(Teeth={many,few}),该假设空间为3x2x2x2=24,如果将这4个特征的缺失值作为一种附加的取值方案,则可以得到4x3x3x3=108种。
如果现在只出现了体长(Length={3,4}),是否有腮(Gills{no}),背部是否凸起(Beak={yes}),牙齿数量(Teeth={many,few}),并且只有如下3个实例,则将未覆盖任何实例的概念移除,就缩减为32个合取概念(这里的图省略)
- 实例1:
- 实例2:
- 实例3:
2.2最小一般性
最小一般性:如果进一步限制,任何假设必须覆盖全部3个实例,则假设空间缩减成4个合取概念,这4个概念中最不具备一般性的称为最小一般假设,人们通常称为最小一般泛化(LGG)。这4个分别是:
- 特征全空的概念(最大一般性假设),认为所有动物都是海豚
- Gills=no
- Beak=yes
- (最小一般性假设,所有的泛化具备的一般性至少要和它相当,即LGG是最保守的泛化)
LGG算法:
LGG-Set(D):从一个实例集中找到最小一般泛化
input:数据集D
output:逻辑表达式H
1. x (来自D中的第一个实例)
2. H (将x赋值给H)
3. while 有其他实例 do
4. | x (D中的下一个实例)
5. | H=LGG(x,H) (LGG函数返回的结果覆盖了上一个H )
6. end
7. return H
LGG-Conj(x,y):找到两个合取的最小一般合取泛化
input: 2个合取式x,y
output: 合取的最终结果z
1. z (来自x,y的共同合取)
2. return z
负例对于防止过度泛化很有帮助,这里有一个负例:
可以看到,它能够排除目前可能成立的泛化,尤其是排除了Beak=yes和假设一切动物都是海豚的这个空概念。
2.3内部析取
对于最大一般假设,通常来说不是唯一的。将上述3个实例运用内部析取整合,变成如下假设:
这时我们发现前两个单个条件依然不会覆盖负例,但是Beak=yes会覆盖。
LGG-Conj-ID(x,y):运用内部析取找到两个合取的最小一般合取泛化
input:合取x,y
output:合取z
1. z (true)
2. for 每个特征f do
3. | if f=vx是x中的结合项,且f=vy是y中的结合项 then
4. | | 将f=Combine-ID(vx,vy)添加到z //Combine-ID([3,4],[3,5])=[3,4,5],返回二者的并集
5. | end
6. end
7.return z
2.4通过假设空间的路径
本小节只是总结一下,也可以画成覆盖图的形式,具体的图表不再给出,有问题可以私聊我。
- 如果一个概念能够覆盖所有的正例,则称它是完备的。
- 如果一个概念没有覆盖任何负例,则称它具有相容性。
- 版本空间是由所有完备的相容的概念构成的集合,是一个凸集。
- 如果一个正例的LGG覆盖了一个或多个负例,意味着该LGG的任何泛化都是不相容的,反之,任何相容性假设都不是完备的,此时的版本空间为空,我们称此时的数据不是合取可分的。
MGConsistent(C,N):找到给定概念的最一般相容特化
input:概念C,负例集N
output:概念集S
1. if C未覆盖负例集N中的任何元素
2. | then return C
3. S 起初为空集
4. for C 的每个最小特化C' do
5. | S=S U MGConsistent(C',N)
6. end
7. return S
// 最小特化是指可在假设网格结构中向下一部所到达的假设,如通过向某个内部析取添加合取式或移除某个值。
2.5 Horn理论
- 如果一个Horn理论无法覆盖某个正例,我们便需要将所有“违背”该正例的子句移除。如果未覆盖某个负例,我们需要添加一条或多条Horn语句。在A—>B中,若A中文字对于该实例为真,B为假则称该子句违背了该正例。
- 当负例仅有一个被设为假的文字时,排除该负例的最特定的子句便是唯一的,若在负例中被设为真的文字越少,则用于排除改负例的子句越具有一般性。
- Horn算法总能够成功学习到一个与目标理论等价的Horn理论。(虽然式子可能并不完全等同)
- 关于Horn理论的案例,这里由于麻烦不讲解了,有问题的可以私信我,帮大家解答。