sheng的学习笔记-AI-FOIL(First-Order Inductive Learner)
AI目录:sheng的学习笔记-AI目录-CSDN博客
规则学习(rule learning): sheng的学习笔记-AI-规则学习(rule learning)-CSDN博客
序贯覆盖(sequential covering):sheng的学习笔记-AI-序贯覆盖(sequential covering)
基础知识
FOIL(First-Order Inductive Learner)是著名的一阶规则学习算法,它遵循序贯覆盖框架且采用自顶向下的规则归纳策略,与命题规则学习过程很相似。但由于逻辑变量的存在,FOIL在规则生成时需考虑不同的变量组合。
原理
例如在西瓜数据集上,对“更好(X,Y)”这个概念,最初的空规则是更好(X,Y)←。
(∀X,∀Y)(更好(X,Y)←根蒂更蜷(X,Y)∧脐部更凹(X,Y))
考虑数据中所有其他谓词以及各种变量搭配作为候选文字。新加入的文字应包含至少一个已出现的变量,否则没有任何实质意义
给初始的空规则体加入“色泽更深(X,Y)”或“脐部更凹(X,Y)”,新规则就能覆盖16个正例和2个反例,所对应的FOIL增益为候选最大值,假定前者被选中,则得到更好(X,Y)←色泽更深(X,Y)。
该规则仍覆盖2个反例:“更好(15,1)”与“更好(15,6)”。于是,FOIL像命题规则学习那样继续增加规则体长度,最终生成合适的单条规则加入规则集。此后,FOIL使用后剪枝对规则集进行优化。
若允许将目标谓词作为候选文字加入规则体,则FOIL能学出递归规则;若允许将否定形式的文字¬f作为候选,则往往能得到更简洁的规则集。
小结
FOIL可大致看作命题规则学习与归纳逻辑程序设计之间的过渡,其自顶向下的规则生成过程不能支持函数和逻辑表达式嵌套,因此规则表达能力仍有不足;但它是把命题规则学习过程通过变量替换等操作直接转化为一阶规则学习,因此比一般归纳逻辑程序设计技术更高效。
参考资料
机器学习 书