AI目录:sheng的学习笔记-AI目录-CSDN博客
什么是规则学习
机器学习中的“规则”(rule)通常是指语义明确、能描述数据分布所隐含的客观规律或领域概念、可写成“若……,则……”形式的逻辑规则。“规则学习”(rule learning)是从训练数据中学习出一组能用于对未见示例进行判别的规则。
一条规则形如:
在数理逻辑中“文字”专指原子公式(atom)及其否定。
与神经网络、支持向量机这样的“黑箱模型”相比,规则学习具有更好的可解释性,能使用户更直观地对判别过程有所了解。另一方面,数理逻辑具有极强的表达能力,绝大多数人类知识都能通过数理逻辑进行简洁的刻画和表达。例如“父亲的父亲是爷爷”这样的知识不易用函数式描述,而用一阶逻辑则可方便地写为“爷爷(X,Y)←父亲(X,Z)∧父亲(Z,Y)”,因此,规则学习能更自然地在学习过程中引入领域知识。此外,逻辑规则的抽象描述能力在处理一些高度复杂的AI任务时具有显著的优势,例如在问答系统中有时可能遇到非常多、甚至无穷种可能的答案,此时若能基于逻辑规则进行抽象表述或者推理,则将带来极大的便利。
假定我们从西瓜数据集学得规则集合ℛ:
规则1:好瓜←(根蒂=蜷缩)∧(脐部=凹陷);
规则2:¬好瓜←(纹理=模糊)。
规则1的长度为2,它通过判断两个逻辑文字的赋值(valuation)来对示例进行判别。符合该规则的样本(例如西瓜数据集2.0中的样本1)称为被该规则“覆盖”(cover)。需注意的是,被规则1覆盖的样本是好瓜,但没被规则1覆盖的未必不是好瓜;只有被规则2这样以“¬好瓜”为头的规则覆盖的才不是好瓜。
规则冲突
规则集合中的每条规则都可看作一个子模型,规则集合是这些子模型的一个集成。
当同一个示例被判别结果不同的多条规则覆盖时,称发生了“冲突”(conflict),解决冲突的办法称为“冲突消解”(conflict resolution)。
常用的冲突消解策略有投票法、排序法、元规则法等。
- 投票法是将判别相同的规则数最多的结果作为最终结果。
- 排序法是在规则集合上定义一个顺序,在发生冲突时使用排序最前的规则;相应的规则学习过程称为“带序规则”(ordered rule)学习或“优先级规则”(priority rule)学习。
- 元规则法是根据领域知识事先设定一些“元规则”(meta-rule),即关于规则的规则,例如“发生冲突时使用长度最小的规则”,然后根据元规则的指导来使用规则集。
默认规则
从训练集学得的规则集合也许不能覆盖所有可能的未见示例,
例如前述规则集合ℛ无法对“根蒂=蜷缩”、“脐部=稍凹”且“纹理=清晰”的示例进行判别;这种情况在属性数目很多时常出现。
因此,规则学习算法通常会设置一条“默认规则”(default rule),由它来处理规则集合未覆盖的样本;例如为ℛ增加一条默认规则:“未被规则1,2覆盖的都不是好瓜”。
命题规则”(propositional rule)和“一阶规则”(first-order rule)
规则1:好瓜(X)←根蒂(X,蜷缩)∧脐部(X,凹陷);
规则2:¬好瓜(X)←纹理(X,模糊)。
命题规则是一阶规则的特例,因此一阶规则的学习比命题规则要复杂得多。