1.1 机器学习基础
定义机器学习不是一件简单的事情。我们先来看看机器学习领域的大牛们(见图1.1)是如何定义的。
图1.1 机器学习历史
机器学习:研究如何让计算机在未被明确编写指令的情形下能够自主学习的领域。
——亚瑟·L. 塞缪尔(Arthur L. Samuel),1959
另一个定义为:
“机器学习”是指使系统能够在下一次更有效地执行同一任务(或采样于同一总体的任务)的自我适应和自我调整的能力。
——赫伯特·亚历山大·西蒙(Herbert Alexander Simon),1984
还有一种定义为:
假设对于任务T,有相对应的经验E以及评价指标P,那么机器学习指的是能够在执行任务T时通过学习经验E可以提高评价指标P的一种程序。
——汤姆·M. 米切尔(Tom M. Mitchell),1998
这些定义的共同点是,它们都指向了一种在没有任何外界帮助的情况下,从经验中学习的能力。这正是许多情况下人类学习的方式,那为何我们不能让机器也具有同样的能力呢?
机器学习是一门由计算机科学、统计学、神经生物学和控制理论衍生出的交叉学科。它在一些领域中扮演了至关重要的角色,并且已经彻底地改变了人们对编程的理解。如果之前我们要解决的问题是“如何给计算机编写程序”,那么现在我们的问题是“如何让计算机自己给自己编写程序”?
因此,机器学习可以被视为赋予计算机“智能”的基础理论。
与大多数人的直觉一致,机器学习的发展与对人类学习方式的研究紧密相关。人类直觉、智能的基础是大脑及其中的神经元,相应地,计算机进行决策的基础可以是人工神经网络(Artificial Neural Network,ANN)。
机器学习使我们能够从数据集中找到描述此数据集的模型。例如,给定一个系统,我们可以从中自动建立输入变量到输出变量的对应关系。其中一种方法是首先假设数据的产生是遵循某种由参数指定的机制的,只是参数的具体值是未知的。
这一过程参考的统计学方法有归纳(induction)、演绎(deduction)和回溯(abduction),它们的关系如图1.2所示。
图1.2 皮尔斯三角,关于3种推理方法的推理模式关系
从已观测到的数据集中抽象出通用的法则称为归纳;与之相反,演绎是指应用通用的法则预测一组变量的值。归纳是科学研究中的基本方法,它能够从观测到的现象中总结出通用的法则(这些法则通常用数学语言来描述)。
观测结果包含一组变量值,这组数据能够描述观测到的现象。总结出的模型可以继续对新观察到的数据进行预测。从一组观测结果到总结模型,再到使用模型对新观察到的数据进行预测的过程,称为推断。
因此,归纳学习的精髓在于从已观测数据中寻找可被泛化(generalization)到未观测数据集(新加入的数据),以预测模型。例如,基于过往股票价格数据以及涨跌情况,我们可以对一个线性分类方程进行参数优化,并将优化后的模型用于预测未来股票的涨跌情况。泛化性能的好坏取决于从历史数据中得到的模型,并在新数据上预测结果的优劣。这种预测并非总能奏效,但至少有希望得到好的结果。
归纳学习可被简单地分为如下两类。
(1)基于样本学习:例如,通过学习正样本(positive sample)——即属于某分类的样本,以及负样本(negative sample),能够获得关于这个二分类问题的知识(即模型或参数)。
(2)学习规律:此类方法的目标是在给定数据集中寻找样本间的“规律”(即共同特征)。
图1.3展示了归纳学习的分类。
图1.3 归纳学习的分类
读者可能会有这个疑问:为什么机器学习算法要优于传统算法和模型呢?传统算法和模型失败的原因有很多,其中代表性的原因如下所示。
(1)人类对许多问题的本身已很难描述:例如,我们很容易识别出自己熟悉的人的声音,但是应该没人能够描述出识别这些声音所经过的一系列的运算步骤。
(2)实践中大量的未知变量(参数):例如,当你面临从文档中识别字符这一任务时,为模型指定所有相关的参数是特别复杂的。除此之外,同样的参数表达在同样的上下文环境中是成立的,但是在不同的方言中,仅用一个参数来表达是不够的。(因此需要更多的参数。)
(3)缺乏理论:例如,当你面临需要准确预测金融市场表现这一任务时,就会有这个问题,而这类问题是缺乏对应的数学理论支撑的。
(4)个性化定制的需求:在实际应用中,能否选取数据中有用的特征在很大程度上取决于个人对问题的理解程度。
图1.4展示了归纳学习和演绎学习的异同。
图1.4 归纳学习和演绎学习的异同