Presentation is loading. Please wait.

Presentation is loading. Please wait.

机器学习-学习规则集合 作者:Mitchell 译者:曾华军等 讲者:陶晓鹏

Similar presentations


Presentation on theme: "机器学习-学习规则集合 作者:Mitchell 译者:曾华军等 讲者:陶晓鹏"— Presentation transcript:

1 机器学习-学习规则集合 作者:Mitchell 译者:曾华军等 讲者:陶晓鹏
第10章 学习规则集合 机器学习-学习规则集合 作者:Mitchell 译者:曾华军等 讲者:陶晓鹏

2 机器学习-学习规则集合 作者:Mitchell 译者:曾华军等 讲者:陶晓鹏
概述 对学习到的假设,最具有表征力的和最能为人类所理解的表示方法之一是if-then规则的集合 本章探索若干能学习这样的规则集合的算法 其中,最重要的是学习包含变量的规则集合,或称一阶Horn子句集合 由于一阶Horn子句集合可被解释为逻辑编程语言Prolog中的程序,学习的过程常被称为归纳逻辑编程 本章考察了多种学习规则集合的途径,其中一种是基于机器定理证明器中演绎算子的逆转 机器学习-学习规则集合 作者:Mitchell 译者:曾华军等 讲者:陶晓鹏

3 机器学习-学习规则集合 作者:Mitchell 译者:曾华军等 讲者:陶晓鹏
简介 在许多情况下,有必要学习一个由若干if-then规则共同定义的目标函数,比如 决策树 遗传算法 本章我们讨论一组不同的算法,它们直接学习规则集合,与前面算法有两点关键的不同 可学习包含变量的一阶规则集合(一阶子句的表达能力比命题规则要强得多) 使用序列覆盖算法,一次学习一个规则,以递增的方式形成最终的规则集合 机器学习-学习规则集合 作者:Mitchell 译者:曾华军等 讲者:陶晓鹏

4 机器学习-学习规则集合 作者:Mitchell 译者:曾华军等 讲者:陶晓鹏
简介(2) 一阶规则集合的例子 if Parent(x,y) then Ancestor(x,y) if Parent(x,z)  Ancestor(z,y) then Ancestor(x,y) 这个规则集合很紧凑地描述了一个递归函数,它很难用决策树或其他命题的方法来表示 Prolog程序就是一阶规则的集合,因此一个可以学习这种规则集合的通用算法,可被看作是从样例中自动推导出Prolog程序的算法 一阶表示的学习系统在实践中的应用 在质谱仪中学习哪一个化学药品能粘合碎片 学习哪一个化学亚结构会产生诱导有机体突变的放射性物质 学习有限单元网以分析物理结构中的应力 机器学习-学习规则集合 作者:Mitchell 译者:曾华军等 讲者:陶晓鹏

5 机器学习-学习规则集合 作者:Mitchell 译者:曾华军等 讲者:陶晓鹏
内容安排 先介绍能够学习命题规则集的算法(命题规则可看作不含变量的一阶规则),算法搜寻假设空间学习析取规则集合 将上面算法扩展到一阶规则 讨论归纳逻辑的两种通用途径以及归纳和演绎推理的基本关系 机器学习-学习规则集合 作者:Mitchell 译者:曾华军等 讲者:陶晓鹏

6 机器学习-学习规则集合 作者:Mitchell 译者:曾华军等 讲者:陶晓鹏
序列覆盖算法 序列覆盖算法 学习一个规则,移去它覆盖的数据,再重复这一过程 假定已有一个子程序Learn-One-Rule,它的输入是一组正例和反例,输出是单个规则,它能够覆盖许多正例而覆盖很少的反例 我们要求输出的规则有较高的精确度,但不必有较高的覆盖度 机器学习-学习规则集合 作者:Mitchell 译者:曾华军等 讲者:陶晓鹏

7 机器学习-学习规则集合 作者:Mitchell 译者:曾华军等 讲者:陶晓鹏
序列覆盖算法(2) 序列覆盖算法的过程 在所有可用训练样例上执行Learn-One-Rule 再移去由其学到的规则覆盖的正例 重复上面的过程,直到规则集覆盖正例达到希望的程度 序列覆盖算法按次序学习到一组规则,它们共同覆盖了全部正例 规则集中的规则可排序,分类新实例时可先应用精度最高的规则 机器学习-学习规则集合 作者:Mitchell 译者:曾华军等 讲者:陶晓鹏

8 表10-1 学习析取规则集的序列覆盖算法(CN2)
Sequential-Covering(Target_attribute, Attributes, Examples, Threshold) Learned_rules{} RuleLearn-One-Rule(Target_attribute, Attributes, Examples) 当Performance(Rule, Examples)>Threshold Learned_rulesLearned_rules+Rule ExamplesExamples-{被Rule正确分类的样例} Learned_rules按照在Examples上的Performance排序的Learned_rules 返回Learned_rules 机器学习-学习规则集合 作者:Mitchell 译者:曾华军等 讲者:陶晓鹏

9 机器学习-学习规则集合 作者:Mitchell 译者:曾华军等 讲者:陶晓鹏
序列覆盖算法(3) 序列覆盖算法将问题化简为一系列简单的问题,执行的是一种贪婪搜索,它不能保证找到能覆盖样例的最小或最佳规则集 下面重点讨论Learn-One-Rule的设计,我们希望算法能够得到较高精度的规则集,但不必覆盖所有的正例 机器学习-学习规则集合 作者:Mitchell 译者:曾华军等 讲者:陶晓鹏

10 机器学习-学习规则集合 作者:Mitchell 译者:曾华军等 讲者:陶晓鹏
一般到特殊的柱状搜索 一种方法是,将假设空间搜索过程设计为与ID3算法中相似的方式,但在每一步只沿着最有希望的分支进行,即产生最佳性能的属性-值对,而不是用增长子树的办法覆盖所选属性的所有可能值 与ID3类似,可定义最佳分支,它覆盖的样例有最低的熵 与其他贪婪算法一样,上面算法的缺陷是,它的每一步都可能做出次优的选择 用柱状搜索来减小风险,即每一步保留k个最佳候选分支,每一步对k个候选分支进行处理,然后再将结果集削减至k个最可能成员 机器学习-学习规则集合 作者:Mitchell 译者:曾华军等 讲者:陶晓鹏

11 表10-2 Learn-One-Rule的一种实现:一般到特殊柱状搜索
Learn-One-Rule(Target_attribute, Attributes, Examples, k) 初始化Best_hypothesis为最一般的假设 初始化Candidate_hypotheses为集合{Best_hypothesis} 当Candidate_hypotheses不空,做以下操作 生成下一个更特殊的候选假设 All_constraints所有形式为(a=v)的约束集合,其中,a为Attributes的成员,v为出现在当前Examples集合中的a的值 New_candidate_hypotheses 对Candidate_hypotheses中每个h,循环 对All_constraints中每个c,循环 通过加入约束c创建一个h的特化式 New_candidate_hypotheses中移去任意重复的、不一致的或非极大特殊化的假设 更新Best_hypothesis 对New_candidate_hypotheses中所有h做以下操作 如果Performance(h,Examples,Target_attribute)>Performance(Best_hypothesis,Examples,Target_attribute) 则Best_hypothesish 更新Candidate_hypotheses Candidate_hypothesesCandidate_hypotheses中k个Performance最佳成员 返回如下形式的一个规则 “如果Best_hypothesis”,则prediction 其中,prediction为在与Best_hypothesis匹配的Examples中最频繁的Target_attribute值 机器学习-学习规则集合 作者:Mitchell 译者:曾华军等 讲者:陶晓鹏

12 表10-2 Learn-One-Rule的一种实现:一般到特殊柱状搜索(2)
Performance(h, Examples, Target_attribute) h_examples与h匹配的Examples子集 返回-Entropy(h_examples),Entropy是关于Target_attribute的熵 机器学习-学习规则集合 作者:Mitchell 译者:曾华军等 讲者:陶晓鹏

13 对表10-2的Learn-One-Rule算法的说明
算法主循环中考虑的每个假设都是属性-值约束的合取 每个合取假设对应于待学习规则的候选前件集合,它由其覆盖的样例的熵来评估 搜索算法不断特化候选假设,直到得到一个极大特殊假设,它包含所有可用的属性 规则的后件在算法的最后一步产生,在其前件确定后,算法构造出的规则后件用于预测在前件所能覆盖的样例中最常见的目标属性值 尽管使用了柱状搜索,贪婪搜索仍可能产生次优的规则 机器学习-学习规则集合 作者:Mitchell 译者:曾华军等 讲者:陶晓鹏

14 机器学习-学习规则集合 作者:Mitchell 译者:曾华军等 讲者:陶晓鹏
序列覆盖算法的几种变型 只学习覆盖正例的规则,对该规则没有覆盖的实例默认地赋予其反例分类 正例在整个群体中所占比例很小,所以规则集只标定正例的类别,而对其他样例默认分类为反例,这样规则集更简洁易懂 这一方法对应于Prolog中的失败否定策略,其中不能证明为真的表达式都默认为假 需要修改Learn-One-Rule算法 增加输入变量,指定感兴趣的目标值 Performance使用假设覆盖正例的比例 机器学习-学习规则集合 作者:Mitchell 译者:曾华军等 讲者:陶晓鹏

15 机器学习-学习规则集合 作者:Mitchell 译者:曾华军等 讲者:陶晓鹏
序列覆盖算法的几种变型(2) AQ算法 AQ明确地寻找覆盖特定目标值的规则,然后,对每个目标值学习一个析取规则集 AQ算法学习单个规则的方法也不同于Learn-One-Rule,当它对每个规则执行一般到特殊柱状搜索时,他围绕单个正例来进行 搜索中只考虑被某正例满足的属性,以得到逐渐特殊的假设,每次学一个新规则时,它从那些未覆盖的样例中也选择一个新的正例,以指引新析取项的搜索 机器学习-学习规则集合 作者:Mitchell 译者:曾华军等 讲者:陶晓鹏

16 机器学习-学习规则集合 作者:Mitchell 译者:曾华军等 讲者:陶晓鹏
学习规则集:小结 串行与并行的差异 序列学习算法(CN2)每次学习一个规则,而ID3每一步并行学习整个析取项的集合,ID3可称为并行覆盖算法 ID3在每一搜索步中根据它对数据产生的划分选择不同的属性,CN2选择的是不同的属性-值对 为了学习到n个规则的集合,每个规则前件包含k个属性值测试,CN2需要nk次基本搜索步,而ID3独立选择次数要少得多 CN2需要较大数量的训练数据 机器学习-学习规则集合 作者:Mitchell 译者:曾华军等 讲者:陶晓鹏

17 机器学习-学习规则集合 作者:Mitchell 译者:曾华军等 讲者:陶晓鹏
学习规则集:小结(2) 搜索方向的差异 Learn-One-Rule的搜索方向是从一般到特殊,而其他算法是从特殊到一般 从一般到特殊的一个优点是只有一个极大一般假设可作为搜索起始点 而多数假设空间中有很多特殊假设,因此有许多极大特殊假设,从特殊到一般的算法难以确定搜索的起点 机器学习-学习规则集合 作者:Mitchell 译者:曾华军等 讲者:陶晓鹏

18 机器学习-学习规则集合 作者:Mitchell 译者:曾华军等 讲者:陶晓鹏
学习规则集:小结(3) 生成再测试与样例驱动搜索的差异 样例驱动搜索算法包括:Find-S、候选消除、AQ算法、Gigol 样例驱动算法中,对假设的生成或修正是由单独的训练样例驱动的,而且结果是一个已修正的假设,它对此单个样例的性能得到改善 Learn-One-Rule是生成再测试搜索 生成再测试搜索方法中,后续的假设的生成只基于假设表示的语法,然后基于这些假设在全部样例上的性能来进行选择 生成再测试的一个优点是搜索中每一步的选择都基于在许多样例上的假设性能,因此噪声数据的影响被最小化 机器学习-学习规则集合 作者:Mitchell 译者:曾华军等 讲者:陶晓鹏

19 机器学习-学习规则集合 作者:Mitchell 译者:曾华军等 讲者:陶晓鹏
学习规则集:小结(4) 规则的后修剪和后修剪的方法 Learn-One-Rule也有可能形成过度拟合,解决的方法也可以是后修剪 性能函数的定义 相对频率:令n代表规则所匹配的样例数目,nc代表其中它能正确分类的数目,则规则性能的相对频率估计为 精度的m-估计:令p为从整个数据集中随机抽取的样例与该规则赋予的分类相同的先验概率,令m为权,或称对此先验概率p进行加权的等效样例数目 熵:令S为匹配规则前件的样例集合,熵衡量的是该样例集合中目标函数的均一性 机器学习-学习规则集合 作者:Mitchell 译者:曾华军等 讲者:陶晓鹏

20 机器学习-学习规则集合 作者:Mitchell 译者:曾华军等 讲者:陶晓鹏
学习一阶规则 本节考虑带有变量的规则,即一阶Horn子句,它们比命题规则有强得多的表征能力 一阶规则的归纳学习通常被称为归纳逻辑编程,因为这一过程可看作从样例中自动推导出Prolog程序 命题规则过于特殊了,不能描述属性值之间的实质关系,对今后的分类几乎不起作用,一阶规则能够表示更一般的规则 一阶Horn子句还可指定前件中的变量不出现在后件中的规则,这种变量可以被存在量词或全称量词修饰 还可能在规则的后件和前件中使用相同的谓词描述递归的规则 机器学习-学习规则集合 作者:Mitchell 译者:曾华军等 讲者:陶晓鹏

21 机器学习-学习规则集合 作者:Mitchell 译者:曾华军等 讲者:陶晓鹏
术语 所有的一阶表达式由常量、变量、谓词符号以及函数符号组成 谓词和函数的区别是谓词只能取真或假(特殊的函数),而函数的取值可为任意常量 通常用小写符号表示函数,大写符号表示谓词 术语: 项:任意常量、任意变量、应用到任意项上的任意函数 文字:应用到项上的任意谓词或其否定,如果包含否定符号,称为负文字,否则称为正文字,不包含任何变量的称为基本文字 子句:多个文字的任意析取,其中所有的变量假定是全称量化的 Horn子句:至多包含一个正文字的子句,Horn子句的前件被称为子句体或子句先行词,后件被称为子句头或子句推论 置换:将文字L的某些变量替换为某些项的函数,记为L。如果置换使得L1=L2,那么称为L1和L2的合一置换 机器学习-学习规则集合 作者:Mitchell 译者:曾华军等 讲者:陶晓鹏

22 机器学习-学习规则集合 作者:Mitchell 译者:曾华军等 讲者:陶晓鹏
学习一阶规则集:FOIL FOIL学习的规则类似Horn子句,但有两个不同: 比Horn子句更受限,因为文字不允许包含函数符号 比Horn子句更有表征力,因为规则体中的文字可以是负文字 机器学习-学习规则集合 作者:Mitchell 译者:曾华军等 讲者:陶晓鹏

23 机器学习-学习规则集合 作者:Mitchell 译者:曾华军等 讲者:陶晓鹏
表10-4 基本的FOIL算法 FOIL(Target_predicate, Predicates, Examples) PosExamples中Target_predicate为True的成员 NegExamples中Target_predicate为False的成员 Learned_rules{} 当Pos不空,学习NewRule NewRule没有前件的谓词Target_predicate规则 NewRuleNeg 当NewRuleNeg不空,增加新文字以特化NewRule Candidate_literature对NewRule生成候选新文字,基于Predicate Best_literal 把Best_literal加入到NewRule的前件 NewRuleNegNewRuleNeg中满足NewRule前件的子集 Learned_rulesLearned_rules+NewRule PosPos-{被NewRule覆盖的Pos成员} 返回Learned_rules 机器学习-学习规则集合 作者:Mitchell 译者:曾华军等 讲者:陶晓鹏

24 机器学习-学习规则集合 作者:Mitchell 译者:曾华军等 讲者:陶晓鹏
FOIL算法的解释 FOIL外层循环中每次加入一条新的规则到其析取式假设Learned_rules中去 每个新规则的效果是通过加入一个析取项泛化当前的析取假设 这是假设空间的特殊到一般的搜索过程,它开始于最特殊的空析取式,在假设足够一般以至覆盖所有正例时终止 FOIL内层循环执行的是细粒度较高的搜索,以确定每个新规则的确切定义 内层循环在另一假设空间中搜索,它包含文字的合取,以找到一个合取式形成规则的前件 内层循环执行一般到特殊的爬山搜索,开始于最一般的前件,然后增加文字以使规则特化直到避开所有的反例 机器学习-学习规则集合 作者:Mitchell 译者:曾华军等 讲者:陶晓鹏

25 机器学习-学习规则集合 作者:Mitchell 译者:曾华军等 讲者:陶晓鹏
FOIL算法的解释(2) FOIL与前面的序列覆盖和Learn-One-Rule算法之间有两个最实质的不同,来源于算法对一阶规则处理的需求 在学习每个新规则的一般到特殊搜索中,FOIL使用了不同的细节步骤来生成规则的候选特化式,这一不同是为了处理规则前件中含有的变量 FOIL使用的性能度量FOIL_Gain不同于表10-2中的熵度量,这是为了区别规则变量的不同约束,以及由于FOIL只搜寻覆盖正例的规则 机器学习-学习规则集合 作者:Mitchell 译者:曾华军等 讲者:陶晓鹏

26 机器学习-学习规则集合 作者:Mitchell 译者:曾华军等 讲者:陶晓鹏
FOIL中的候选特化式的生成 FOIL生成多个不同的新文字,每个可被单独地加到规则前件中 更精确地,假定当前规则为: P(x1,...,xk)L1...Ln FOIL生成该规则的候选特化式的方法是考虑符合下列形式的新文字Ln+1 Q(v1,...,vr),其中Q为在Predicates中出现的任意谓词名,vi既可为新变量,也可为规则中已有的变量,至少有一个是当前规则中已有的 Equal(xj,xk),其中xj和xk为规则中已有的变量 以上两种文字的否定 机器学习-学习规则集合 作者:Mitchell 译者:曾华军等 讲者:陶晓鹏

27 机器学习-学习规则集合 作者:Mitchell 译者:曾华军等 讲者:陶晓鹏
FOIL中的候选特化式的生成(2) 举例:待学习的规则的目标文字是GrandDaughter(x,y),即 GrandDaughter(x,y) 生成下列候选文字 Equal(x,y) Female(x) Female(y) Father(x,y) Father(y,x) Father(x,z) Father(y,z) Father(z,y) 上面文字的否定 假定FOIL贪婪地选择了Father(y,z)作为最有希望的文字,得到一个较特殊的规则 GrandDaughter(x,y)Father(y,z) 机器学习-学习规则集合 作者:Mitchell 译者:曾华军等 讲者:陶晓鹏

28 机器学习-学习规则集合 作者:Mitchell 译者:曾华军等 讲者:陶晓鹏
FOIL中的候选特化式的生成(3) 生成进一步特化该规则的候选文字 Female(z) Equal(z,x) Equal(x,z) Father(z,w) Father(w,z) 上面文字的否定 如果FOIL选择了Father(z,x),然后又选择了Female(y),将得到下面的规则,它只覆盖正例,因此终止了进一步搜索该规则的特化式的过程 GrandDaughter(x,y)Father(y,z)Father(z,x)Female(y) FOIL移去被该规则覆盖的所有样例,如果还有未覆盖的正例,算法将开始搜索下一个规则 机器学习-学习规则集合 作者:Mitchell 译者:曾华军等 讲者:陶晓鹏

29 机器学习-学习规则集合 作者:Mitchell 译者:曾华军等 讲者:陶晓鹏
引导FOIL的搜索(选择文字) 要在每一步中从候选文字中选择最有希望的文字,FOIL在训练数据上测量规则的性能 在此过程中,考虑当前规则中每个变量的可能的约束 FOIL使用评估函数以估计增加新文字的效用,它基于加入新文字前后的正例和反例的约束数目 考虑某个规则R和一个可能被加到R的规则体的候选文字L,令R’为加入文字L到规则R后生成的规则,则 按照信息论理论,Foil_Gain(L,R)可看作,为了编码R的所有正例约束的分类所需的全部位数由于L带来的减少 机器学习-学习规则集合 作者:Mitchell 译者:曾华军等 讲者:陶晓鹏

30 机器学习-学习规则集合 作者:Mitchell 译者:曾华军等 讲者:陶晓鹏
学习递归规则集 如果在表10-4的算法输入参数Predicates中包含目标谓词(即规则头的谓词),那么FOIL在生成候选文字时必须考虑它,这允许产生递归的规则 递归规则是否能被FOIL发现,取决于它在FOIL的贪婪搜索中是否比其他候选评分更高 避免在学习规则集中产生无限递归 机器学习-学习规则集合 作者:Mitchell 译者:曾华军等 讲者:陶晓鹏

31 机器学习-学习规则集合 作者:Mitchell 译者:曾华军等 讲者:陶晓鹏
FOIL小结 FOIL扩展了CN2的序列覆盖算法,执行一般到特殊的搜索,每步增加一个新的文字到规则前件中,新文字可是规则前件或后件中已有的变量,或为新变量 FOIL在每一步使用Foil_Gain函数在候选新文字中进行选择,如果新文字可指向目标谓词,那么FOIL可能学习到递归规则 在训练数据无噪声的情况下,FOIL可持续地增加新文字到规则中,直到不覆盖任何反例 为处理有噪声数据,搜索的终止需要在规则精度、覆盖度和复杂性之间做出折中 FOIL使用最小描述长度的方法终止规则增长,新的文字只在它们的描述长度短于它们所解释的数据的描述长度时才被加入 机器学习-学习规则集合 作者:Mitchell 译者:曾华军等 讲者:陶晓鹏

32 机器学习-学习规则集合 作者:Mitchell 译者:曾华军等 讲者:陶晓鹏
作为逆演绎的归纳 归纳逻辑编程,基于一个简单的事实:归纳是演绎的逆过程 一般来说,机器学习涉及的是如何建立能解释观察数据的理论,给定某些数据D和一些不完整的背景知识B,学习过程被描述为生成一个假设h,它与B一起解释了D,即 基于背景知识扩展谓词集合的过程,称为建设性归纳 可以利用演绎推理的逆过程,以使归纳泛化的过程自动化 机器学习-学习规则集合 作者:Mitchell 译者:曾华军等 讲者:陶晓鹏

33 机器学习-学习规则集合 作者:Mitchell 译者:曾华军等 讲者:陶晓鹏
作为逆演绎的归纳(2) 我们感兴趣的是设计一个逆涵蕴算子O(B,D),它使用训练数据D和背景知识B作为输入,输出一个满足式子10.2的假设h 满足式子10.2的假设很多,一般依赖最小描述长度准则来进行选择 逆演绎的归纳方法有许多有吸引力的特点: 包含了一种普遍的学习定义方法,即寻找某个一般概念,它与给定的训练样例相拟合 通过引入背景知识,可以对一个假设何时可被称作“拟合”训练数据进行更充分的定义 通过引入背景知识B,该公式要求学习算法使用这一背景信息来引导h的搜索,而不是只搜索语法上合法的假设空间 机器学习-学习规则集合 作者:Mitchell 译者:曾华军等 讲者:陶晓鹏

34 机器学习-学习规则集合 作者:Mitchell 译者:曾华军等 讲者:陶晓鹏
作为逆演绎的归纳(3) 不能处理有噪声的数据,不允许在观察到实例xi和其目标值f(xi)中出现差错的可能性,这样的差错可能产生对h的不一致约束,但是多数形式逻辑框架完全没有处理不一致断言的能力 一阶逻辑语言的表征力太强,而且满足式子10.2的假设很多,以至于假设空间的搜索在一般情形下难以执行 尽管直觉上背景知识有助于限制假设的搜索,但在多数ILP系统中,搜索的复杂度随着背景知识的增加而增高 机器学习-学习规则集合 作者:Mitchell 译者:曾华军等 讲者:陶晓鹏

35 机器学习-学习规则集合 作者:Mitchell 译者:曾华军等 讲者:陶晓鹏
逆归纳 自动演绎的一般方法是Robinson提出的归纳规则,归纳规则是一阶逻辑中一个合理且完备的演绎推理规则 算法Gigol通过反转归纳规则来形成逆涵蕴算子 命题归纳规则是 归纳算子 给定初始子句C1和C2,从子句C1中寻找一个文字L,并且L出现在C2中 通过合并C1和C2中的除了L和L的所有文字,形成归纳式C,即C=(C1-{L})(C2-{L}) 给定两个子句,归纳算子首先确定文字L是否以正文字出现在一个子句中,以负文字出现在另一个子句中,然后使用上面的归纳规则,见图10-2 机器学习-学习规则集合 作者:Mitchell 译者:曾华军等 讲者:陶晓鹏

36 机器学习-学习规则集合 作者:Mitchell 译者:曾华军等 讲者:陶晓鹏
逆归纳(2) 归纳算子根据初始子句C1和C2,得到归纳式C,逆涵蕴算子O(C,C1)根据C和C1得到另一个初始子句C2 逆归纳是不确定的,即可能有多个子句C2,使得C1和C2产生C,在其中进行选择的一个启发式方法是偏好更短的子句,即假定C2和C1没有共同的文字 逆归纳算子 给定初始子句C1和C,寻找一个文字L,它出现在子句C1中但不出现在C中 通过包含下列的文字,形成第二个子句C2=(C-(C1-{L})){L} 机器学习-学习规则集合 作者:Mitchell 译者:曾华军等 讲者:陶晓鹏

37 机器学习-学习规则集合 作者:Mitchell 译者:曾华军等 讲者:陶晓鹏
逆归纳(3) 可以基于逆归纳这样的逆涵蕴算子开发出规则学习算法来 一种策略是使用序列覆盖算法,循环地以这种方法学习Horn子句集 每次循环中,算法选择没有被以前学习到的子句覆盖的一个训练样例<xi,f(xi)>,然后应用归纳规则来生成满足(Bhixi)f(xi)的候选假设hi 这是一个样例驱动的搜索,因为每个候选假设的建立是为了覆盖一特定样例 如果存在多个候选假设,那么选择的策略是选取在其他样例上也有最高精度的假设 Gigol程序使用了结合这种序列覆盖算法的逆归纳,通过它与用户交互,获得训练样例并引导它在可能的归纳推理步骤的巨大空间中的搜索, Gigol使用了一阶表示而不是命题表示 机器学习-学习规则集合 作者:Mitchell 译者:曾华军等 讲者:陶晓鹏

38 机器学习-学习规则集合 作者:Mitchell 译者:曾华军等 讲者:陶晓鹏
一阶归纳 归纳规则可以很容易地扩展到一阶表示,与命题归纳的关键不同是:这个过程基于合一置换操作 定义置换为变量到项的任意映射,符号W表示应用置换到表达式W上的结果 置换的例子 L=Father(x,Bill) ={x/Bob, y/z} L=Father(Bob,Bill) 合一置换:如果L1=L2,则为两个文字L1和L2的合一置换 机器学习-学习规则集合 作者:Mitchell 译者:曾华军等 讲者:陶晓鹏

39 机器学习-学习规则集合 作者:Mitchell 译者:曾华军等 讲者:陶晓鹏
一阶归纳(2) 合一置换的意义在于可用来推广命题的归纳规则,在一阶归纳中,从子句C1中寻找一文字L1和在C2中寻找一文字L2,使得存在L1和L2的合一置换,则归纳式计算方法如下 C=(C1-{L1})(C2-{L2}) 表10-7一阶形式的归纳规则 寻找C1中的文字L1,C2中的文字L2,以及置换,使得L1=L2 通过包含C1和C2中,除了L1和L2以外的文字,形成归纳式C,见式子10.3 机器学习-学习规则集合 作者:Mitchell 译者:曾华军等 讲者:陶晓鹏

40 机器学习-学习规则集合 作者:Mitchell 译者:曾华军等 讲者:陶晓鹏
一阶归纳(3) 一阶形式的归纳的举例 C1=White(x)Swan(x), C2=Swan(Fred) 首先表示成子句形式C1=White(x)Swan(x) 找到C1中的文字L1=Swan(x)和C2中的文字L2=Swan(Fred),存在它们的合一置换={x/Fred} 因此归纳结果C=White(Fred)=White(Fred) 机器学习-学习规则集合 作者:Mitchell 译者:曾华军等 讲者:陶晓鹏

41 机器学习-学习规则集合 作者:Mitchell 译者:曾华军等 讲者:陶晓鹏
一阶情况的逆归纳 式子10.3中的合一置换可被为唯一地分解为1和2,即=12,1包含涉及C1中变量的所有置换,2包含涉及C2中变量的所有置换 由于C1和C2是全称量化陈述,可以使用不同的变量名,因此上面的分解是合理的 使用这种分解,式子10.3可重新表达为:C=(C1-{L1})1(C2-{L2})2 使用归纳规则的定义L2=L112-1,解出C2为 C2=(C-(C1-{L1}1)2{L112-1} 机器学习-学习规则集合 作者:Mitchell 译者:曾华军等 讲者:陶晓鹏

42 机器学习-学习规则集合 作者:Mitchell 译者:曾华军等 讲者:陶晓鹏
一阶情况的逆归纳(2) 式子10.4表示的逆涵蕴算子是非确定的,在应用过程中,一般可找到待归纳的子句C1和置换1和2的多种选择,每组不同的选择都产生一个不同的C2 机器学习-学习规则集合 作者:Mitchell 译者:曾华军等 讲者:陶晓鹏

43 机器学习-学习规则集合 作者:Mitchell 译者:曾华军等 讲者:陶晓鹏
一阶情况的逆归纳(3) 图10-3显示了此逆归纳规则应用在一个简单例子上的多个步骤 训练数据D=GrandChild(Bob, Shannon) 背景知识B={Father(Shanon,Tom), Father(Tom, Bob)} 学习目标谓词GrandChild(y,x)的规则 第一步 设置结论C为训练样例GrandChild(Bob, Shannon) 从背景知识中选择子句C1=Father(Shannon, Tom) 选择逆置换1-1={},2-1={Shannon/x} 得到C2=GrandChild(Bob,x)Father(x,Tom) 第二步 设置结论为上步得到的C=C2 从背景知识中选择C1=Father(Tom, Bob) 得到GrandChild(y,x)Father(x,z)Father(z,y) 机器学习-学习规则集合 作者:Mitchell 译者:曾华军等 讲者:陶晓鹏

44 机器学习-学习规则集合 作者:Mitchell 译者:曾华军等 讲者:陶晓鹏
逆归纳小结 逆归纳提供了一种一般的途径以自动产生满足式子10.2的假设 与FOIL方法的差异 逆归纳是样例驱动,FOIL是生成再测试 逆归纳在每一步只考虑可用数据中的一小部分,FOIL考虑所有的可用数据 看起来基于逆归纳的搜索更有针对性且更有效,但实际未必如此 机器学习-学习规则集合 作者:Mitchell 译者:曾华军等 讲者:陶晓鹏

45 机器学习-学习规则集合 作者:Mitchell 译者:曾华军等 讲者:陶晓鹏
泛化、-包容于和涵蕴 考虑如下的定义 more_general_than:给定两布尔值函数hj(x)和hk(x),称hjghk,当且仅当(x)hk(x)hj(x)(参见第2章) -包容于:考虑两个子句Cj和Ck,称Cj -包容于Ck,当且仅当存在一个置换,使得CjCk 涵蕴:考虑两个子句Cj和Ck,子句Cj被称为涵蕴Ck,当且仅当Ck从Cj中演绎派生 机器学习-学习规则集合 作者:Mitchell 译者:曾华军等 讲者:陶晓鹏

46 机器学习-学习规则集合 作者:Mitchell 译者:曾华军等 讲者:陶晓鹏
泛化、-包容于和涵蕴(2) 三个定义之间的关系 泛化和-包容于的关系:如果h1gh2,则子句C1:c(x)h1(x) -包容于子句C2:c(x)h2(x) -包容于是涵蕴的一种特殊形式,即如果子句A -包容于子句B,则AB,然而反之不一定成立 因此,泛化是-包容于的一种特殊情况,而-包容于又是涵蕴的特殊情况 通过泛化和特化假设来搜索假设空间比用一般的逆涵蕴算子来搜索更局限 遗憾的是,逆涵蕴这种最一般的形式可产生无法处理的搜索 中间的-包容于提供了位于泛化和涵蕴之间的一种概念和方法 机器学习-学习规则集合 作者:Mitchell 译者:曾华军等 讲者:陶晓鹏

47 机器学习-学习规则集合 作者:Mitchell 译者:曾华军等 讲者:陶晓鹏
Progol 在实践中,逆归纳容易导致候选假设的组合爆炸 另一种途径(Progol的思想)是: 只使用逆涵蕴来生成一个最特殊假设,它与背景信息一起涵蕴观察的数据 然后,这个最特殊假设可用于确定假设空间的一般到特殊搜索边界,只考虑比此边界更一般的假设 机器学习-学习规则集合 作者:Mitchell 译者:曾华军等 讲者:陶晓鹏

48 机器学习-学习规则集合 作者:Mitchell 译者:曾华军等 讲者:陶晓鹏
Prolog(2) Progol使用的算法概述 用户指定使用一个受限的一阶表示语言为假设空间H, Progol使用序列覆盖法来从H中学习一组覆盖数据的表达式 Progol在这个由最一般假设和第2步中得到的特殊边界hi所界定的假设空间中执行了一般到特殊搜索,在此假设集合中,它寻找有最小描述长度的假设 机器学习-学习规则集合 作者:Mitchell 译者:曾华军等 讲者:陶晓鹏

49 机器学习-学习规则集合 作者:Mitchell 译者:曾华军等 讲者:陶晓鹏
小结 序列覆盖算法学习析取的规则集,方法是先学习单个精确的规则,然后移去被此规则覆盖的正例,再在剩余样例上重复这一过程 序列覆盖算法提供了一个学习规则集的有效的贪婪算法,可作为由顶向下的决策树学习算法的替代算法,决策树算法可被看作并行覆盖,与序列覆盖相对应 在序列覆盖算法中,已研究了多种方法以学习单个规则,这些方法的不同在于它们考察规则前件空间的策略不同 一阶规则集提供了一种表征能力很强的表示,学习一阶Horn子句的问题常被称为归纳逻辑编程的问题 机器学习-学习规则集合 作者:Mitchell 译者:曾华军等 讲者:陶晓鹏

50 机器学习-学习规则集合 作者:Mitchell 译者:曾华军等 讲者:陶晓鹏
小结(2) 学习一阶规则集的方法是将CN2中的序列覆盖算法由命题形式扩展到一阶表示,体现在FOIL程序中,它可学习包括简单递归规则集在内的一阶规则集 学习一阶规则集的另一个方法是逆归纳,通过运用熟知的演绎推理的逆算子来搜索假设 Cigol使用的逆归纳是归纳算子的逆转,而归纳是普遍用于机器定理证明的一种推理规则,Progol结合了逆涵蕴策略和一般到特殊策略来搜索假设空间 机器学习-学习规则集合 作者:Mitchell 译者:曾华军等 讲者:陶晓鹏

51 机器学习-学习规则集合 作者:Mitchell 译者:曾华军等 讲者:陶晓鹏
补充读物 Winston1970,学习如“arch”这样的概念的网络式描述 Banerji1964,1969,将逻辑表示用于学习问题的研究 Michalski,AQ算法 Plotkin1970,-包容于的定义,对归纳和演绎之间的关系进行了形式化 Vere1975,研究了学习的逻辑表示问题 Buchanan1976,Meta-Dendral程序可学习分子结构中可在质谱仪中被分割的部分的关系描述 Mitchell1979,候选消除变型空间算法被用于化学结构的关系描述 机器学习-学习规则集合 作者:Mitchell 译者:曾华军等 讲者:陶晓鹏

52 机器学习-学习规则集合 作者:Mitchell 译者:曾华军等 讲者:陶晓鹏
补充读物(2) Horn子句的研究 Shapiro1983,MIS Sammut & Banerji1986,MARVIN Quinlan1990,FOIL Dzerosk1991,mFOIL Pazzani et al.1991,FOCL De Raedt & Bruynooghe1993,CLAUDIEN Grobelnik1992,MARKUS Muggleton & Buntine1988,逆涵蕴 机器学习-学习规则集合 作者:Mitchell 译者:曾华军等 讲者:陶晓鹏

53 机器学习-学习规则集合 作者:Mitchell 译者:曾华军等 讲者:陶晓鹏
补充读物(3) 归纳逻辑编程 Lavrac & Dzeroski,一个可读性很强的教材 Wrobel1996,一个好的综述 Bratko & Muggleton1995,概述了ILP在一些重要问题上的应用 机器学习-学习规则集合 作者:Mitchell 译者:曾华军等 讲者:陶晓鹏


Download ppt "机器学习-学习规则集合 作者:Mitchell 译者:曾华军等 讲者:陶晓鹏"

Similar presentations


Ads by Google