码迷,mamicode.com
首页 > 其他好文 > 详细

机器学习

时间:2015-05-27 10:16:18      阅读:210      评论:0      收藏:0      [点我收藏+]

标签:机器学习

在过去50年,机器学习的研究已经从几个计算机工程师探索计算机是否能学会玩游戏的影响下不断成长,统计领域(在很大程度上忽视计算的考虑)到广泛的学科(该学科产生了基本的学习过程的统计-计算理论)已经设计了许多学习算法,这些算法通常应用在商业系统中,例如语音识别,计算机视觉,和其他各种各样的任务,并已剥离了数据挖掘中的工业来发掘网上不断增长的数据量中隐藏的规律。这篇文章提供了该学科(已经作为机器学习出现了),它解决的最根本问题,它与其他科学和社会的关系,以及它可能会被用哪里的简介和个人的观点。

1、定义问题

科学领域最好用它研究的核心问题来定义。机器学习领域寻求回答下面的问题:
“我们如何建立计算机系统,该系统能自动地提高自己的经验,并且
管理所有学习过程的基本规律是什么?“
这个问题涉及到广泛的学习任务,例如如何设计自主移动机器人,他们可以根据自己的经验学会导航,如何从数据挖掘历史医疗记录来学会今后患者会对那种治疗产生最好的康复效果,以及如何建立搜索引擎,使它可以自动地定制用户的喜好。更准确地说,如果系统根据经验E,可靠地提高了所做任务T的性能P,我们就说机器学习了一个特定任务T,性能度量P和经验?。根据我们如何指定T,P和E,学习任务的名字也有许多叫法,如数据挖掘,自动发掘,数据库更新,编程实例等

机器学习是计算机科学与统计学交汇的自然产物。我们可以说计算机科学的定义问题是“我们如何构建一个解决问题的机器,哪些问题本质上是容易处理/难处理?“在很大程度上统计学的问题是,“我们可以从数据加上一些模型假设中推断出什么,那些是可靠的?”机器学习的定义问题基于两者,但它是一个独特的问题。而计算机科学主要集中于如何手动给计算机编程,机器学习集中在如何让计算机自己编程(从经验加上一些初始结构)。而统计主要集中在那些结论可以从数据中推断出来,机器学习结合一些附家的问题,这些问题是关于哪些计算架构和算法可以用来最有效地捕获,存储,索引,检索和合并这些数据,多个子任务如何被协调在一个较大的系统中,以及计算易处理性的问题。

定义问题与机器学习紧密相关的第三个领域是在心理学,神经科学和相关领域中人类和动物学习研究。计算机如何学习和动物如何学习极有可能具有高度交织的答案。然而,迄今为止,机器学习从人类学习研究中获得的见解比它从统计和计算机科学中获得的见解微弱的多。这主要是由于我们对人类学习的认识还不够深入。尽管如此,机器研究和人类学习之间的协同作用越来越大,利用机器学习算法,比如时空差异学习(现在被认为是在学习动物中观察到神经信号的解释)。在未来几年内,预计人类学习和机器学习之间的协同将大幅增长,因为他们在核心科学问题上非常相近。

其他领域,从生物学到经济学到控制论,对系统如何自动适应或优化他们的环境也非常感兴趣,在未来几年中,机器学习可能会与这些领域增加交流。例如,经济学对一些问题感兴趣,比如自私个人的分布收藏如何形成一个系统(市场),该系统学习到为了最大的共同利益而导致帕累托最优分配的价格。控制论,尤其是自适应控制论,有兴趣的问题比如伺服控制系统如何通过经验来改善其控制策略。有趣的是,这些领域的自适应数学模型与那些在机器学习中使用的有所不同,这表明了模型和理论交叉验证的潜在意义。

以下各节讨论机器学习,成功应用的一个样例,和开放性研究问题的一个样例。

2、机器学习现状

在这里,我们介绍一些机器学习进展以及开放的研究问题

2.1、应用成功的案例

在机器学习发展的一种度量是其显著的实际应用,如下文列出的。虽然我们现在理所当然的采取这些应用,但是值得注意的是,截止到1985年,机器学习几乎没有任何商业应用。

  • 语音识别。目前对于语音识别而言,可用的商业系统都使用机器学习来训练识别语音的系统。原因很简单:通过训练得到的系统比尝试手工编程得到的系统,语音识别精确度更高。事实上,许多商用语音识别系统涉及到两个不同的学习阶段:软件被卖出之前,用与说话人无关的方式训练系统;用户购买软件后,用与说话人有关的方式训练系统来实现更高的精度。
  • 计算机视觉。许多当前的视觉系统(从面部识别系统到能自动分类细胞显微图像的系统)使用机器学习进行开发,还是因为所产生的系统比手工制作的程序更准确。使用机器学习来训练计算机视觉的一个大规模应用是美国邮政局自动排列含有手写地址的信。在美国,超过85%的手写邮件都是使用手写分析软件自动排序的,将机器学习在一个非常大的数据集上进行训练从而得到了高精度的手写分析软件。
  • 生物监测。一些探测和跟踪疾病暴的部门现在在使用机器学习。例如,RODS项目涉及宾夕法尼亚州西部急诊室录用报告的实时采集,以及学习典型录用轮廓机器学习算法的使用,以便它可以检测到症状和他们地理分布的异常模式。目前的工作涉及增加一组丰富的数据,如非处方药的零售购买来增加进入系统的信息流,进一步增加了自动学习方法的需求。
  • 机器人控制。机器学习方法已成功地用于许多机器人系统。例如,一些研究人员已经证实使用机器可以获得一些策略,从而使直升机飞行稳定且能使直升机进行特技飞行表演。最近DARPA赞助的一个竞赛(涉及机器人在沙漠中自动行驶超过100英里)获胜的是一个使用机器学习来完善检测远处物体能力(从自身采集的数据进行训练,这些数据由最初看到的地形及之后靠的近的地形组成)的机器人。
  • 促进经验科学。许多密集型数据科学现在使用机器学习方法来辅助科学发现过程。机器学习正被用来从高吞吐量数据的细胞中学习基因表达模型,从Sloan sky研究收集的海量数据中探索不寻常的天体,以及表征脑激活(指出在磁共振成像扫描仪下人们不同的认知状态)的复杂模式。机器学习方法正在重塑许多密集型数据经验科学的实践,这些科学现在举办机器学习研讨会作为各自领域会议的一部分。

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

鉴于上面的应用实例,我们是否能推断出机器学习会在计算机应用领域扮演着什么角色呢?思考这个问题的一种方法是想象所有软件应用为一个空间,并认识到上述应用属于这样的空间,该空间中机器学习发挥着特殊的作用。特别地,机器学习方法已经是开发特定软件最好的方法,例如下面的应用:

  • 应用程序太复杂以致于无法人工设计出算法。例如,基于传感器感知的任务,如语音识别和计算机视觉,都属于这一类。我们可以很容易标记出包含我们母亲的照片,但是没有人能写一个执行这项任务的算法。这里选择的软件开发方法就是机器学习,因为它相对比较容易收集带标记的训练数据,写出的算法效果比较差。
  • 应用在使用后可以定制运行环境。这样的一个例子是,给购买的用户定制语音识别系统。这里机器学习提供了自使用机制。可以为用户定制的软件应用正在迅速增长- 比如,自定义购买偏好的书店,或自定义垃圾邮件的收件人。机器学习在软件世界里的市场正在迅速增长。

从这个角度来看,机器学习方法在计算机科学界发挥着关键作用。虽然存在一些从来没有用过机器学习的软件应用(例如,矩阵乘法程序),随着应用程序复杂性的提高,定制软件需求的增加,计算机获得数据的增加以及我们开发出越来越有效的机器学习算法,它被使用的邻域正在飞速增长。

除了作为软件开发方法这个明显的作用外,机器学习也可能帮助重塑我们对计算机科学的看法。通过转移“如何用计算机编程“到”如何让他们自己编“,机器学习强调自我监控系统的设计(该系统能使用为用户建模的方法来进行自我诊断和自我修复)并且利用流过程序的恒定数据流而不是简单的处理它。同样,机器学习突出计算并提出不断学习的观点,这将有助于重塑统计领域。当然,随着他们进步并提出能改变我们看待学习方法的新思路,计算机科学与统计学也都有助于塑造机器学习。

2.3一些当前研究的问题

如上述应用所提出的,机器学习算法及其基本理论已经取得了实质性的进展。例如,我们现在有各种各样分类和回归函数有监督学习的算法;即,对学习一些初始未知的函数f:X->Y,并且给定了输入xi和输出yi=f(xi)的一组带标签训练样本{(xi,yi)}。
例如,在训练一个图像识别程序中,xi可能是一幅图像,yi是图像中对象的标签。从支持向量机算法到贝叶斯分类器,到遗传算法,他们都能被用来从数据中估计函数f。我们还有一个有用的理论来帮助表征学习到的函数f精确度是多少,这依赖于可用的标记训练样例,数据性质的假设(例如是否实例是独立的)以及学习算法的属性(例如算法考虑的假设集的复杂性)。当然还有许多其他类型的学习问题,相关算法和理论,
包括无监督聚类(例如,基于基因时间序列表达模式的簇基因),异常检测(例如,发现急诊室接诊的不寻常模式),强化学习(例如,学会下好棋,其中唯一的训练数据是多次移动后游戏最终的赢/输),数据建模(例如,找到一小部分因子,通过组合他们来重建一系列高维脑图像)等。

通过探索多种类型的学习任务并开发各种基本理论,该领域正在向许多方向发展。以下是目前研究问题的例子:

  • 无标签数据对监督学习有帮助吗?监督学习涉及估计一些函数f:X->Y,且给定了一组标签训练样本{(xi,yi)}。如果我们也能够利用未标记数据(如未标记的图像),则可以显着减少监督学习的代价。有没有这种情况,即未标记数据能够保证提高预期学习准确性呢?有趣的是,对几种满足假设的特殊学习问题,答案是肯定的。这些包括了实际问题,比如学习分类网页或垃圾邮件。对一些问题(该问题中未标签数据是有用的)探索新算法和新子集是当前研究比较活跃的领域。
  • 从一个任务中学到的东西,我们如何转化它来改善其他相关任务的学习?注意上面监督学习的配方涉及学习一个函数f。在许多实际问题中,我们可能想了解整族相关函数(例如,在纽约医院里患者的诊断函数,在东京医院里患者的诊断函数)。尽管我们期望诊断函数在这两种情况下会有所不同,但我们也期待一些共性。如分层贝叶斯方法提供了解决这个问题的一种方法,该方法假设NY函数和东京函数的学习参数共享相同的先验概率,但允许各个医院的数据覆盖这些先验。当函数之间的传递更加复杂时情况就变得非常微妙 , 比如一个机器人既学习下一状态函数也学习选择控制移动函数,那么利用这两类学习信息之间的逻辑关系机器人能够更好的学习。
  • 不同学习算法之间的关系是什么,以及他们何时使用?在不同的应用域中已经提出了许多学习算法并被实验性地评估。研究的一个主题是发展这些算法之间的关系以及什么时候它适当使用的理论理解。例如,监督学习的两种算法,Logistic回归与朴素贝叶斯分类器,在许多数据集上表现不同,但可以证明的是当应用到某类数据集(例如,满足朴素贝叶斯模型假设,训练样本数量接近无穷大)时他们是等效的。这种认识表明,如果数据是稀疏的but one is confident of the modeling assumptions(这句不太明白,向大家指教,在此先谢过了),最好选择朴素贝叶斯。更一般地,学习算法的理论特征,收敛性,相对优势和弱点仍然是一个主要的研究课题。
  • 对于积极搜集自己训练数据的学习者来说,最好的策略是什么?想象一下,一个移动机器人担负着学习在房间里找到它主人拖鞋的任务,想象允许它从不同的角度观看拖鞋,移动拖鞋到有不同光照条件的不同位置。那么为了积极收集作为学习收益的数据,最有效的训练策略是什么?这个问题的第二个例子涉及药物测试,其中我们希望了解药物的有效性,同时最小化对患者可能未知副作用的风险。这是更广阔研究的一部分,这种研究推向了学习系统,该系统更加积极地控制学习环境,而不是被动使用由他人收集的数据。

2.3.1长期研究的问题

上述研究的问题已经吸引了许多该领域的研究人员。考虑长期研究的问题也是非常有趣的。下面是一些额外的研究课题,我觉得在未来十年里,很有潜力改变机器学习的面貌。

  • 我们可以建造永无止境的学习者嘛?目前,绝大多数机器学习都是在特定的数据集上运行程序,然后将学习者放在一边,使用结果。相反,人类和其它动物的学习是一个持续的过程,在这个过程中学到了许多不同的能力,并以一个高度协同的方式使用这些学到的事实和能力。为什么不建造一个以同样累加方式学习的机器人从而越来越能干,而不是在一个水平上停滞不前?例如,同一办公楼的机器人在几个月或几年时间后应该学到各种技能,从简单的任务(例如,如何识别走廊末端的对象),到更复杂的建立在以前学习(如,第一次找到失物招领的地方)上的问题。同样,一个学习阅读网页的程序可能会学到分级功能,首先从简单的能力开始如学习认识人名与地名,然后延伸到通过多个句子和网页提取复杂的相关信息。这里重点研究的问题是自我监督学习和构建一个合适的分级课程。
  • 机器学习理论和算法可以帮助解释人类学习吗?近日,已经发现机器学习理论和算法与理解人类和动物学习有重大关系。例如,在奖励为基础的学习过程中,强化学习算法和理论惊奇地预测了动物多巴胺能神经元的神经活动。用于发现自然图像稀疏表示的机器学习算法预测了动物早期视觉皮层中发现的视觉特征。然而,动物学习的理论还有一些尚未被机器学习考虑,如动机,恐惧,尿急,遗忘,学习多种时间尺度的作用。这给交叉施肥(fertilization),发展学习过程(涵盖动物以及机器)一般理论,改进教育学生策略的潜在影响(potentional implications for improved strategies for teaching students不太明白,求帮助)提供了丰富的机会。
  • 我们可以设计含有机器学习原语的程序语言吗?新一代计算机编程语言可以直接支持写学到的程序吗?在许多当前机器学习应用中,标准的机器学习算法集成手工编码软件到最终的应用程序。为什么不设计一个新的计算机编程语言,该语言支持将程序写进某些手工编码的子程序,而其他的指定为“被学习”(to be learned)。这样的编程语言可以让程序员声明每个“被学习”子程序的输入和输出,然后从编程语言所提供的原语中选择一个学习算法。有趣的新的研究问题出现了,如设计编程语言结构时哪些训练经验应该被声明为“被学习”子程序,禁止随意改动程序行为的保障措施是什么。
  • 计算机感知会与机器学习合并吗?鉴于国家最先进的计算机视觉,计算机语音识别,以及其他形式的计算机感知中越来越多的使用机器学习,我们可以开发以机器学习为基础的一般感知理论吗?多感觉通道(如视觉,听觉,触觉)的协作使得自监督学习可用来从其他感觉经验来预测其中的一个。发展心理学和教育的研究人员观察到当人们提供了多个输入模态时学习可以更加有效。

2.4伦理问题

以上是一些会在未来几年影响机器学习领域的问题。虽然未来是无法预测的,但机器学习的深入研究肯定会产生更强大的电脑能力。反过来,这会导致一些伦理问题,如这些技术应该用在哪里以及何时使用。举个例子,如果应用当前的技术到一些数据,该数据描述了所有医生出诊信息和医疗记录以及药物采购,那么新药意料之外的副作用就能被发现。最近一些病例已通过现有的机器学习方法得到了改善,在这些病例中可能会导致病人意外死亡的新药被召回。但是,应用这种机器学习技术也影响了我们的个人隐私,因为我们的医疗记录和药品采购将不得不被捕获和分析。就个人而言,我相信两边都有好的论点,作为一个社会,我们需要公开讨论和辩论这些问题,然后做出决定。出于安全和执法或营销目的而收集数据时也会出现相关的问题。像所有强大的技术那样,机器学习将提高关于是否应该用于特定目的的份额。虽然回答
这些问题会有一些技术成分,但在某些情况下,这个问题也将有一个社会政策成分,它需要我们所有人一起决定其答案。

机器学习

标签:机器学习

原文地址:http://blog.csdn.net/u010182633/article/details/46038917

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!