机器学习的原则

(原文是卡耐基梅隆大学教授Tom M.Mitchell对机器学习的概述,是机器学习初学者必读的论文,我的翻译水平有限,若想要英文原版,请留言。欢迎讨论)

摘要

在过去的50年里,关于机器学习的研究,从最初的在许多计算机工程探索计算机能否学会运行游戏方面的努力以及在统计学领域容易忽视运算成本,到一个很宽松的环境,产生了很多有用的关于学习过程的统计运算理论,设计了很多经常用在语音识别,计算机视觉以及其他各种商业系统的学习算法中,并且派生出一个数据挖掘领域,在这里,我们能够发现隐藏在大量在线数据背后的规律性。这篇文章概要性地并仅代表个人观点,描述了机器学习出现的一些规则,以及它的基本问题,和其他社会和科学领域的关系以及未来的发展方向。

1、定义问题

一门科学是由它的中心问题定义的。机器学习领域致力于回答这些问题:“我们怎样构建自动增长经验的计算机系统,控制所有学习过程的基本法则是什么?”

本文涉及了大范围的学习任务,比如如何设计能够从经验中学习驾驶的自动控制移动机器人,如何通过历史的医学记录学习对症下药,以及如何构建能够根据用户的兴趣自动搜索的机器。更准确一点,我们假设一个机器学习某个特定的任务T,它的表现用P度量,经验为E,如果系统提高处理T时的表现效果P,那么该系统就增加了经验E。根据我们如何确定T,P,E,学习任务可能被称作数据挖掘,自主搜索,数据库更新,基于实例编程等。

机器学习是计算机科学和统计学交叉学科。我们可能会说计算机科学的定义问题是“我们怎样构建能够解决问题的机器,哪些问题比较容易/不容易?”统计学的定义问题是“我们从数据和假设的模型中能推断出什么,置信度怎么样?”而机器学习的定义问题兼顾两者,但又是一个不同的问题。计算机科学主要研究如何人工对计算机编程,而机器学习更关注如何让计算机自动编程(从经验和初始的结构)。统计学主要研究从数据中能推断出什么,而机器学习整合了很多问题:应用什么样的计算框架和算法能更有效地捕获,存储,索引,恢复和融合这些数据,众多的学习任务如何能够在更大的系统中运行,以及运算如何更容易的问题。

定义问题和机器学习紧密联系的另一领域是人和动物在学习心理学,神经学和其它学科学习方面的研究。计算机和动物在学习问题上可能联系更多。迄今为止,机器学习从对人类学习的研究中获得的了解相比于从计算机科学和统计学少之又少,主要因为我们对人类学习的研究还不透彻。然而,机器学习和人类学习方面的研究在继续协同发展,并且诸如时序差分算法的机器学习算法已经被建议用来解释学习动物时的神经信号。在未来的几年里我们有理由期待人类学习与机器学习的研究能够持续协同发展,因为他们都处于核心科学问题的蓝图中。

其他领域,从生物学到经济学到控制理论,都有一个核心的研究问题:如何能让系统自动调整优化来适应环境,机器学习很有可能在未来几年里改变这些领域的思想。例如,经济学对一些问题感兴趣例如人群的收入分配如何构成这样一个系统,它能够通过学习价格来达到帕累托最优分配。控制理论,尤其是自适应控制理论,主要研究一些问题例如伺服系统通过经验如何能够改善控制策略。有趣的是,其他领域的优化数学模型不同于机器学习,表明了模型和理论的交叉互补具有巨大的潜力。下面的部分主要讨论机器学习的最新水平,一个成功的案例,和一个开放的研究问题。

2、机器学习的研究状态

2.1 成功的应用

机器学习进步的一个方法是它在现实世界的运用,例如下面的列表。尽管我们现在我们对这些运用司空见惯,但值得指出的是1985年以前几乎还没有机器学习的任何商业应用。

>语音识别。当前的商业化的语音识别系统都是以各种方式运用机器学习来训练系统。原因很简单:通过训练系统来达到语音识别系统精确度的做法比手工编程更可行。事实上,许多商业化的语音识别系统都包括两个不同的学习阶段:第一是先于软件上市(用独立于说话者的方式训练系统),第二用户购置软件后的阶段(通过用依赖于说话者的方式训练来达到更高的准确度)。

>计算机视觉。许多当前的视觉系统,从人脸识别系统,到自动分类细胞的显微图像系统,都有赖于机器学习,同样也是因为它比手工编程更准确。一个用机器学习训练计算机视觉系统的大规模的运用是美国邮局用它来自动分类包含手写地址的信件。美国超过85%的手写邮件使用手写分析软件(用机器学习运用大量数据训练来达到高准确度)分类邮件。

>生物监测。政府许多关于检测和跟踪疾病的突破都使用机器学习。例如,西宾州的RODS项目包括了急诊室的实时就诊记录并且使用机器学习软件来学习典型疾病的机理从而能够检测疾病的不规则性和地理分布。当前的研究工作致力于增加丰富的数据,如非处方药的购买以此增加系统的数据量,从而满足自动学习理论的需要。

>机器人控制。机器学习理论已经被成功应用在许多机器人系统中。例如,一些科学家已经演示了机器学习在获得稳定的直升机飞行和直升机特技的控制策略方面的应用。近来由Darpa赞助的一项关于机器人自动在沙漠中驾车超过100米的比赛由一个使用机器学习来提高远距离探测目标的机器人赢得,该机器人通过最初收集远距离地形数据进行训练。

>加速实验科学发展。许多包含大数据的科学都使用机器学习理论在科学探索方面帮助自己。机器学习被用于从大量数据中学习细胞的基因信息模型,从斯隆太空探索收集的数据中发现宇宙物体,以及描述表现在FMRI扫描仪下不同人的意识状态的复杂的大脑模型。机器学习重塑了许多大数据实验性科学的行为,并且他们中的很多都举办关于机器学习的讨论会。

2.2 计算机科学中机器学习的地位

给出了这些应用例子,我们能推测出机器学习在计算机应用领域未来会扮演什么角色?一方面是它在软件方面的应用,意识到以上的应用可能会表明机器学习在其中扮演重要角色可能比较合适。特别是,机器学习理论已经是在发展特殊类型软件方面最好的理论,这些方面有:

>对人类来说可能应用太复杂而无法设计算法。例如,基于传感器感知任务的软件,如语音识别和计算机视觉,就属于这个范畴。我们都能很容易的标记出哪些图片是你母亲的,但是我们却无法写出相关算法。机器学习是软件发展理论最好的选择因为它收集数据相对简单,并且它并不会尝试去写算法。

>应用需要软件定义它的操作环境。其中一个例子就是语音识别系统为购买软件的用户自定义。机器学习在这里提供了适应机制。用户自定义软件的应用发展迅速,比如书店根据你的购买喜好自定义,电子邮件读者自定义垃圾邮件。这种在软件中的机器学习的应用发展迅速。

从这方面看,机器学习理论在计算机应用领域扮演重要角色。尽管仍有一些领域机器学习无用武之地(如涉及矩阵乘法运算的项目),但随着应用逐渐复杂化,自定义软件的需求增加,计算机处理的数据越来越多,并且我们逐渐开发更有效率的机器学习算法,它的应用将逐渐广泛。

 除了作为软件发展的理论这一角色外,机器学习也有可能帮助重塑计算机科学。通过将问题从“如何给计算机编程”转变到“如何让计算机自主编程”,机器学习强调能够自主诊断自主维修的自动监视系统的设计,为用户建模,通过编程而非简单地处理来充分利用稳定的数据流。同样,通过引入计算的观点,提出诸如终生学习的问题来重塑统计学理论。当然,计算机科学和统计学也能够通过自身的进步并提供改变我们对学习的认识的新观点来重塑机器学习。

2.3 一些当下的研究问题

如上所述,机器学习算法和理论已经得到稳定持续的发展。例如,我们已经有了很多关于分类器和回归函数的监督学习算法;也就是说,学习某个初始未知的函数f:X-Y给定输入为xi输出为yi的被标记的训练集{<xi,yi>}。例如,在训练图像识别项目时xi代表一幅图像,yi代表图像标签。算法从支持向量机,到贝叶斯分类器,到遗传算法,都能用来估计函数f。我们也有一个能用来描述学习函数f精确度的理论,这取决于可用的训练样本数,关于数据特性的假设(比如数据间是否独立),以及学习算法的性质如假设集合的复杂度。当然有许多其他类型的学习问题和相关算法理论,包括非监督聚类(如基于时间序列描述类型的基因聚类),异常检测(如急诊室登记异常),增强学习(如学习下棋,这里的数据集是在走了很多步之后游戏最终胜利/失败的输出),数据建模(如找到一个小的因素集合,它们通过结合能够重建高维脑部图像的顺序),等等。

这个领域正在多方向发展,探索许多学习任务,开发许多的潜在理论。下面是当前研究问题的一个例子:

>未标签的数据对于监督学习有用吗?监督学习涉及到估计某个函数f:X-Y给定标签数据集{<xi,yi>}。如果我们也能够利用未标签的数据(如未标签的图像)那么我们就能够大幅度降低监督学习的成本。是否存在未标签的数据也能够保证提高学习准确度的情况?有趣的是答案是肯定的,对于一些能够满足附加假设条件的特殊的情况来说。这包含一些实际问题比如学习分类网页或垃圾邮箱。对于未标签数据的新算法和新问题的研究是当前一个热门的研究问题。

 >我们怎样能够把对一个任务的学习转变为在对其他相关任务的学习中提高?注意上面的监督学习的例子涉及到学习一个单一的函数f。在许多实例中我们可能想要学习一系列相关函数(如一个对纽约医院病人的诊断函数,另一个对东京医院病人)。尽管我们希望两种情况的诊断函数有点不同,但我们也希望有相同之处。诸如层次贝叶斯的理论给我们提供了此类解决方法,通过假设NY函数和Tokyo函数的学习参数有相同的先验概率,但每个医院的数据都各自与先验匹配。这种情况在两个函数特别复杂的时候变得很敏感——如,一个同时学习状态预测函数和行为控制函数的机器人应该能够通过发挥两类学习信息之间的逻辑关系的优点来更好的学习。

>不同的学习算法间的关系是什么,什么时候用哪个呢?许多不同的学习算法在不同的领域已经被提出并被实验证明。一个研究主题是了解这些算法间的理论关系,以及什么时候使用哪个更合适。例如,监督学习中的两个算法,Logistic回归和朴素贝叶斯分类器,在大数据情况下表现不同,但在某些数据集中是等效的(如,当朴素贝叶斯的假设成立并且训练数据无限时)。这表明如果数据稀疏但满足假设条件时应用朴素贝叶斯更好。一般来说,学习算法的理论描述,它们的收敛特性,以及它们的优缺点仍然是主要的研究课题。

>对于自主收集数据的学习机来说,最好的方法是什么?想象一台移动机器人被要求找到房间内任何角落的主人的拖鞋,一整天都在练习,通过从各个角度观察拖鞋,不同的光照不同的地点移动拖鞋。在它学习的过程中为了收集新的数据,最有效的训练方法是什么?关于这个问题的另一个例子是,在一个药物测试中,我们想要通过最小化病人的副作用来测试药效。这只是针对研究学习系统的一部分,系统要求对学习环境更能有效控制,而非消极使用人为提供的数据。

>我们能兼有数据准确性和数据挖掘的好处到什么程度?机器学习有很多有益的用处,如运用全世界所有医院的数据训练医疗诊断系统,考虑到准确性我们并不会太过于追求这类系统。尽管一开始我们不得不从准确性和数据挖掘的益处中作出选择,事实上在某些场合我们两者可以兼得。例如,相比强迫医院牺牲准确性并将患者记录传给中心数据库,我们更可能为其开发一个算法,让每个医院都能在某个限制条件下运用,然后将其传至下个医院。这是一个活跃的研究领域,建立在过去的数据泄露的统计工作和现代密码方法。

2.3.1 更长久的研究问题

上面的研究问题正在被相关领域研究人员解决。而考虑更长远的研究问题也很有趣。下面是我认为在未来的几十年里能改变机器学习面貌的一些研究主题。

>我们能建造终身学习机吗?当前机器学习工作主要涉及在特殊数据集中学习,然后让学习机运行并输出数据。相反,人类和其他动物的学习是个持续的过程,在这里他们能学到很多能力,并更加协调的运用这些学到的事实和能力。为什么不能构建一个能够持续学习而不间断的机器学习系统呢?例如,长年累月呆在办公室的机器人应该能学的很多能力,从简单的任务开始(如怎么识别在黑暗中突然停止的物体),到基于以前的学习的复杂任务(如寻找丢失的垃圾桶从哪里开始)。同样,学习阅读网页的项目可能学一个能力等级集合,从简单能力如识别人和地点的名字到提取复杂句子和网页间的关系。这里的关键问题是自主监督学习和构建合适的学习级别。

>机器学习理论和算法能够解释人类学习吗?近来,机器学习理论与算法已经被发现与人和动物的学习相关。例如,增强学习和算法在基于奖励的学习中能很好的预测多巴胺神经细胞的神经活动。探索自然图象的稀疏表示的机器学习算法能很好说明在动物视觉皮质中发现的视觉物质的类型。然而,动物学习的理论还没有用在机器学习中,如多时间尺度中动机,恐惧,紧张,健忘和学习扮演的角色。交叉互补的机会很多,其中之一就是涉及动物和机器的学习的理论,以及在改善教学方法的潜在的暗示。

>我们能设计机器学习底层编程语言吗?新的计算机编程语言能直接支持关于学习的项目吗?在许多当前的机器学习应用中,标准的机器学习算法将手工编码软件嵌入最终项目中。为什么不设计能够部分手编部分学习的编程语言呢?这样的语言允许编程者声明每个学习子程序的输入输出,然后选择一个编程语言提供的学习算法。新的有趣的问题出现了,如设计编程语言,声明每个学习子程序应该具有哪些训练经验,何时并且用什么安全措施来防止程序的任意改变。

>计算机感知会与机器学习融合吗?考虑到机器学习在计算机视觉、语音识别及其他领域中应用逐渐广泛,我们能发展一个在学习中训练的感知理论吗?多传感器融合能提供一个自主监督学习的环境从其他传感器中预测某个传感器。发展心理学和教育学的研究人员已经观察到当提供给人类多输入模式时学习过程会更有效,机器学习中的联合训练理论也说明了这点。

2.4 伦理问题(从略)

(以上为本人真实翻译,花了好长时间,由于功底还有待提高,希望各位指正。诚邀各位高手切磋交流有关模式识别和机器学习的知识)

 

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值