一阶规则学习
一阶规则学习能容易引入领域知识,一般有两种做法:在现有属性的基础上基于领域知识构造出新属性,或基于领域知识设计某种函数机制(例如正则化)来对假设空间加以约束。然而,现实任务中并非所有的领域知识都能容易地通过属性重构和函数约束来表达。
FOIL是著名的一阶规则学习算法,它遵循序贯覆盖框架切采用自顶向下的规则归纳策略。由于逻辑变量的存在,FOIL在规则生成时需考虑不同的变量组合。
其中,分别为增加候选文字后新规则所覆盖的正、反例数;为原规则覆盖的正、反例数。FOIL增益与决策树使用的信息增益不同,它仅考虑正例的信息量,并且用新规则覆盖的正例数作为权重。这是由于关系数据中正例数往往少于反例数,因此通常对正例应赋予更多的关注。
归纳逻辑程序设计
归纳逻辑程序设计(简称ILP)在一阶规则学习中引入了函数和逻辑表达式嵌套。一方面,这使得机器学习系统具备了更为强大的表达能力;另一方面,ILP可看作用机器学习技术来解决基于背景知识的逻辑程序归纳,其学得的“规则”可被PROLOG等逻辑程序设计语言直接使用。
1、最小一般泛化
归纳逻辑程序设计采用自底向上的规则生成策略,直接将一个或多个正例所对应的具体事实作为初始规则,再对规则逐步进行泛化以增加其对样例的覆盖率。泛化操作可以是将规则中的常量替换为逻辑变量,也可以是删除规则体中的某个文字。
2、逆归结
在逻辑学中,“演绎”与“归纳”是人类认识世界的两种基本方式。大致来说,演绎是从一般性规律出发来探讨具体事物,而归纳则是从个别事物出发概括出一般性规律。一般数学定理证明是演绎实践的代表,而机器学习显然是属于归纳的范畴。
基于归结原理,我们可将貌似复杂的逻辑规则与背景知识联系起来化繁为简;而基于逆归结,我们可基于背景知识来发明新的概念和关系。
具体公式推导请查阅书籍。