1.1 机器学习介绍
1.1.1 机器学习的特点
在开始介绍机器学习之前,我们先看一下传统编程模式,如图1-1所示。
图1-1 传统编程模式
从图1-1可以看出,传统编程其实是基于规则和数据的,目的就是快速得到一个答案。这里的规则一般指的就是我们熟悉的数据结构与算法,是计算机程序的核心。当规则确定好后,将需要处理的数据输入计算机,计算机充分发挥其计算能力的优势,快速得到一个答案输出给用户。一般而言,当规则制定好后,对于每一次输入的数据,计算机程序输出的答案应该也是唯一确定的,这就是传统编程模式的特点。
机器学习模式又是怎样的呢?我们同样用一个基本模型将其表述出来,如图1-2所示。
图1-2 机器学习模式
从图1-2可以看出,机器学习模式其实是从已知的数据和答案中寻找出某种规则。也就是说,对机器学习而言,我们输入的是数据及其对应的答案,而寻找的是满足这样一种答案的数据背后的某种规则。
学术一点来讲,机器学习的特点就是:以计算机为工具和平台,以数据为研究对象,以学习方法为中心,是概率论、线性代数、信息论、最优化理论和计算机科学等多个领域的交叉学科。其研究一般包括机器学习方法、机器学习理论、机器学习应用三个方面:
(1)机器学习方法的研究旨在开发新的学习方法。
(2)机器学习理论的研究旨在于探求机器学习方法的有效性和效率。
(3)机器学习应用的研究主要考虑将机器学习模型应用到实际问题中去,解决实际业务问题。
1.1.2 机器学习的对象
机器学习的对象是数据,即从数据出发,提取数据的特征,抽象出数据模型,发现数据中的规律,再回到对新数据的分析和预测中去。下面我们就以一个实际例子来看看机器学习中数据的特点,如表1-1所示。
表1-1 机器学习数据示例
表1-1是一份历史房价统计数据,假设该数据一共包含M个房子样本,每个样本都统计了“位置”“面积”“装修”等多个特征的取值情况,最后还给出了这些房子样本对应的价格取值。这其实就是一份最典型的机器学习数据,特征就是上面我们所说的“数据”,而价格标签就是我们所说的“答案”,我们将这份数据应用到某个回归模型进行训练,就可以学习出一个可以预测房价的模型。当然,现实中,我们会进一步将训练数据按比例进行划分(比如按8∶2划分),形成训练集和验证集两部分;然后在训练集上训练模型,在验证集上验证模型。如果验证效果较好,则可以将该模型作为我们要寻找的“规则”,对以后每一个新的数据样本(称为测试集),将其对应的数据输入该规则即可得到一个预测的输出值。机器学习的过程如图1-3所示。
图1-3 机器学习的过程
另外需要说明的是,在实际业务场景中,机器学习的数据对象可能是多种多样的,比如文本、图像、语音等。一般在做机器学习之前,我们会先把这些数据统一为同一种格式类型,如矩阵的形式。比如给定的是多个文本类型的数据,那么我们可以将各个文本分别进行分词处理,然后统计文本中各个词在全文中出现的频率值,这样就形成一个文档的词频矩阵。再比如给定的是多幅图像数据,那么我们可以将每幅图片当作一个像素矩阵。
1.1.3 机器学习的应用
机器学习的可应用场景比较多,图1-4列出了一些机器学习的典型应用场景。从图中可以看出,目前机器学习可应用于自动驾驶、人脸识别、垃圾邮件检测、信用风险预测、工业制造缺陷检测、商品价格预测、语音识别和智能机器人等领域。相信在不久的将来,随着机器学习及其相关技术的进一步发展,其所能应用的场景肯定会越来越多。
图1-4 机器学习的典型应用场景
这里需要补充说明一下初学者常常容易混淆的几个概念,即深度学习、机器学习和人工智能。实际上,这三者之间是包含与被包含的关系,具体如图1-5所示。
图1-5 深度学习、机器学习、人工智能三者之间的关系
可以看到,深度学习其实是机器学习的一个子集,而机器学习又是人工智能的一个子集。深度学习目前主要指以深度神经网络为基础的一系列模型。近年来,它们在自然语言处理和计算机视觉等领域取得了本质性的突破,被业界大力推崇。机器学习是一个比深度学习更宽广的概念,除深度学习外,它还包含一系列其他模型,如决策树、支持向量机等,这些模型的核心思想及本质是整个机器学习的核心所在。人工智能的概念则更为宽广,其除了研究机器学习模型算法等核心领域,还扩展到了认知、心理、控制等诸多领域,算是一个综合性和交叉性的学科。