【机器学习】第一章 概述

发布于:2025-07-16 ⋅ 阅读:(15) ⋅ 点赞:(0)

如今,智能手机已经很普遍了。大多智能手机都有语音助手,当我们向它提问题时,它可以轻松地解答,甚至还能像人一样和我们聊天。那么你有没有想过,智能手机又不是人,为什么能与人进行对话呢?这就与本书介绍的机器学习(machinelearning)有关。语音识别是机器学习领域中的一个新兴领域,通过自然语言处理(自然语言处理,NLP)识别语音,然后利用机器学习算法将语音转化为数字信息,并做出回应。自然语言处理是人工智能的一大重要领域,本书不做深入讲解,有兴趣的读者可自行查阅资料。本书主要介绍机器学习的基础知识,读者将会了解到语音是怎么转化成数字信息的,智能手机又是怎么做出回应的。 本章首先介绍什么是机器学习,然后介绍机器学习的相关概念和知识。

1.1 什么是机器学习

机器学习是人工智能的一个分支,因其由统计学发展而来,其算法中包含大量的统计学知识和理论,因此又被称为统计学习(statistical学习)。许多人认为机器学习十分高深,只有大型科研团队才会用到,其实机器学习在我们的日常生活中广泛存在,例如智能手机中的语音助手、搜索引擎、地图路线规划等都使用了机器学习。现在机器学习成为 一门涉及概率论、统计学等学科的交叉学科,并在数据挖掘、计算机视觉等方面有了广泛的应用。那么机器学习到底是什么呢?

机器学习就是赋予机器学习能力,让机器不用通过显式编程就可以从数据中提取内容,然后做出预测。举一个简单的例子,按照如下方法计算中国人的理想体重:

北方人标准体重值(kg)=[身高值(厘米)-150] x 0.6+50 南方人标准体重值(kg)=[身高值(厘米)-150] x 0.6+48

在标准体重基础上的±10%内,高于理论体重。假设有大量如表1-1所示的数据,我们想了解某人的体重是否符合原理体重,只需要根据公式计算即可。但是对于机器,不给予它计算公式,只根据这些数据,通过机器学习仍可以判断该人的体重是否符合理想体重。与之相似的还有利用机器学习处理经典的鸢尾花数据集,在第3章会有详细讲解。

一些南方人、北方人的基本信息

编号 性别 身高/厘米 体重g 地区 是否理想
1 182 60 北方 偏瘦
2 164 55 南方 理想
3 175 62 南方 理想
4 172 55 北方 偏瘦
5 173 70 南方 偏胖
6 160 65 南方 偏胖

上述例子只是一个简单的例子,机器学习还可以让机器模拟人类的思维来进行工作,并适应不同环境下的各种工作,以承担人类难以完成的工作。机器学习通过对输入数据进行处理,从中主动寻求规律,验证规律,最后得出结论,机器据此结论自主解决问题。最主要的是,如果出现了偏差,机器学习会自动纠错,降低错误率。通过机器学习来处理问题,不但降低了错误率,还省去了人力,机器帮助人类解决人类难以解决的问题的理想必然会向前迈出实质性的一步。这就是研究机器学习的目的和意义。

1.2 机器学习的算法

在机器学习中,如何选择算法是一个重要的问题,需要根据具体的问题来选择合适的算法。算法数据学习方式一般为两种类型,一种是监督学习(监督学习)另一种是无监督学习(无监督学习)。

(1)监督学习是指通过已经训练过的数据来训练模型。如果有一组训练数据,包括输入和对应的输出,通过算法训练,就可以得到一个最优的模型。再输入新的数据后,监督学习算法会根据模型输出相应的预测,这样就能得到一个最优的预测。监督学习算法往往用于预测性研究。

(2)无监督学习被称为“没有老师的学习”,即没有训练的过程,同时数据也只有输入,没有对应的输出,直接通过数据和算法进行建模和分析,这意味着模型要通过机器学习自行探索出来。这听起来似乎有点不可思议,但是在我们自身认识世界的过程中也会用到无监督学习。无监督学习算法往往用于探究性研究。

除了这两种类型以外,还有半监督学习(semi-supervisedlearning)和强化学习(reinforcementlearning)。半监督学习是监督学习和无监督学习相结合而产生的一种学习方式。它主要考虑如何利用少量标注数据和大量未标注数据进行训练和分类的问题,其算法主要在监督学习算法上进行扩展。半监督学习对提高机器学习性能具有非常重大的实际意义。强化学习在传统的机器学习算法分类中没有提到,但联结主义(connectionism)把学习算法分为3种类型,即无监督学习、监督学习和强化学习。

1.3 监督学习

前面介绍了监督学习通过训练数据来建立模型,训练数据必须包括特征和标签等信息,例如,邮箱在对垃圾邮件进行检测时,会以邮件中的文字作为特征,来区分邮件是否属于垃圾邮件,而邮箱给出的结果(该邮件是否属于垃圾邮件)就是标签。

监督学习算法根据任务的侧重点可以分为分类(classification)算法和回归(regression)算法。监督学习算法常用于解决分类问题,例如某人的体重是否符合理想体重问题和上述的垃圾邮件的检测等,监督学习算法通过已有的训练样本去训练得到一个最优模型,再利用这个模型将所有的输入映射为相应的输出。回归问题通常会给定多个自变量、一个因变量以及一些代表它们之间关系的训练样本,要求确定它们的关系,例如对一天中温度的预测,通常采用后文要讲到的线性回归、降维、支持向量回归等来解决。

分类问题与回归问题的差异就是分类问题预测的标签往往是间断的,也就是说要将输入映射到离散类别,例如,一个正整数要么是奇数,要么是偶数,如图1-1所示。

而回归问题预测的标签往往是连续的,也就是说要将输入映射到一些连续函数上,例如,在对全年降水量与温度的预测中,其标签是连续的值,如图1-2所示。

1.4 无监督学习

在无监督学习中,我们知道其处理的数据是没有标签的,所以无法按照标签进行划分,那么它是如何进行工作的呢?在无监督学习币有专门的算法来训练这种没有标签的数据,即聚类算法。聚类算法是无监替学习中一种典型的算法,可以根据数据的特征进行建模。聚类问题如表1-2所示、其中1代表含有该项、0代表不含该项。

聚类问题

细胞数据分组 是否含有中心体 是否含有细胞壁
数据1 1 0
数据2 0 1
数据3 1 0
数据4 1 0
数据5 0 1

在表1-2中、聚类算法可能会将数据1、数据3、数据4分为一类,而将数据2和数据5分为一类,根据信息我们知道其可能会分为动物和植物。动物的细胞通常含中心体而不含细胞壁,植物的细胞正好相反。在对这些数据运用算法之前,我们并没有给机器提供标签,而是让机器自主完成分类。对于这些数据量比较小的问题,机器能够很好地解决;但是现实中的情况复杂得多,例如在此问题的基础上再加上一些既含有中心体,又含有细胞壁的低等植物数据,机器再进行二聚类就很难了。

在无监督学习中,还有一种重要的方法一降维。降维就是指将数据从高维空间映射到低维空间。例如,对于立方体,我们知道根据长、宽、高3个特征可以实现可视化,如在坐标图中画出此立方体,且根据坐标轴的8个象限,总有方法可以对立方体进行划分。但是如果给出了4个特征,就无法通过可视化来观察数据,虽然也能对立方体进行划分,但是当维度过高、特征量过大的时候,得到的划分结果就难以理解了,这也是人工智能多次遭遇瓶颈的原因之一。

1.5 数据集

数据集(dataset),顾名思义就是数据的集合,也就是机器学习所处理的数据。业界有一句话:数据和数据特征决定了机器学习的上限,而模型和算法只用于逼近这个上限而已。从中可以看出,数据在机器学习中是非常重要的。

在监督学习中,数据集会被划分为训练集(training set)和测试集(test set),有时也会被划分为训练集、验证集(validation set)和测试集。

训练集用于拟合模型,通过设置分类器的参数,训练分类模型。后续将其结合验证集作用时,会选出同一参数的不同取值,以拟合出多个分类器。验证集的作用是,当通过训练集训练出多个模型后,为了能找出效果最佳的模型,使用各个模型对验证集数据进行预测,并记录模型的预测准确率,选出效果最佳的模型所对应的参数。测试集用于评估最终的模式识别系统的性能和分类能力。即可以把测试集当作从来不存在的数据集,当确定模型参数后,可以使用测试集进行模型预测并评估模型的性能。三者本质上无任何区别,对其进行划分是为了能够泛化(generalization)出更好的模型。

泛化能力是指一个算法通过数据集对新数据的预测能力。在监督学习中,我们知道算法训练数据后会构建模型,如果此时通过构建的模型来预测一些测试集数据的标签,对于每一个测试集数据,模型都能精确预测,就说这个模型能够从训练集泛化到测试集。

是否构建一个越复杂、越能拟合训练集的模型就越好呢?当然不是,还要考虑是否存在过拟合(over-fitting)、欠拟合(under-fitting)。举个例子,假设每个班都有一个班的微信群,老师和同学们都在群里面且都能及时收到消息,如果老师要给全班通知一个消息,那么有两种办法,一是直接在群里下达通知,二是逐个联系班里的每一个人。两种方式都能将消息通知给每一个人,通常我们都会选择前者。后者虽然也能达到目的,但是过于复杂,类似过拟合。机器学习就是机器自主地进行学习,我们“教会”机器一件事,然后机器通过运算和自主学习可以做到相似的所有事,而且不会出现太大偏差。如果我们将出现的所有情况的所有数据都“教”给机器,机器并没有做到自主学习,或者以偏概全,导致其泛化能力不是很好,这时就可能会出现过拟合或欠拟合的现象。

过拟合是指根据数据构建的模型的复杂度过高,对于应用于实际的问题,提供太多不必要的特征,从而导致机器没有理解数据间存在的规律。例如,在排除重名的情况下,去某个地址找人,只需要知道住址、姓名这两个特征就可以完成任务,而不必再增加不必要的特征,如性别、身高、体重等。

欠拟合是指构建的模型的复杂度过低,不能很好地解决实际问题。例如上面的例子,只知道这个人的性别去找人,显然不能很精确地找到。没有选择正确的数据特征,或者在特征条件或数据不足的情况下,模型不能找到数据的规律并预测。

假如图1-3中的第3个点是特殊点,如果建立模型,并将第1~5个点建立在一条线上,则 机器所建立的模型显然并不是很正确。当给一个新的数据点时,模型很可能预测失误,这时就出现了过拟合。

当数据没有特殊点影响的时候,如果重要特征或者数据过少,也不能建立良好的模型,就出现了欠拟合,如图1-4所示。

构建的模型的优劣取决于对测试集的评估和检验,当模型过于简单、特征过于少时,存在欠拟合现象,影响模型的泛化能力,导致其精度不会太高;当构建的模型过于复杂、精确时,会导致过拟合,使模型的泛化能力下降。因此建立一个好的模型是机器学习必不可少的环节。

1.6 机器学习项目的流程

1.分析问题,获取数据 当我们遇到一个问题的时候,首先要从问题中研究和提取合适的特征,将其作为项目需要处理的特征,然后将其转化为机器学习能够处理的数据。机器学习训练的过程非常耗时,需要我们仔细寻找合适的数据并确定机器学习的目标是分类、回归还是聚类。此时得到的数据决定了机器学习的上限,所以数据要选择具有代表性的,否则会产生过拟合。

2.数据预处理 我们在实际中得到的数据并不整齐、规范,对得到的数据还需人工分析数据的格式是否符合要求,是否存在空值、缺失值,是否需要该特征等,然后对其进行归一化、离散化、缺失值处理、去除共线性、降维等。这些工作简单、可复制,收益稳定、可预期,是机器学习基础、必备的步骤。

3.特征工程 特征工程在机器学习中起着非常重要的作用,它也是一种数据处理方法,会通过特征提取、特征选择等把数据处理成可更为直接地被使用的数据。 4.评估算法 算法的评估也是机器学习至关重要的一部分,评估一个算法的好坏并不能看其自身的优缺点,而是看算法能否很好地解决实际的问题。例如用于预测的算法,关键是看其预测的准确率,即预测值与实际值之间的接近程度,如果预测值与实际值非常接近,那么可认为该算法是好算法。选择一个合适的算法是建立一个良好模型的前提,现在市面上有很多机器学习算法的工具包,例如sklearn等,它们使用起来非常方便。 5.模型评估与调优 流程中真正考验水平的是根据对算法的理解调节参数,使模型达到最优。通过对模型的参数进行调整来对模型进行训练。训练中至关重要的是判断过拟合、欠拟合,常见的方法是绘制学习曲线,交叉验证(cross validation)。通过增加训练的数据量、降低模型复杂度来降低过拟合的风险,通过提高特征的数量和质量、增加模型复杂度来防止欠拟合发生。误差分析也是机器学习流程中非常重要的一步,通过测试数据,验证模型的有效性,观察误差样本,分析误差产生的原因。由算法训练并建立的模型被作用到测试集上检验其精度。若检验不合格,则将模型重新返回到算法进行学习,直至得到的模型比较精确,这样做往往能使我们找到提升算法性能的突破点。误差分析主要用于分析误差来源与数据、特征、算法。建立的模型需要进行误差分析,分析之后需要进行进一步调优。这是一个反复选代、不断逼近的过程,需要不断地尝试,进而使模型达到最优的状态。

6.模型融合 一般来说,实际运用中成熟的机器算法并不是很多,提升算法准确度的主要方法是使模型的前端(特征工程、清洗、预处理、采样)和后端互相融合。在机器学习比赛中模型融合非常常见,大都能使模型的效果有一定的改善。 7、上线运行 上线运行主要与项目实现的相关度比较大。项目是结果导向的,模型在线上运行的效果好坏直接决定模型的成败。其效果不只包括其准确程度、误差等情况,还包括其运行的速度(时间复杂度)、资源消耗程度(空间复杂度)、稳定性是否可接受等。 一个完整的机器学习项目的流程通常会有以上步骤,但不一定包含所有步骤。只有多实践、多积累项目经验,读者才会对机器学习项目有更深刻的认识。

1.7 小结

本章首先介绍了机器学习的概念和应用,以及机器学习的目的和意义。之后简要介绍了机器学习及其算法,包括监督学习、无监督学习、分类算法、回归算法、聚类算法等。然后又对数据集、训练集、验证集、测试集、泛化、过拟合、欠拟合等概念做了介绍。最后对整个机器学习项目的流程进行了介绍。 通过本章的学习,读者应该对机器学习有一定的认识。本章要求读者掌握机器学习的相关概念,并对机器学习项目的流程有一定的了解。

习题1

  1. 什么是机器学习?

  2. 机器学习的算法分为几种?

  3. 分类算法与回归算法的区别是什么?

  4. 在监督学习中,数据集可以划分为几种?各自的作用是什么?

  5. 机器学习的泛化能力是指什么?

  6. 什么时候会产生过拟合?什么时候会产生欠拟合?

  7. 机器学习项目的流程包括哪些步骤?


网站公告

今日签到

点亮在社区的每一天
去签到