什么是规则学习
机器学习中的"规则"(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,模糊)。
命题规则是一阶规则的特例,因此一阶规则的学习比命题规则要复杂得多。
一阶规则
受限于命题逻辑表达能力,命题规则学习难以处理对象之间的"关系"(relation),而关系信息在很多任务中非常重要。
例如,我们在现实世界挑选西瓜时,通常很难把水果摊上所有西瓜的特征用属性值描述出来,因为我们很难判断:色泽看起来多深才叫"色泽青绿"?敲起来声音多低才叫"敲声沉闷"?
比较现实的做法是将西瓜进行相互比较,例如,"瓜1的颜色比瓜2更深,并且瓜1的根蒂比瓜2更蜷",因此"瓜1比瓜2更好"。这超越了命题逻辑的表达能力,需用一阶逻辑表示,并且要使用一阶规则学习。
定义:
色泽深度:乌黑﹥青绿﹥浅白;
根蒂蜷度:蜷缩﹥稍蜷﹥硬挺;
敲声沉度:沉闷﹥浊响﹥清脆;
纹理清晰度:清晰﹥稍糊﹥模糊;
脐部凹陷度:凹陷﹥稍凹﹥平坦;
触感硬度:硬滑﹥软粘。
括号内数字对应于(4.3 剪枝处理 表4.2 西瓜数据集2.0划分出的训练集与验证集)中的样例编号。
分隔线上半部分为背景知识,下半部分为样例。
西瓜数据集2.0训练集就转化为表15.1的西瓜数据集5.0.这样的数据直接描述了样例间的关系,称为"关系数据"(relational data),其中由原样本属性转化而来的"色泽更深""根蒂更蜷"等原子公式称为"背景知识"(background knowledge),而由样本类别转化而来的关于"更好""¬更好"的原子公式称为关系数据样例(examples)。
一阶逻辑子句:(∀X,∀Y)(更好(X,Y)←根蒂更蜷(X,Y)∧脐部更凹(X,Y))。
一阶规则仍是式(15.1)的形式,但其规则头、规则体都是一阶逻辑表达式,
"更好(·,·)"、"根蒂更蜷(·,·)"、"脐部更凹(·,·)"是关系描述所对应的谓词,个体对象"瓜1"、"瓜2"被逻辑变量"X"、"Y"替换。全称量词"∀"表示该规则对所有个体对象都成立;
一阶规则学习能容易地引入领域知识,这是它相对于命题规则学习的另一大优势。在命题规则学习乃至一般的统计学习中,若欲引入领域知识,通常有两种做法:
- 在现有属性的基础上基于领域知识构造出新属性,
- 或基于领域知识设计某种函数机制(例如正则化)来对假设空间加以约束。
现实任务中并非所有的领域知识都能容易地通过属性重构和函数约束来表达。
例如,假定获得了包含某未知元素的化合物X,欲通过试验来发现它与已知化合物Y的反应方程式。我们可多次重复试验,测出每次结果中化合物的组分含量。虽然我们对反应中的未知元素性质一无所知,但知道一些普遍成立的化学原理,例如金属原子一般产生离子键、氢原子之间一般都是共价键等,并且也了解已知元素间可能发生的反应。有了这些领域知识,重复几次试验后就不难学出X和Y的反应方程式,还可能推测出Y的性质、甚至发现新的分子和元素。类似这样的领域知识充斥在日常生活与各类任务中,但在基于命题表示的学习中加以利用却非常困难。