什么是机器学习?有哪些分类?到底有什么用?终于有人讲明白了

01 什么是学习


我们首先来看几个存在于大自然的动物学习的例子。从这些熟悉的例子中可以看出,机器学习的一些基本问题也存在于自然界。


1. 怯饵效应——老鼠学习躲避毒饵


当老鼠遇到有新颖外观或气味的食物时,它们首先会少量进食,随后的进食量将取决于事物本身的风味及其生理作用。如果产生不良反应,那么新的食物往往会与这种不良后果相关联,随之,老鼠不再进食这种食物。很显然,这里有一个学习机制在起作用——动物通过经验来获取判断食物安全性的技能。如果对一种食物过去的经验是负标记的,那么动物会预测在未来遇到它时也会产生负面影响。


前文的示例解释了什么是学习成功,下面我们再举例说明什么是典型的机器学习任务。假设我们想对一台机器进行编程,使其学会如何过滤垃圾邮件。一个最简单的解决方案是仿照老鼠学习躲避毒饵的过程。机器只须记住所有以前被用户标记为垃圾的邮件。当一封新邮件到达时,机器将在先前垃圾邮件库中进行搜索。如果匹配其中之一,它会被丢弃。否则,它将被移动到用户的收件箱文件夹。


虽然上述“通过记忆进行学习”的方法时常是有用的,但是它缺乏一个学习系统的重要特性——标记未见邮件的能力。一个成功的学习器应该能够从个别例子进行泛化,这也称为归纳推理。在“怯饵效应”例子中,老鼠遇到一种特定类型的食物后,它们会对新的、没见过的、有相似气味和口味的食物采取同样的态度。


为了实现垃圾邮件过滤任务的泛化,学习器可以扫描以前见过的电子邮件,并提取那些垃圾邮件的指示性的词集;然后,当新电子邮件到达时,这台机器可以检查它是否含有可疑的单词,并相应地预测它的标签。这种系统应该有能力正确预测未见电子邮件的标签。


但是,归纳推理有可能推导出错误的结论。为了说明这一点,我们再来思考一个动物学习的例子。



2. 鸽子迷信


心理学家B. F. Skinner进行过一项实验,他在笼子里放了一群饥饿的鸽子。笼子上附加了一个自动装置,不管鸽子当时处于什么行为状态,都会以固定的时间间隔为它们提供食物。饥饿的鸽子在笼子里走来走去,当食物第一次送达时,每只鸽子都在进行某项活动(啄食、转动头部等)。食物的到来强化了它们各自特定的行为,此后,每只鸟都倾向于花费更多的时间重复这种行为。


接下来,随机的食物送达又增加了每只鸟做出这种行为的机会。结果是,不管第一次食物送达时,每只鸟处于什么行为状态,这一连串的事件都增强了食物送达和这种行为之间的关联。进而,鸽子们也更勤奋地做出这种行为。


了解更多:

http://psychclassics.yorku.ca/Skinner/Pigeon


有用的学习机制与形成迷信的学习机制有何差别?这个问题对自动学习器的发展至关重要。尽管人类可以依靠常识来滤除随机无意义的学习结论,但是一旦我们将学习任务付之于一台机器,就必须提供定义明确、清晰的规则,来防止程序得出无意义或无用的结论。发展这些规则是机器学习理论的一个核心目标。


是什么使老鼠的学习比鸽子更成功?作为回答这个问题的第一步,我们仔细看一下老鼠在“怯饵效应”实验中的心理现象。


3. 重新审视“怯饵效应”——老鼠未能获得食物与电击或声音与反胃之间的关联


老鼠的怯饵效应机制可能比你想象中的更复杂。Garcia进行的实验(Garcia & Koelling 1996)表明,当进食后伴随的是不愉快的刺激时,比如说电击(不是反胃反应),那么关联没有出现。即使将进食后电击的机制重复多次,老鼠仍然倾向于进食。


同样,食物引起的反胃(口味或气味)与声音之间的关联实验也失败了。老鼠似乎有一些“内置的”先验知识,告诉它们,虽然食物和反胃存在因果相关,但是食物与电击或声音与反胃之间不太可能存在因果关系。


由此我们得出结论,怯饵效应和鸽子迷信的一个关键区别点是先验知识的引入使学习机制产生偏差,也称为“归纳偏置”。在实验中,鸽子愿意采取任何食物送达时发生的行为。然而,老鼠“知道”食物不能导致电击,也知道与食物同现的噪音不可能影响这种食物的营养价值。老鼠的学习过程偏向于发现某种模式,而忽略其他的关联。


事实证明,引入先验知识导致学习过程产生偏差,这对于学习算法的成功必不可少(正式陈述与证明参见“没有免费的午餐”定理)。这种方法的发展,即能够表示领域知识,将其转化为一个学习偏置,并量化偏置对学习成功的影响,是机器学习理论的一个核心主题。粗略地讲,具有的先验知识(先验假设)越强,越容易从样本实例中进行学习。但是,先验假设越强,学习越不灵活——受先验假设限制。




02 什么时候需要机器学习


什么时候需要机器学习,而不是直接动手编程完成任务?在指定问题中,程序能否在“经验”的基础上自我学习和提高,有两方面的考量:问题本身的复杂性和对自适应性的需要。


1. 过于复杂的编程任务


  • 动物/人可执行的任务:虽然人类可以习惯性地执行很多任务,但是反思我们如何完成任务的内省机制还不够精细,无法从中提取一个定义良好的程序。汽车驾驶、语音识别和图像识别都属于此类任务。面对此类任务,只要接触到足够多的训练样本,目前最先进的机器学习程序,即能“从经验中学习”的程序,就可以达到比较满意的效果。


  • 超出人类能力的任务:受益于机器学习技术,另一大系列任务都涉及对庞大且复杂的数据集进行分析:天文数据,医疗档案转化为医学知识,气象预报,基因组数据分析,网络搜索引擎和电子商务。随着越来越多的数字数据的出现,显而易见的是,隐含在数据里的有意义、有价值的信息过于庞大复杂,超出了人类的理解能力。学习在大量复杂数据中发现有意义的模式是一个有前途的领域,无限内存容量加上不断提高的处理速度,更为这一领域开辟了新的视野。



2. 自适应性


编程的局限之一是其刻板性——一旦程序的编写与安装完成,它将保持不变。但是,任务会随着时间的推移而改变,用户也会出现变更。机器学习方法——其行为自适应输入数据的程序——为这个难题提供了一个解决方案。机器学习方法天生具备自适应于互动环境变化的性质。


机器学习典型的成功应用有:能够适应不同用户的手写体识别,自动适应变化的垃圾邮件检测,以及语音识别。



03 学习的种类


学习是一个非常广泛的领域。因此,机器学习根据学习任务的不同分为不同的子类。这里给出一个粗略的分类,下面给出四种分类方式。


1. 监督与无监督


学习涉及学习器与环境之间的互动,那么可以根据这种互动的性质划分学习任务。首先需要关注的是监督学习与无监督学习之间的区别。


下面以垃圾邮件检测和异常检测为例说明。对于垃圾邮件检测任务,学习器的训练数据是带标签的邮件(是/否垃圾邮件)。在这种训练的基础上,学习器应该找出标记新电子邮件的规则。相反,对于异常检测任务,学习器的训练数据是大量没有标签的电子邮件,学习器的任务是检测出“不寻常”的消息。


抽象一点来讲,如果我们把学习看做一个“利用经验获取技能”的过程,那么监督学习正是这样的一种场景:经验是包含显著信息(是/否垃圾邮件)的训练数据,“测试数据”缺少这些显著信息,但可从学到的“技能”中获取。


此种情况下,获得的“技能”旨在预测测试数据的丢失信息,我们可以将环境看做通过提供额外信息(标签)来“监督”学习器的老师。然而,无监督学习的训练数据和测试数据之间没有区别。学习器处理输入数据的目标是提取概括信息(浓缩数据)。聚类(相似数据归为一类)是执行这样任务的一个典型例子。


还有一种中间情况,训练数据比测试数据包含更多的信息,也要求学习器预测更多信息。举个例子,当学习数值函数判断国际象棋游戏中白棋和黑棋谁更有利时,训练过程中提供给学习器的唯一信息是,谁在整个实际的棋牌类游戏中最终赢得那场比赛的标签。这种学习被称作“强化学习”。


图片


2. 主动学习器与被动学习器


学习可依据学习器扮演的角色不同分类为“主动”和“被动”学习器。主动学习器在训练时通过提问或实验的方式与环境交互,而被动学习器只观察环境(老师)所提供的信息而不影响或引导它。请注意,垃圾邮件过滤任务通常是被动学习——等待用户标记电子邮件。我们可以设想,在主动学习中,要求用户来标记学习器挑选的电子邮件,以提高学习器对“垃圾邮件是什么”的理解。


3. 老师的帮助


人类的学习过程中(在家的幼儿或在校的学生)往往会有一个良师,他向学习者传输最有用的信息以实现学习目标。相比之下,科学家研究自然时,环境起到了老师的作用。环境的作用是消极的——苹果坠落、星星闪烁、雨点下落从不考虑学习者的需求。


在对这种学习情境建模时,我们假定训练数据(学习者的经验)是由随机过程产生的,这是统计机器学习的一个基本构成单元。此外,学习也发生在学习者的输入是由对立“老师”提供的。


垃圾邮件过滤任务(如果垃圾邮件制作者尽力误导垃圾邮件过滤器设计者)和检测欺诈学习任务就是这种情况。当不存在更好的假设时,我们也会使用对立老师这一最坏方案。如果学习器能够从对立老师中学习,那么遇到任何老师都可以成功。


4. 在线与批量


在线响应还是处理大量数据后才获得技能,是对学习器的另一种分类方式。举个例子,股票经纪人必须基于当时的经验信息做出日常决策。随着时间推移,他或许会成为专家,但是也会犯错并付出高昂的代价。相比之下,在大量的数据挖掘任务中,学习器,也就是数据挖掘器,往往是在处理大量训练数据之后才输出结论。


图片



04 与其他领域的关系


作为一门交叉学科,机器学习与统计学、信息论、博弈论、最优化等众多数学分支有着共同点。我们的最终目标是在计算机上编写程序,所以机器学习自然也是计算机科学的一个分支。在某种意义上,机器学习可以视为人工智能的一个分支,毕竟,要将经验转变成专业知识或从复杂感知数据中发现有意义的模式的能力是人类和动物智能的基石。


但是,应该注意的是,与传统人工智能不同,机器学习并不是试图自动模仿智能行为,而是利用计算机的优势和特长与人类的智慧相得益彰。机器学习常用于执行远远超出人类能力的任务。例如,机器学习程序通过浏览和处理大型数据,能够检测到超出人类感知范围的模式。


机器学习(的经验)训练涉及的数据往往是随机生成的。机器学习的任务就是处理这些背景下的随机生成样本,得出与背景相符的结论。这样的描述强调了机器学习与统计学的密切关系。两个学科之间确实有很多共同点,尤其表现在目标和技术方面。


但是,两者之间仍然存在显著的差别:如果一个医生提出吸烟与心脏病之间存在关联这一假设,这时应该由统计学家去查看病人样本并检验假设的正确性(这是常见的统计任务——假设检验)。相比之下,机器学习的任务是利用患者样本数据找出心脏病的原因。我们希望自动化技术能够发现被人类忽略的、有意义的模式(或假设)。


与传统统计学不同,算法在机器学习中扮演了重要的角色。机器学习算法要靠计算机来执行,因此算法问题是关键。我们开发算法完成学习任务,同时关心算法的计算效率。两者的另外一个区别是,统计关心算法的渐近性(如随着样本量增长至无穷大,统计估计的收敛问题),机器学习理论侧重于有限样本。也就是说,给定有限可用样本,机器学习理论旨在分析学习器可达到的准确度。


机器学习与统计学之间还有很多差异,我们在此仅提到了少数。比如,在统计学中,常首先提出数据模型假设(生成数据呈正态分布或依赖函数为线性);在机器学习中常考虑“非参数”背景,对数据分布的性质假设尽可能地少,学习算法自己找出最接近数据生成过程的模型。




猜你喜欢

转载自blog.51cto.com/15060458/2673573