第八章机器学习机器学习是继专家系统之后人工智能应用的又一重要研究领域,也是人工智能和神经计算的核心研究课题之一什么是学习?人工智能大师西蒙的观点:学习就是系统在不断重复的工作中对本身能力的增强或者改进,使得系统在下一次执行同样任务或类似任务时,会比现在做得更好或效率更高。机器能否象人类一样能具有学习能力?1959年美国的塞缪尔(Samuel)设计了一个下棋程序,这个程序具有学习能力,它可以在不断的对奕中改善自己的棋艺。4年后,这个程序战胜了设计者本人。又过了3年,此程序战胜了美国一个保持8年之久的冠军。问题:机器的能力是否能超过人?8.1机器学习的定义什么叫做机器学习(machinelearning)?至今,还没有统一的“机器学习”定义,而且也很难给出一个公认的和准确的定义。为了便于进行讨论和估计学科的进展,有必要对机器学习给出定义,即使这种定义是不完全的和不充分的。顾名思义,机器学习是研究如何使用机器来模拟人类学习活动的一门学科。更为严格的提法是:机器学习是一门研究机器获取新知识和新技能,并识别现有知识的学问。这里所说的“机器”,指的就是计算机;现在是电子计算机,以后还可能是中子计算机、光子计算机或神经计算机等等。8.2机器学习的发展史第一阶段:50年代中叶到60年代中叶,属于热烈时期第二阶段:60年代中叶至70年代中叶,被称为机器学习的冷静时期第三阶段:70年代中叶至80年代中叶,称为复兴时期机器学习的最新阶段始于1986年机器学习进入新阶段的重要表现:机器学习已成为新的边缘学科并在高校形成一门课程。结合各种学习方法,取长补短的多种形式的集成学习系统研究正在兴起。机器学习与人工智能各种基础问题的统一性观点正在形成。各种学习方法的应用范围不断扩大,一部分已形成商品。归纳学习的知识获取工具,诊断分类型专家系统连接学习,声图文识别分析学习,设计综合型专家系统遗传算法,强化学习,工程控制中与符号系统耦合的神经网络连接学习,企业的智能管理与智能机器人运动规划与机器学习有关的学术活动空前活跃。8.2.1机器学习的主要策略学习是一项复杂的智能活动,学习过程与推理过程是紧密相连的,按照学习中使用推理的多少,机器学习所采用的策略大体上可分为4种——机械学习、通过传授学习、类比学习和通过事例学习。学习中所用的推理越多,系统的能力越强。8.2.2机器学习系统的基本结构影响学习系统设计的最重要的因素是环境向系统提供的信息。或者更具体地说是信息的质量。学习系统所进行的推理并不完全是可靠的,它总结出来的规则可能正确,也可能不正确。这要通过执行效果加以检验。知识库是影响学习系统设计的第二个因素。在选择表示方式时要兼顾以下4个方面:(1)表达能力强。(2)易于推理。(3)容易修改知识库。(4)知识表示易于扩展。学习系统不能在全然没有任何知识的情况下凭空获取知识,每一个学习系统都要求具有某些知识理解环境提供的信息,分析比较,做出假设,检验并修改这些假设。因此,更确切地说,学习系统是对现有知识的扩展和改进。执行部分是整个学习系统的核心,因为执行部分的动作就是学习部分力求改进的动作。同执行部分有关的问题有3个:复杂性、反馈和透明性。机械学习模式机械学习是最简单的机器学习方法。机械学习就是记忆,即把新的知识存储起来,供需要时检索调用,而不需要计算和推理。机械学习又是最基本的学习过程。任何学习系统都必须记住它们获取的知识。在机械学习系统中,知识的获取是以较为稳定和直接的方式进行的,不需要系统进行过多的加工。而对于其它学习系统,需要对各种建议和训练例子等信息进行加工处理后,才能存储起来。当机械学习系统的执行部分解决好问题之后,系统就记住该问题及其解。我们可把学习系统的执行部分抽象地看成某个函数,该函数在得到自变量输入值(X1,X2,…,Xn)之后,计算并输出函数值(Y1,Y2,…,Yp)。机械学习在存储器中简单地记忆存储对((X1,X2,…,Xn),(Y1,Y2,…,Yp))。当需要f(X1,X2,…,Xn)时,执行部分就从存储器中把(Y1,Y2,…,Yp)简单地检索出来而不是重新计算它。这种简单的学习模式如下:Lenat,HayesRoth,和Klahr等人于1979年关于机械学习提出一种有趣的观点。他们指出,可以把机械学习看成是数据化简分级中的第一级。数据化简与计算机语言编译类似;其目的是把原始信息变成可执行的信息。在机械学习中我们只记忆计算的输入输出,忽略了计算过程,这样就把计算问题化简成存取问题,见图。机械学习的主要问题对于机械学习,需要注意3个重要的问题:存储组织,稳定性和存储与计算之间的权衡。(a)存储组织信息。显然,只有当检索一个项目的时间比重新计算一个项目的时间短时,机械学习才有意义,检索的越快,其意义也就越大。因此,采用适当的存储方式,使检索速度尽可能地快,是机械学习中的重要问题。在数据结构与数据库领域,为提高检索速度,人们研究了许多卓有成效的数据存储方式,如索引、排序、杂凑等等,在机械学习中我们可以充分利用这些成果来实现我们的要求。(b)环境的稳定性与存储信息的适用性问题。在急剧变化的环境下机械学习策略是不适用的。做为机械学习基础的一个重要假定是在某一时刻存储的信息必须适用于后来的情况。然而如果信息变换得特别频繁,这个假定就被破坏了(c)存储与计算之间的权衡。因为机械学习的根本目的是改进系统的执行能力,因此对于机械学习来说很重要的一点是它不能降低系统的效率。比方说,如果检索一个数据比重新计算一个数据所花的时间还要多,那么机械学习就失去了意义。这种存储与计算之间的权衡问题的解决方法有两种。一种方法是估算一下存储信息所要花费的存储空间以及检索信息时所花费的时间,然后将其代价与重新计算所花的代价比较,再决定存储信息是否有利。另一种方法是把信息先存储起来,但为了保证有足够的检索速度,限制了存储信息的量,系统只保留那些最常使用的信息,“忘记”那些不常使用的信息。这种方法也叫“选择忘却”技术。机械学习应用举例虽然机械学习是机器学习中最简单的策略,但是正确使用这种策略却能对提高应用软件系统的质量起着重要作用。下面介绍吉林大学开发的建筑工程预算软件系统中采用的机械学习策略。这种方法成功地解决了工程预算中较难处理的图集问题。建筑工程预算是建筑工程中一项困难而又重要的任务,工作量大,要求高。过去用手工编制,要花费很多时间。一份3000m2的民用建筑,一个技术人员手工编制预算需要15天至20天,加上工料分析,取费计算等等,需要近一个月时间,而且容易出错,影响预算的质量,造成资金、人员和材料的浪费与损失。近年来,随着电子计算机的普及应用,许多单位研制了建筑预算系统,减轻了建筑工程预算人员的繁重的脑力劳动,提高了工程预算的速度与准确性。但是,建筑预算中的关键问题——工程量计算问题,却始终没有得到很好地解决。这个问题的困难之一在于现行使用的建筑工程设计图纸上的数据与计算机要求的初始输入数据之间存在着很大的差距,只有靠建筑工程人员分析观察图纸,形成计算机可接受的初始输入,才能开始计算。造成工程量计算困难的第二个原因是设计图纸中出现的大量的门窗及预制件型号。预算中,工程技术人员需要不断查阅有关资料,决定这些预制件所需工时及材料。所采用的机械学习方法主要用来解决这一困难。建筑工程中使用的门窗,大都采用国家或省市的标准设计,如JGMC—1—16—3是建工部规定的标准木窗,窗宽1米,高1.6米,此外还确定了窗的式样,如该窗是亮子的,3开扇,中间固定,有小汽窗,根据这种标准设计图纸,人们预先计算出建造一个这种窗子所需的木料,玻璃,油漆,合页,铁角,拉手,所需木工量,油工量等等。在建筑工程图纸上,并不画出具体的窗子和门,只标明窗子和门的型号,预算时,人们只要数出各种窗子和门分别有多少个,然后根据标准图集查出每种窗子和门各需多少原材料及人工,即可求出建造门窗所需总的建筑材料及费用。从问题的性质来看,采用计算机检索是最适宜不过了。但事情并不那么简单,问题的难点在于门窗的标准型号太多。这些标准型号的门窗,按规定标准的部门及门窗的种类编成许多厚厚的标准图集。虽然在工程预算程序内部保存了大量的标准图集,但仍不能满足预算的实际需要,一旦遇见一个先前未装入的新型号,系统只好暂时停止运行,把新型号门窗及有关数据装入后再行计算,这样算算停停,很不方便,而且使预算时间拖得很长。建筑工程所用的门窗及预制构件虽多,但也有其规律性。一般说来,一个建筑工程设计部门经常使用某些型号,对另外一些型号却较少涉及,一个工程项目通常只采用几种或几十种型号的门窗和预制件,并不是杂乱无章的。因此可采用机械学习方法解决这一问题。当程序运行中遇见未曾装入的门窗型号或预制构型号时,不是停下来待装入后重新计算,而是向用户提出询问,根据用户提供的数据,程序算出一个窗子或门等标准构件所需木材、玻璃、铁角等材料及所需各工种工日数,然后把计算的数据提供给预算系统继续计算,并把门窗等标准构件型号与所需材料及工日保存起来,以后再遇见同种型号的标准构件,建筑工程系统只要通过检索就能获得数据,可以顺利进行下去,不再需要用户干预。因为大多数工程项目为着采购、制造、运输与管理上的方便,只采用几种或几十种的标准预制构件,所以预算系统在询问几次之后,就不必再行询问,直至计算得出最终预算结果,从而方便了用户,缩短了运行时间。这种预算方法的另一个优点是具有广泛的适应性和自我完善能力,一个建筑设计部门通常与几个门窗生产厂家与预制件厂家有业务联系,因此通常采用某些型号的标准预制件。一旦这些型号的数据装入计算机,系统就能在大多数情况下独立完成预算。因此,上述采用的图集处理方法不仅适用于吉林省,而且其它省份与建筑部门也可同样采用,只要他们使用一段时间之后,系统所积累的型号就基本上能满足他们的要求。因此便于推广,而且使用的次数越多,积累的标准构件型号越多,系统提出询问的情况越少,计算的速度也越来越快。归纳学习归纳是指从个别到一般,从部分到整体的一类推论行为。归纳推理是应用归纳方法所进行的推理,即从足够多的事例中归纳出一般性的知识,它是一种从个别到一般的推理。由于在进行归纳时,多数情况下不可能考察全部有关的事例,因而归纳出的结论不能绝对保证它的正确性,只能以某种程度相信它为真,这是归纳推理的一个重要特征。归纳推理是人们经常使用的一种推理方法,人们通过大量的实践总结出了多种归纳方法。枚举归纳设a1,a2,…是某类事物A中的具体事物,若已知a1,a2,…an,都有属性P,并且没有发现反例,当n足够大时,就可得出A中所有事物都有属性P的结论。这是一种从个别事例归纳出一般性知识的方法,A中所有事物都有属性P是通过归纳得到的新知识。在以下讨论的方法中,除非特别说明外,一般都可用求平均值的方法得到经归纳所得知识的可信度,不再一一说明。另外,为了提高归纳结论的可靠性,应该尽量增加被考察对象的数量,扩大考察范围,并且注意收集反例.联想归纳若已知两个事物a与b有n个属性相似或相同,即:a具有属性Pl,b也具有属性Pla具有属性P2,b也具有属性P2……a具有属性Pn,b也具有属性Pn并且还发现a具有属性Pn+1,则当n足够大时,可归纳出b也具有属性Pn+1这一新知识。类比归纳设A,B分别是两类事物的集合:A={a1,a2,…}B={b1,b2,…}并设ai与bi总是成对地出现,且当ai有属性P时,bi就有属性Q与之对应,即P(ai)→Q(bi)i=1,2,…则当A与B中有一对新元素出现时(设为A中的a',及B中的b'),若已知a'有属性P,就可得出b'有属性Q,即P(a')→P(b')逆推理归纳这是一种由结论成立而推出前提以某种置信度成立的归纳方法.在日常生活及科学研究中人们经常使用这种方法进行归纳推理。这种方法的一般模式是:(a)若H为真时,则H→E必为真或以置信度cf1成立。(b)观察到E成立或以置信度cf2成立。(c)则H以某种置信度(cf)成立。这可用公式表示为:H→Ecf1Ecf2Hcf消除归纳在日常生活及科学研究中;当我们对某个事物发生的原因还没有搞清楚时,通常都