归纳逻辑程序设计.docx

? ? 归纳逻辑程序设计 ? ? 归纳逻辑程序设计(Inductive Logic Programming,ILP)在一阶规则学习中引入了函数和逻辑表达式嵌套。 这使得,一方面机器学习系统具备了更为强大的表达能力; 另一方面ILP可看作用机器学习技术来解决基于背景知识的逻辑程序(logic program)贵南,其学得的规则可被PROLOG等逻辑程序设计语言直接使用。 然而,函数和逻辑表达式嵌套的引入也带来了计算上的巨大挑战。例如,给给定一元谓词P和一元函数f,能组成的文字有P(X),P(f(X)),P(f(f(X)))等无穷多个,这就是使得规则学习过程中可能的候选原子公式有无穷多个。若仍采用命题逻辑规则或FOIL学习那样自顶向下的规则生成过程,则在增加规则长度时将因无法列举所有候选文字而失败。实际困难还包括,在计算FOIL增益时需对规则覆盖的全部正反例计数,而在引入函数和逻辑表达式嵌套之后也变得不可行。 1)最小一般泛化 归纳逻辑程序设计采用自底向上的规则生成策略,直接将一个或多个正例所对应的具体事实(grounded fact)作为初始规则,再对规则逐步进行泛化以增加对样例的覆盖率。 泛化操作主要是两个动作:将规则中的常量替换为逻辑变量,删除规则体中的某个文字。 例子: 更好(1,10)—根蒂更蜷(1,10)∩声音更沉(1,10)∩脐部更凹(1,10)∩触感更硬(1,1

文档评论(0)

1亿VIP精品文档

相关文档