什么是机械学习
所谓机械学习是一种单纯依靠记忆学习材料,而避免去理解其复杂内部和主题推论的学习方法。平时多称为死记、死背或死记硬背。
由美国心理学家大卫·奥苏伯尔提出,与有意义学习相对的概念,指符号所代表的新知识与学习者认知结构中已有的知识建立非实质性的和人为的联系。如学生仅能记住乘法口诀表,形成机械的联想,但并不真正理解这些符号所代表的知识。
机械学习模式
机械学习是最简单的机器学习方法。机械学习就是记忆,即把新的知识存储起来,供需要时检索调用,而不需要计算和推理。
机械学习又是最基本的学习过程。任何学习系统都必须记住它们获取的知识。在机械学习系统中,知识的获取是以较为稳定和直接的方式进行的,不需要系统进行过多的加工。而对于其它学习系统,需要对各种建议和训练例子等信息进行加工处理后,才能存储起来。
当机械学习系统的执行部分解决好问题之后,系统就记住该问题及其解。我们可把学习系统的执行部分抽象地看成某个函数,该函数在得到自变量输入值之后,计算并输出函数值。机械学习在存储器中简单地记忆存储对。当需要时,执行部分就从存储器中把简单地检索出来而不是重新计算它。这种简单的学习模式如下:
Lenat,Hayes Roth,和Klahr等人于1979年关于机械学习提出一种有趣的观点。他们指出,可以把机械学习看成是数据化简分级中的第一级。数据化简与计算机语言编译类似;其目的是把原始信息变成可执行的信息。在机械学习中我们只记忆计算的输入输出,忽略了计算过程,这样就把计算问题化简成存取问题,见下图。
图:数据化简级别图
正像计算问题可以简化成存取问题一样,其它的推理过程也可以简化成较为简单的任务。例如推导可以简化成计算。比方说第一次要我们解一个一元二次方程的时候,我们必须使用很长的一段推导才能得出解方程的求根公式。但是一旦有了求根公式,以后再解一元二次方程时,就不必重复以前的推导过程,可以直接使用求根公式计算出根,这样就把推导问题简化成计算问题。同样地,归纳过程可以简化成推导过程。
例如我们可以在大量病例的基础上归纳总结出治疗的一般规律,形成规则,当遇见一个新病例时,我们就使用规则去处理它,而不必参照以前的众多病例推断解决办法。化简的目的,主要是为了提高工作效率。
机械学习的主要问题
对于机械学习,需要注意3个重要的问题:存储组织,稳定性和存储与计算之间的权衡。
(a) 存储组织信息。显然,只有当检索一个项目的时间比重新计算一个项目的时间短时,机械学习才有意义,检索的越快,其意义也就越大。因此,采用适当的存储方式,使检索速度尽可能地快,是机械学习中的重要问题。在数据结构与数据库领域,为提高检索速度,人们研究了许多卓有成效的数据存储方式,如索引、排序、杂凑等等,在机械学习中我们可以充分利用这些成果来实现我们的要求。
(b) 环境的稳定性与存储信息的适用性问题。在急剧变化的环境下机械学习策略是不适用的。做为机械学习基础的一个重要假定是在某一时刻存储的信息必须适用于后来的情况。然而如果信息变换得特别频繁,这个假定就被破坏了。
(c) 存储与计算之间的权衡。因为机械学习的根本目的是改进系统的执行能力,因此对于机械学习来说很重要的一点是它不能降低系统的效率。比方说,如果检索一个数据比重新计算一个数据所花的时间还要多,那么机械学习就失去了意义。
这种存储与计算之间的权衡问题的解决方法有两种。一种方法是估算一下存储信息所要花费的存储空间以及检索信息时所花费的时间,然后将其代价与重新计算所花的代价比较,再决定存储信息是否有利。另一种方法是把信息先存储起来,但为了保证有足够的检索速度,限制了存储信息的量,系统只保留那些最常使用的信息,“忘记”那些不常使用的信息。这种方法也叫“选择忘却”技术。
机械学习应用举例
虽然机械学习是机器学习中最简单的策略,但是正确使用这种策略却能对提高应用软件系统的质量起着重要作用。下面介绍吉林大学开发的建筑工程预算软件系统中采用的机械学习策略。这种方法成功地解决了工程预算中较难处理的图集问题。
建筑工程预算是建筑工程中一项困难而又重要的任务,工作量大,要求高。过去用手工编制,要花费很多时间。一份3000m2的民用建筑,一个技术人员手工编制预算需要15天至20天,加上工料分析,取费计算等等,需要近一个月时间,而且容易出错,影响预算的质量,造成资金、人员和材料的浪费与损失。近年来,随着电子计算机的普及应用,许多单位研制了建筑预算系统,减轻了建筑工程预算人员的繁重的脑力劳动,提高了工程预算的速度与准确性。
但是,建筑预算中的关键问题——工程量计算问题,却始终没有得到很好地解决。这个问题的困难之一在于现行使用的建筑工程设计图纸上的数据与计算机要求的初始输入数据之间存在着很大的差距,只有靠建筑工程人员分析观察图纸,形成计算机可接受的初始输入,才能开始计算。造成工程量计算困难的第二个原因是设计图纸中出现的大量的门窗及预制件型号。预算中,工程技术人员需要不断查阅有关资料,决定这些预制件所需工时及材料。所采用的机械学习方法主要用来解决这一困难。
建筑工程中使用的门窗,大都采用国家或省市的标准设计,如JGMC—1—16—3是建工部规定的标准木窗,窗宽1米,高1.6米,此外还确定了窗的式样,如该窗是亮子的,3开扇,中间固定,有小汽窗,根据这种标准设计图纸,人们预先计算出建造一个这种窗子所需的木料,玻璃,油漆,合页,铁角,拉手,所需木工量,油工量等等。在建筑工程图纸上,并不画出具体的窗子和门,只标明窗子和门的型号,预算时,人们只要数出各种窗子和门分别有多少个,然后根据标准图集查出每种窗子和门各需多少原材料及人工,即可求出建造门窗所需总的建筑材料及费用。
从问题的性质来看,采用计算机检索是最适宜不过了。但事情并不那么简单,问题的难点在于门窗的标准型号太多。这些标准型号的门窗,按规定标准的部门及门窗的种类编成许多厚厚的标准图集。虽然在工程预算程序内部保存了大量的标准图集,但仍不能满足预算的实际需要,一旦遇见一个先前未装入的新型号,系统只好暂时停止运行,把新型号门窗及有关数据装入后再行计算,这样算算停停,很不方便,而且使预算时间拖得很长。
建筑工程所用的门窗及预制构件虽多,但也有其规律性。一般说来,一个建筑工程设计部门经常使用某些型号,对另外一些型号却较少涉及,一个工程项目通常只采用几种或几十种型号的门窗和预制件,并不是杂乱无章的。因此可采用机械学习方法解决这一问题。当程序运行中遇见未曾装入的门窗型号或预制构型号时,不是停下来待装入后重新计算,而是向用户提出询问,根据用户提供的数据,程序算出一个窗子或门等标准构件所需木材、玻璃、铁角等材料及所需各工种工日数,然后把计算的数据提供给预算系统继续计算,并把门窗等标准构件型号与所需材料及工日保存起来,以后再遇见同种型号的标准构件,建筑工程系统只要通过检索就能获得数据,可以顺利进行下去,不再需要用户干预。因为大多数工程项目为着采购、制造、运输与管理上的方便,只采用几种或几十种的标准预制构件,所以预算系统在询问几次之后,就不必再行询问,直至计算得出最终预算结果,从而方便了用户,缩短了运行时间。
这种预算方法的另一个优点是具有广泛的适应性和自我完善能力,一个建筑设计部门通常与几个门窗生产厂家与预制件厂家有业务联系,因此通常采用某些型号的标准预制件。一旦这些型号的数据装入计算机,系统就能在大多数情况下独立完成预算。因此,上述采用的图集处理方法不仅适用于吉林省,而且其它省份与建筑部门也可同样采用,只要他们使用一段时间之后,系统所积累的型号就基本上能满足他们的要求。因此便于推广,而且使用的次数越多,积累的标准构件型号越多,系统提出询问的情况越少,计算的速度也越来越快。