1、第 12 章 归纳和分析学习的结合纯粹的归纳学习方法通过在训练样例中寻找经验化的规律来形成一般假设。纯粹的分析方法使用先验知识演绎推导一般假设。本章考虑将归纳和分析的机制结合起来的方法,以获得两者的优点:有先验知识时更高的泛化精度,和依赖训练数据克服先验知识的不足。所得到的结合的方法比纯粹的归纳学习方法和纯粹的分析学习方法性能都要高。本章考虑的归纳-分析学习方法同时基于符号表示和人工神经网络表示。12.1 动机在前几章我们已经见到了两种类型的机器学习:归纳学习和分析学习。归纳方法如决策树归纳和神经网络反向传播等,它寻找拟合训练数据的一般假设。分析的方法如 Prolog-EBG,它寻找拟合先验知
2、识的一般假设,同时使它覆盖训练数据。这两种学习范型所基于的对学习到的假设的论证方法有根本的不同,因此,优缺点互为补充。将它们结合起来有可能得到更强有力的学习方法。纯粹的分析学习方法优点在于,可用先验知识从较少的数据中更精确地泛化以引导学习,然而当先验知识不正确或不足时,这一方法可能会进入歧途。纯粹的归纳方法具有的优点是不需要显式的先验知识,并且主要基于训练数据学习到规律。然而,若训练数据不足时它能会失败,并且会被其中隐式的归纳偏置所误导,而归纳偏置是从观察数据中泛化所必需的。表 12-1 概述了两者的互补的优点和缺陷。本章考虑的问题是怎样将二者结合成一个单独的算法,以获得它们各自的优点。归纳和
3、分析学习方法之间的不同可从它们对学习到的假设进行的论证(justification)的性质中看出。由纯粹的分析学习(如 Prolog-EBG)输出的假设执行的是逻辑(logical)论证:输出的假设从领域理论和训练数据中演绎派生。对纯粹的归纳学习方法(如反向传播)输出的假设执行的是统计论证:输出的假设从统计论据中派生,它说明训练样本足够大从而可能代表样例的基准分布。归纳的统计论证在第 7 章讨论的 PAC 学习中已被清晰地阐明。既然分析的方法提出逻辑论证的假设,而归纳方法提供统计论证的假设,很容易看出为什么可以将两者结合起来。逻辑的论证的强度只相当于它们所基于的假定或先验知识。如果先验知识不正
4、确或不可得,逻辑论证是不可信的且无力的。统计论证的强度依赖于它们基于的数据和统计假定。当基准分布不可信或数据稀缺时,统计论证也是不可信且无力的。简而言之,两种方法针对不同的类型的问题时才有效。通过两者的结合,有望开发出更通用的学习方法,可以覆盖较广的学习任务。表 12-1 纯粹的分析学习和纯粹归纳学习的比较归纳学习 分析学习目标 拟合数据的假设 拟合领域理论的假设论证 统计推理 演绎推理优点 需要很少先验知识 从稀缺的数据中学习缺陷 稀缺的数据,不正确的偏置 不完美的领域理论插图 原书页码: 336Inductive learning: 归纳学习Plentiful data: 丰富的数据No
5、prior knowledge:无先验知识Analytical learning: 分析学习Perfect prior knowledge:完美的先验知识Scarce data: 稀缺的数据图 12-1 学习任务的分布范围。在最左端,没有可用的先验知识,因此需要纯粹的归纳学习方法以及较高的样本复杂度。在最右端,有完美的领域理论,可以使用如 Prolog-EBG 这样的纯粹分析方法。更多的实际问题位于这两个极端之间。图 12-1 概述了学习问题的分布范围,它随着可获得的先验知识和训练数据不同而变化。在一个极端,有大量的训练数据,但没有先验知识。在另一极端,有很强的先验知识,但训练数据很少。多数实
6、际学习问题位于这两个极端之间。例如,分析医疗记录的数据库以学习“用治疗手段 x 比治疗手段 y 更有效的病症”,通常可以开始于近似的先验知识(如疾病中内在的因果机制的定性模型),比如认定患者的体温比他的姓名更相关。类似地,在分析一个股票市场数据库以学习目标概念“股票值在后 10 个月会翻番的公司”中,如果已有了经济学的大概知识,可以提出公司的总利润比公司标志的颜色更相关。在这两种问题中,我们的先验知识是不完整的,但显然,它有助于区分相关和不相关的特征。本章考虑的问题是:“我们可以设计出怎样的算法,使用近似的先验知识结合可用数据来形成一般假设?”注意,即使在使用纯粹的归纳学习算法时,仍有机会基于
7、特定学习任务的先验知识来选择设计方案。例如,当应用反向传播来解决语音识别这样的问题时,设计者必须选择输入和输出数据的编码方式、在梯度下降中被最小化的误差函数、隐藏单元的数量、网络的拓扑结构、学习速率和冲量等。在做这些选择时,设计者可以将领域特定的知识嵌入到学习算法中。然而结果仍然是纯粹的归纳算法反向传播的一个实现,由设计者特殊化后针对语音识别任务。我们的感兴趣的不在于此,而在于一个系统能将先验知识作为显式的输入给学习器,训练数据也同样作为显式输入。这样它们仍为通用的算法,但利用了领域特定的知识。简要地概括一下,我们感兴趣的是使用显式输入的领域相关知识的领域无关算法。对于结合了归纳和分析学习的不
8、同方法,应使用什么样的准则来比较它们呢?由于学习器一般不能预先知道领域理论和训练数据的质量。我们感兴趣的是能对图 12-1 整个问题系列都可操作的一般方法。这样的学习方法应具有以下的特殊属性: 如果没有领域理论,它至少能像纯粹的归纳方法一样有效学习。 如果有完美的领域理论,它至少能像纯粹的分析方法样有效学习。 如果领域理论和训练数据都不完美,它应能结合两者的长处,比单纯的归纳或分析方法的性能都要好。 它应能处理训练数据中未知程度的差错。 它应能处理领域理论中未知程度的差错。注意这里列出的期望目标很难达到。例如,处理训练数据中的差错,即使在基于统计的归纳方法中,如果没有某些先验知识和对差错分布的
9、假定,这仍是值得研究的问题。结合归纳和分析学习的方法是当前活跃的研究领域。虽然上面列出的是我们希望算法能达到的美好性质,目前没有算法能以完全一般化的方式满足所有这些约束。下一节对结合归纳-分析学习的问题作出了更详细的讨论。后面几节描述了 3 种不同的途径,结合近似的先验知识和可用数据来指导学习器搜索合适的假设。每种途径都已在多个问题领域中显示出有超出纯归纳方法的性能。为方便比较,我们使用同一例子来说明 3 种途径。12.2 学习的归纳-分析途径12.2.1 学习问题概而言之,本章考虑的学习问题为:已知: 一个训练样例集合 D,可能包含差错 一个领域理论 B,可能包含差错 候选假设的空间 H求解
10、: 一个最好地拟合训练样例和领域理论的假设“最好地拟合训练样例和领域理论”这句话确切含义是什么?或者说,是否会选择一个拟合数据程度较好而拟合理论较差的假设,或反之?为了更精确起见,需要定义对应数据和对应于领域理论的假设错误率度量,然后用这些错误率来表示这个问题。回忆第 5 章中 errorD(h)定义为 D 中被 h 误分类的样例所占比例。可定义 h 关于领域理论 B 的错误率 errorB(h)为,h 与 B在分类一个随机抽取实例时不一致的概率。接下来就可尝试用这些错误率的形式刻画所希望的输出假设。例如,我们可以要求假设使上述错误率的某种综合度量最小化,如: )()(minargheroke
11、rokBDHh虽然粗看起来这很合理,但还不清楚怎样确定 kD和 kB的值,以指定拟合数据和拟合理论两者的相对重要程度。如果有非常差的理论,却有大量可靠数据,最好使 errorD(h)的权值更大。如果有很强的理论,而数据样本很小且存在大量噪声,把 errorB(h)的权值增大会得到最好的结果。当然如果学习器预先不知道领域理论和训练数据的质量,它就不清楚该怎样为这两部分错误率加权。怎样确定先验知识和数据权值这一问题,另一种解决方法是使用贝叶斯的观点来考虑。回忆一下第 6 章,贝叶斯定律描述了怎样计算给定训练数据 D 时假设 h 的后验概率 P(h|D)。确切地讲,贝叶斯定律计算此后验概率是基于观察
12、到的数据 D 以及先验知识的,以 P(h)、P(D )和 P(D|h)的形式表示。因此我们可把 P(h)、P (D)和 P(D|h)看作是某种形式的背景知识或领域理论,而且可把贝叶斯理论看成一种为领域理论加权的方法,它与观察到的数据 D 一起,赋予h 的后验概率为 P(h|D)。按照贝叶斯的观点,所选择的假设应为后验概率中最大的一个,并且贝叶斯公式提供了为此先验知识和观察到数据的贡献加权的良好方法。不幸的是,贝叶斯公式隐含假定了拥有关于 P(h)、P (D)和 P(D|h)概率分布的完美的知识。当这些量只是近似已知时,单独贝叶斯公式没有规定如何将其与观察数据结合起来。(在此情况下一种方法是假定
13、有 P(h),P(D)和 P(D|h)之上的先验概率分布,然而后计算后验概率 P(h|D)的期望值。然而这要求有 P(h),P(D)和 P(D|h)之上的先验分布方面的附加知识,因此并没有真正解决此问题。)当考虑特定算法时,我们会再次考虑“最佳”拟合假设和数据是什么含义。现在,我们只是简单地称学习问题是为了使假设在数据和领域理论上错误率的某种综合度量最小化。12.2.2 假设空间搜索如何将领域理论和训练数据最好地结合起来,以限制可接受假设的搜索?这在机器学习中仍是待研究的问题。本章考察了几种已提出的方法,其中许多要对已讨论过的归纳方法(如反向传播,FOIL)进行扩展。为了解可能途径的范围,一种
14、办法是回到前面对学习的看法,即将其看作是一种搜索多个可选假设空间的任务。为了将大多数学习任务刻画为搜索算法,需要定义待搜索的假设空间H,搜索的开始点初始假设 h0,定义单个搜索步的搜索算子集合 O,以及指定搜索目标的目的判据 G。本间中探索了 3 种方法使用先验知识来改变纯归纳方法中执行的搜索。 使用先验知识推导出搜索起步的初始假设。用这种方法,领域理论 B 被用于建立一个与 B 一致的初始假设 h0。然后以这个初始假设 h0 为起点应用标准归纳方法。例如,下面描述的 KBNN 系统是按这种方法学习人工神经网络的。它使用先验知识来设计初始网络的互联结构和权值,这样,此初始网络与给定的领域理论完
15、全一致。然后此初始网络假设使用反向传播算法和训练数据被归纳地精化。从一个与领域理论一致的假设开始搜索,使得最终输出假设更有可能拟合此理论。 使用先验知识来改变假设空间搜索的目标。在这种方法中,目的判据 G 被修改,以要求输出假设拟合训练样例的同时也拟合领域理论。例如,下面描述的 EBNN系统以这种方法学习神经网络。神经网络的归纳学习执行梯度下降来使网络在训练数据上的误差平方最小化,而 EBNN 中执行梯度下降来优化另一个判据。这个修改的判据包含一个附加项,它衡量了学习到的网络相对于领域理论的误差。 使用先验知识改变可用的搜索步。在此方法中,领域理论修改了搜索算子集合 O。例如,下面描述的 FO
16、CL 系统以这种方法学习 Horn 子句集。它基于归纳系统FOIL。FOIL 在可能的 Horn 子句空间上执行贪婪搜索,每步通过加入一个新文字来修正当前假设。FOCL 在修正假设中使用领域理论来扩展可用的文字集合。它允许在单个搜索步中加入多个文字,只要它们能由领域理论保证其正确性。以这种方式,FOCL 在假设空间中移动一步相当于使用原来的算法移动多步。这些“宏移动”(macro-moves )可极大地改变搜索的方向,这样最终的与数据一致的假设与只使用归纳搜索步时找到的假设不同。下面几节依次介绍了这几种方法。12.3 使用先验知识得到初始假设一种使用先验知识的方法是,将假设初始化为完美拟合领域
17、理论,然后按照需要归纳地精化此初始假设以拟合训练数据。这种方法被用于 KBANN(Knowledge-Based Artificial Neural Network,基于知识的人工神经网络)算法中。在 KBANN 中,首先建立了一个初始的网络。对每个可能实例,网络赋予它的分类等于领域理论赋予的分类。然后应用了反向传播算法来调整初始网络,使其拟合训练样例。很容易看出,该技术的动机在于:如果领域理论是正确的,初始假设将正确分类所有训练样例,而无需再对其修正。然而,如果初始假设不能完美地分类训练样例,那么它需要被归纳精化,以改进其在训练样例上的拟合度。回忆在纯粹归纳的反向传播算法中,权值一般被初始化
18、为小的随机值。KBANN 背后的直观含义在于,即使领域理论是近似正确的,将网络初始化为拟合领域理论,比初始化为随机权值有更好的近似开端。这应该会得到有更好的泛化精度的最终假设。这种使用领域理论来初始化假设的途径已经被许多研究者探索过。包括 Shavlik Thrun 1996),这种算法以两种方式改进了 TangentProp 算法。首先,它不依靠用户提供训练导数,而是对每个训练样例自行计算此训练导数。计算方法是通过用一套给定的领域理论来解释每个训练样例。其次,EBANN 涉及了如何确定学习过程中归纳和分析部分相对重要程度的问题(即如何选择式 12.1 中参数 的值)。 的值是对每个训练样例独
19、立选择的,它基于一个启发式规则,考虑领域理论能否精确预测特定样例的训练值。因此对于那些能由领域理论正确解释的训练样例,学习的分析成分被强化;而对不能正确解释的样例,分析成分被弱化。EBNN 的输入包括(1)形式为 的一组训练样例,不包含训练导数;(2)一组领域理论,类似于基于解释的学习(第 11 章)和 KBANN 中使用的,但它表示为一组预先训练过的神经网络,而不是 Horn 子句。EBNN 的输出是一个能逼近目标函数 f 的新的神经网络。此学习到的网络能够拟合训练样例,以及从领域理论中抽取的 f 的训练导数。对训练样例的拟合构成了学习的归纳成分,而对领域理论中抽取的训练导数的拟合构成了学习
20、的分析成分。为说明 EBNN 中使用的领域理论,考虑图 12-7。图的上面部分显示的是目标函数 Cup 的EBNN 领域理论,每一方块表示领域理论中一个神经网络。注意在此例中,表 12-3 的符号领域理论中每个 Horn 子句有一对应的网络。例如,标为 Graspable 的网络输入为一实例描述,输出为反映对象是否 Graspable 的值(EBNN 典型情况下用 0.8 表示真命题,用 0.2 表示假命题)。此网络类似于表 12-3 中给出的 Graspable 的 Horn 子句。某些网络以其他网络的输出作为输入(例如,最右边标为 Cup 的网的输入为 Stable、Liftable 和
21、OpenVessel 网络的输出。)因此,组成领域理论的这些网络可以链接起来,对每个输入案例推理出目标函数,如 Horn 子句之间的链接一样。一般地,这些领域理论网络可由某外部源提供给学习器,或者也可是同一系统以前学习的结果。EBNN 使用这些领域理论来学习新的目标函数。它在此过程中不改变领域理论。EBNN 的目的是学习一个描述目标函数的新神经网络。我们将此新网络称为目标网络(target network)。在图 12-7 的例子中,目标网络 Cuptarget显示在图的底部,它的输入为任意的实例描述,输出为表示此对象是否为 Cup 的值。EBNN 通过执行前一节描述的 TangentProp
22、 算法来学习目标网络,回忆一下, TangentProp训练网络以拟合训练值和训练导数。EBNN 把它接收到的输入训练值传递给TangentProp。此外,EBNN 还把它从领域理论中计算出的导数提供给 TangentProp。为理解EBNN 是如何计算这些训练导数的,再次考虑图 12-7。图上方显示了对一特定训练实例 xi,领域理论作出的目标函数值预测。EBNN 对应于输入实例的每一个特征计算此预测的导数。例如,在图中,实例 xi描述为几个特征如 MadeOfStyrofoam=0.2(即为假),而领域理论预测为Cup0.8 (即真)。EBNN 对应于每个实例特征计算此预测的偏导,得到下面的
23、偏导集合: ixofamMdeOStyrCupointsUpCcavyPutBotmIsFlup ,.,插图 原书页码: 353Explanation of training example in terms of domain theory: 根据领域理论得到的训练样例的解释Target network: 目标网络图 12-7 在 EBNN 中一训练样例的解释此解释由领域理论网络(上部)作出的目标函数值预测构成。训练导数从此解释中抽取出来,以训练分离的目标网络。每个矩形块表示一个单独的多层神经网络。这组导数是领域理论预测函数对输入实例的梯度。下标表示这些导数在 x=xi上计算。在更一般的情况
24、下,目标函数有多个输出单元,梯度对每个输出进行计算。这个梯度矩阵被称为目标函数的雅可比行列式(Jacobian)。为理解这些训练导数在帮助学习目标网络的重要性,考虑导数 。如果领域理ExpensivCu论编码的知识中 Expensive 特征与目标函数 Cup 无关,那么从此解释中抽取的导数的值为 0。为 0 的导数表示这样的断言,特征 Expensive 上的改变对 Cup 值的预ExpensivCu测没有影响。另一方面,很大的正导数或负导数表示断言:此特征与目标值非常相关。因此,从领域理论解释中抽取的导数提供了区分相关和不相关特征的重要信息。当这些抽取出的导数被提供为 TangentPro
25、p 的训练导数以学习目标网络 Cuptarget,它们提供了指导泛化过程的有用的偏置(bias)。通常神经网络中的语法归纳偏置在这里被替换为从领域理论中得到的导数所产生的偏置。上面我们描述了领域理论预测如何被用于生成一组训练导数。精确地讲,完整的 EBNN算法如下:给定训练样例和领域理论,EBNN 首先创建一个新的全连接前馈网络以表示此目标函数。该目标网络被初始化为随机小权值,如在反向传播中那样。然后,EBNN 对每个训练样例确定相应的训练导数,以两步骤实现。第一步用领域理论来预测实例 xi的目标函数值。令 A(xi)代表此领域理论对实例 xi预测。换言之,A( xi)为形成 xi的解释的领域
26、理论组合网络定义的函数。第二步,分析领域理论的权值和激活状态以抽取出对应 xi每个分量的 A(xi)的导数。(即在 x=xi计算的 A(x)的雅可比行列式)。抽取导数的过程类似于反向传播算法中计算 项(见习题 12.5)。最后,EBNN 使用了 TangentProp 的微小变型来训练目标网络以拟合下面的误差函数。(12.2) i xj jjiii ifxAxffE )(22)()(其中(123)cxfAiii )(1这里 xi代表第 i 个训练实例,A(x)代表输入 x 的领域理论预测。上标符号 xj代表向量 x 的第 j 个分量(即神经网络的第 j 个输入结点)。系数 c 为一个归一化常量
27、,它的值是为了保证对所有 i, 。10i虽然公式看起来很复杂,其中的思想很简单。由式 12.2 给出的误差函数与式 12.1 中由TangentProp 最小化的误差函数有相同的一般形式。最左边的项如通常那样,是训练值 f(xi)和目标网络预测值 之间的误差平方。最右边的项衡量了从领域理论中抽取的训练导数)(ixf和目标网络的实际导数 之间的误差平方。因此,最左边的项提供是归纳约束,jxA)( jxf)(假设必须拟合训练数据;而最右边的项提供的是分析约束,即假设必须拟合从领域理论中抽取的训练导数。注意在式 12.2 中的导数 只是式 12.1 中表达式 的一种特殊形jf)( ),(ijxsf式
28、,其中将 中的 xij替为了 xij+ ,EBNN 使用的精确的权值训练法则由),(ijsThrun(1996)描述。EBNN 中归纳和分析学习部分的相对重要性由常量 i确定,它由式 12-3 定义。 i的值是由领域理论的预测 A(xi) 和训练值 f(xi)的差异确定的。学习的分析成分对于能被领域理论正确预测的训练样例其权值被加重,而对于不能正确预测的样例权值减轻。这一加权启发式规则假定在训练值能够被领域理论正确预测时,从领域理论中抽取的训练导数更有可能是正确的。虽然可能构造出此启发式规则失败的情况,在实践中几个领域中都已证明是有效的(例如,见Mitchell Thrun 1996)。12.
29、4.5 说明概括地说,EBNN 算法使用的领域理论被表示为一组预先学习到的神经网络,然后领域理论与训练样例一起训练其输出假设(目标网络)。对每个训练样例,EBNN 使用其领域理论来解释它,然后从此解释中抽取训练导数。对实例的每个属性计算出一个训练导数,以描述:按照领域理论,目标函数值是怎样由其属性值的微小变化影响的。这个训练导数被提供给TangentProp 的一个变体,其中使目标网络拟合这些导数和训练样例值。拟合导数限制了学习到网络必须拟合领域理论给出的依赖关系,而拟合训练值限制了网络必须拟合观察到的数据本身。拟合导数的权值 i是由每个训练样例独立确定的,它基于领域理论预测此样例训练值的精确
30、程度。在多个领域内,EBNN 已被证明是从近似领域理论中学习的一种有效方法。Thrum(1996)描述了它在上述讨论的 Cup 学习任务的变体上的应用,并且报告说它比标准反向传播算法泛化更为精确,特别是在训练数据缺少的情况下。例如,在经过 30 个样例训练后,EBANN 在另一测试数据集上得到的均方根误差为 5.5,而反向传播的误差为 12.0。Mitchell n=2断言如果 3 个前件中至少两个满足时,此人为 Student。给出与 KBANN 相似的一个算法,它接受一组命题型 n-of-m 子句并且能构造出与领域理论一致的神经网络。12.3 试将 KBANN 扩展,以接受包含一阶 Hor
31、n 子句的领域理论,而不只是命题 Horn 子句。(即允许 Horn 子句包含变量,如第 10 章中那样)。给出一个算法以构造等价于一个Horn 子句集的神经网络,如果不能则讨论其中的困难所在。12.4 此习题要求推导出类似于 TangentProp 使用的梯度下降法则。考虑实例空间 X 由实数构成,而假设空间 H 由 x 的二次函数构成。即每个假设形式为:h(x)=w0+w1x+w2x2(a)推导一个梯度下降法则,它最小化反向传播中相同的判据:即在假设和训练数据目标值之间的误差平方和。(b)推导一个梯度下降法则,它最小化 TangentProp 中相同的判据。只考虑一个变换 s( ,x)=x
32、+12.5 EBNN 从解释中抽取训练导数的方法是,考虑构成解释的神经网络的权值和激活状态。考虑一个简单的例子,其中解释的形式为有 n 个输入的单个 sigmoid 单元。推导一个过程以抽取导数 ,其中 xi为输入到此单元的特定训练实例, 为 sigmoid 单元输出,并且ixjf)( )(xfxj代表 sigmoid 单元第 j 个输入。也可以使用记号 xij代表 xi的第 j 个分量。提示:该导数与反向传播训练法则中的导数相似。12.6 再次考虑图 12-8 中显示的 FOCL 的搜索步骤。假如在搜索的第一层选择的假设改为:CupHasHandle描述 FOCL 生成的作为此假设后继的第二层候选假设。只需要包括那些由 FOCL 的第二个搜索算子生成的假设,即使用领域理论生成的假设。不要忘记对充分条件进行后修剪。使用表12-3 中的训练数据。12.7 本章讨论了 3 种途径来使用先验知识以影响假设空间的搜索。你认为如何集成这三种方法?能否提出一个特殊算法,它集成了至少两种算法以针对某种特殊的假设表示。在此集成中有什么样的优缺点?12.8 再次考虑 12.2.1 节中的问题,即当数据和先验知识都存在时,应使用什么样的准则在假设中进行选择。给出你在这个问题上的见解。