本节书摘来自华章社区《R语言机器学习:实用案例分析》一书中的第2章,第2.1节理解机器学习,作者[印度] 拉格哈夫·巴利(Raghav Bali)迪潘简·撒卡尔(Dipanjan Sarkar),更多章节内容可以访问云栖社区“华章社区”公众号查看
2.1 理解机器学习
我们是不是被教导说,计算机系统需要编程才能完成特定任务?只有对它们进行编程的情况下,它们在完成任务时才可能快百万倍。我们必须对每一个步骤进行编程,然后才能使这些系统工作并完成任务。那么机器学习是不是一个非常矛盾的概念?
简单地说,机器学习指的是一种教授系统学习执行特定任务的方法,例如学习一个功能。尽管听起来很简单,但它有点混乱而又难以理解。感觉混乱的原因是,我们观察系统(特别是计算机系统)工作的方式与我们学习的方式是两种几乎没有交集的概念。更难以理解的原因是,虽然学习是人类固有的能力,但是很难用文字表达,更不用说教授给系统。
那么机器学习是什么呢?在我们试着回答这个问题之前,需要在哲学层面理解,机器学习不仅仅是一种编程方式。机器学习意味着很多内容。
有许多种描述机器学习的方法。延用我们前一章中提出的高层次的定义,让我们看一看1997年Tom Mitchell给出的定义:
“如果在经验E的帮助下,依据性能指标P度量的任务T的性能有了提升,则称计算机程序就任务T和性能指标P从经验E中学习。”
Tom Mitchell教授简介
他生于1951年,是美国计算机科学家,卡耐基–梅隆大学(Carnegie Mellon University,CMU)教授。他也是CMU机器学习系主任。他以在机器学习、人工智能和认知神经科学领域的贡献而闻名。他是各种机构的成员,例如人工智能进展协会。
现在,让我们尝试通过一个例子来理解这个简单而又强大定义的含义。假如我们想要建立一个系统来预测天气。对于当前的例子,系统的任务T是预测某个地方的天气。为了完成这个任务,它需要依靠以往的天气信息。我们将这称为经验E。系统的性能指标P用来衡量对任意一天的天气预测的好坏程度。因此,我们可以归纳为,如果一个系统在历史信息(或者称为经验E)的帮助下,能够更好地预测天气(或者称为提升它的性能P),则认为系统成功地学习了如何预测天气(或任务T)。
正如我们在上述例子中所看到的,这个定义不仅能帮助我们从工程的角度理解机器学习,也给我们提供了工具来量化这些术语。这个定义帮助我们了解到,学习一个特定任务涉及理解和处理以经验形式呈现的数据。它还提到,如果一个计算机程序进行学习,它的性能将在经验的帮助下得到提升,这和我们的学习方式非常相近。