第5章机器学习839903266.docx
《第5章机器学习839903266.docx》由会员分享,可在线阅读,更多相关《第5章机器学习839903266.docx(58页珍藏版)》请在冰豆网上搜索。
第5章机器学习839903266
第5章机器学习
自从计算机问世以来,人们就想知道机器能不能自己学习。
我们希望机器具有这样一种机制,它们能够根据经验来自动提高自己的性能。
想像一下,在未来,计算机能从医疗记录中学习和获取治疗新疾病最有效的方法;住宅管理系统分析住户的用电模式,以降低能源消耗;个人软件助理跟踪用户的兴趣,并为其选择最感兴趣的在线早间新闻。
对计算机学习的认识和理解将开辟出许多新的应用领域,并使其计算能力上升到新的层次。
同时,透彻理解机器学习的算法,对于人类的学习也会有更好的理解。
目前,计算机的学习能力与人类相比还有很大的差距。
我们不知道怎样使计算机具备和人类一样强大的学习能力。
然而,一些针对特定学习任务的算法已经产生,并产生了良好的效果。
关于学习的理论也开始逐步形成。
人们开发出很多计算机程序来实现不同类型的学习,并将其应用于实际中。
一些商业化的应用也已经出现。
例如,在语音识别领域,迄今为止,基于机器学习的算法明显比其他的方法更好。
在数据挖掘领域,机器学习算法被用来从包含设备维护记录、借贷申请、金融交易、医疗记录等此类信息的大型数据库中发现有价值的信息。
随着对计算机认识的日益成熟,机器学习正在计算机科学和技术中扮演越来越重要的角色!
一些具体的成功案例可以表明机器学习的发展现状:
计算机已经能够成功地识别人类的讲话(Waibell989,Leel989);霉瓣肺炎患者的康复率(Cooperetal。
1997);检测信用卡的欺诈;在高速公路上自动驾驶汽车(Pomerleaul989);以接近人类世界冠军的水平对弈西洋双陆棋”这样的游戏(Tesaur01992,1995)。
已有很多理论成果能够对训练样本数量、假设空间大小和已知假设中的预期错误这三者间的基本关系进行刻画。
我们正开始获取人类和动物学习的原始模型,用以理解它们和计算机的学习算法间的关系(例如,Laird。
tal.1986,Ander·sonl991,Qinetd.1992,Chi&Bassock1989,Ahn&Brewerl993)。
在过去的十年中,无论是应用、算法、理论,还是生物系统的研究,都取得了令人瞩目的进步。
机器学习最新的几种应用被归纳在表5-1中。
Langley&Simon(1995)以及Rumelhartetal.(1994)调查了机器学习的一些其他应用。
表5-1机器学习的一些成功应用
●学习识别人类的讲话
所有最成功的语音识别系统都使用了某种形式的机器学习技术。
例如,SPHINX系统(参见Lee1989)可针对特定讲话者学习语音识别策略,从检测到的语音信号中识别出基本的音素(phoneme)和单词。
神经网络学习方法(例如Waibeletsal.1989)和隐马尔可夫模型(hiddenMarkovmodel)学习方法(参见Leel989)在语音识别系统中也非常有效。
它们可以让系统自动适应不同的讲话者、词汇、麦克风特性和背景噪音等等。
类似的技术在很多信号解释课题中也有应用潜力
●学习驾驶车辆
机器学习方法已经用于训练计算机控制的车辆,使其在各种类型的道路上正确行驶。
例如,ALVINN系统(Pomerleaul989)已经能利用它学会的策略独自在高速公路的其他车辆之间奔驰,以70英里的时速行驶了90英里。
类似的技术有可能在很多控制问题中得到应用
●学习分类新的天文结构、
机器学习方法已经被用于从各种大规模的数据库中发现隐藏的一般规律。
例如,决策树学习算法已经被美国国家航空和航天局(NASA)用来分类天体,这些天体来自第二帕洛马天文台的太空观察结果(Fayyaadeta11995)。
这一系统现在被用于对太空观察中的所有天体进行自动分类,其中包含了3T字节的图像数据
●学习以世界级的水平对弈西洋双陆棋’
很多成功的博弈类(如西洋双陆棋)计算机程序是基于机器学习算法的。
例如;世界最好的西洋双陆棋程序TD-GAMMON(TeSO,Hl~1992,1995)是通过一百万次以上与自己对弈来学习其策略的,现在它的水平能与人类的世界冠军相比。
类似的技术已被应用于许多实际问题,在这些问题中,都需要高效地搜索庞大的搜索空间
机器学习是一个多学科的研究领域,它吸收了人工智能、概率统计、计算复杂性理论、控制论、信息论、哲学、生理学、神经科学等学科的成果。
表5-2归纳了这些学科以及它们对于机器学习的影响。
表5-2一些学科和它们对机器学习的影响
●贝叶斯方法
贝叶斯定理。
朴素(naive)贝叶斯分类器。
隐含变量的估计算法。
●计算复杂性理论
一些学习任务中固有的计算复杂性,以计算量、训练样本数量、出错数量等衡量
●控制论‘
为了优化预定目标,学习对各种处理过程进行控制,学习预测被控制的过程的下一个状态
●信息论
熵和信息内容的理论。
学习的最小描述长度方法。
●哲学
奥坎姆剃刀(Occam’srazor):
最简单的假设是最好的。
将观察到的数据泛化的理由。
●心理学学和神经生物学
实践的幂定律(powerlawofpractice)。
该定律指出对于很大范围内的学习问题人们的反应速度随着实践次数呈幂律提高。
激发人工神经网络学习模式研究。
●统计学
根据有限的样本,对假设的估计出现的误差(例如,偏差和方差)的刻画。
置信区间,统计检验。
5.1学习问题的标准描述
我们从几个学习任务开始研究机器学习。
一般来说,学习涉及下面三个因素:
计算机程序要完成的任务T,经验E,衡量其性能的指标P。
我们希望计算机在完成一个特定的任务T时,能够从经验E中学习,从而完善自我,提高指标P.
例如,对于学习下西洋跳棋的计算机程序,它可以通过和自己下棋获取经验;它的任务是参与西洋跳棋对弈;它的性能用它赢棋的能力来衡量。
通常情况下,我们必须明确这样三个特征:
任务的种类,衡量任务提高的标准,经验的来源。
西洋跳棋学习问题:
●任务T:
下西洋跳棋
●性能标准P:
比赛中击败对手的百分比
●训练经验E:
和自己进行对弈
我们可以用以上方法定义很多学习问题,例如,学习手写识别、学习自动驾驶汽车。
手写识别学习问题:
●任务T:
识别和分类图像中的手写文字
●性能标准P:
分类的正确率’
●训练经验E:
已知类别的手写文字数据库
机器人驾驶学习问题:
●任务T:
通过视觉传感器在四车道高速公路上驾驶
●性能标准P:
平均无差错行驶里程(差错由人监督确定)
●训练经验E:
在人类驾驶时录制的一系列图像和驾驶指令
这里对学习的定义非常宽泛,就像我们日常使用这个词一样。
它甚至包括了以非常直接的方式通过经验自我提高的计算机程序。
例如,一个允许用户更新数据条目的数据库系统,也符合我们对学习系统的定义:
它根据从数据库更新得到的经验提高它响应数据查询的能力。
由于担心与日常谈论的“学习”这个词相混淆,我们简单地采用我们的科技型定义——通过经验提高性能的某类程序。
从这个意义说,我们会发现很多问题或多或少需要较复杂的解决办法。
这里我们并非要分析“学习”这个词的日常含义,而是要精确地定义一类问题,其中囊括了有趣的学习形式,探索解决这类问题的方法,并理解学习问题的基本结构和过程。
5.2设计一个学习系统
为了说明机器学习的一些基本设计方法和学习途径,现在考虑设计一个学习下西洋跳棋的程序。
我们的目标是让它进入西洋跳棋世界锦标赛。
我们采用最显而易见的标准衡量它的性能:
在世界锦标赛中的获胜百分比。
5.2.1选择训练经验
我们需要考虑的第一个设计问题是选择什么样的训练经验。
给学习器提供的训练经验对它的成败有重大的影响。
一个关键属性是训练经验能否为学习系统的决策提供直接或间接的反馈。
例如,对于学习下西洋跳棋,学习系统可以从直接(direct)的训练样本,即各种棋盘状态和相应的正确走子中学习。
另一种情况,它可能利用间接(indirect)的信息,包含很多过去对弈的走子序列和最终结局。
对于后一种情况,对弈中较早走子的正确性必须从对弈最终的输赢来推断。
这时学习器又面临一个信用分配(creditassignment)问题,也就是考察每一次走子对最终结果的贡献程度。
信用分配可能是一个非常难以解决的问题,因为如果后面下得很差,那么即使起初的走子是最佳的,这盘棋也会输掉。
所以,从直接的训练样本学习要比从间接的样本学习容易。
训练经验的第二个重要属性是学习器可以在多大程度上控制训练样本序列。
例如,学习器可能依赖施教者选取的棋盘状态和所提供的每一次正确走子;或者,学习器可能自己提出它发现的特别困惑的棋局并向施教者询问正确的走子;或者,学习器可以完全控制棋局和(间接的)训练分类,就像没有施教者时它和自己对弈进行学习一样。
注意,对于最后一种情况,学习器可能选择以下两种情况中的一种:
第一,尝试它还未考虑过的全新棋局;第二,在它目前发现的最有效的路线的微小变化上对弈,以磨砺它的技能。
训练经验的第三个重要属性是,训练样本的分布与实际样本的分布的吻合程度,而系统的性能P是据此来度量的。
一般而言,当训练样本的分布和将来的测试样本的分布相似时,学习结果具有较大的可信度。
对于西洋跳棋学习问题,性能指标P是该系统在世界锦标赛上获胜的百分比。
如果它的训练经验E仅由和它自己对弈的训练样本组成,便存在一个明显的危险:
这样的训练可能不能充分地代表该系统以后被测试时的情形。
例如,学习器可能在训练中从未遇到过某些致命的棋局,而它们又非常可能被人类世界冠军采用。
实际上,学习的样本通常与最终系统被评估时的样本有一定差异,而学习器只能从训练样本中学习(举例来说,世界级的西洋跳棋冠军可能不会有兴趣教一个程序下棋)。
这的确是一个问题,因为系统在一种分布性能好,但不一定在其他分布上也有好的性能。
目前,很多最新的机器学习理论都加假设:
训练样本与测试样本分布一致。
尽管我们需要这样的假设以便得到理论结果,但必须记住在实践中这个假设经常是不成立的。
下面继续进行算法设计,我们决定系统将通过和自己对弈来训练。
这样的好处是不需要外界的训练者,只要时间允许,可以让系统产生无限多的训练数据。
现在有了一个完整的学习任务。
西洋跳棋学习问题:
●任务T:
下西洋跳棋
●性能标准P:
世界锦标赛上击败对手的百分比
●训练经验E:
和自己进行训练对弈
为了完成这个学习系统的设计,现在需要选择:
1)要学习的知识的确切类型
2)对于这个目标知识的表示
3)一种学习机制
5.2.2选择目标函数
下一个设计选择是决定要学习的知识的确切类型以及执行程序怎样使用这些知识。
我们从一个对于任何棋局都能产生合法(1egal)走子的西洋跳棋博弈程序开始。
那么,最终的程序仅须学会从这些合法的走子中选择最佳走子。
这个学习任务代表了一类任务:
合法走子定义了某个已知的巨大搜索空间,但最佳的搜索策略未知。
很多最优化问题都属于这类问题,例如:
对于生产过程的调度和控制问题。
生产中的每一步都很清楚,但调度这些步骤的最佳策略未知。
我们的目的是学习从合法走子中做出选择。
很明显,要学习的信息类型是一个程序或函数,它对任何给定的棋局能给出最好的走法,可称此函数为ChooseMove,并用记法ChooseMove:
B→M来表示这个函数接收合法棋局集合中的棋盘状态作为输入,并从合法走子集合中产生某个走子作为输出。
在关于机器学习的讨论中,我们发现把提高任务的性能的问题简化为学习像ChooseMove这样某个特定的目标函数(targetfunction)的问题是很有益的。
所以目标函数的选择是一个关键的设计问题。
尽管在例子中很明显应把ChooseMove作为目标函数,但我们会发现学习这个目标函数是非常困难的,原因是提供给系统的是间接的训练经验。
另外一个可供选择的目标函数是一个评价函数,它为任何一个给定棋局赋予一个评分。
可以发现,对于本例,学习这个目标函数是比较简单的。
这个目标函数为
,并用
:
来表示
把