第 1 章 机器学习概论
1.1 机器学习的基本定义
众所周知, 机器学习 (Machine Learning) 是人工智能的核心研究领域之一,其研究动机是为了让计算机系统具有人的学习能力以便实现人工智能. 那么, 什么是机器学习呢?机器学习是对研究问题进行模型假设, 利用计算机从训练数据中学习得到模型参数, 并*终对数据进行预测和分析的一门学科.
目前被广泛采用的机器学习的定义是“利用经验来改善计算机系统自身的性能”. 由于“经验”在计算机系统中主要是以数据的形式存在的, 因此机器学习需要运用机器学习技术对数据进行分析, 这就使得它逐渐成为智能数据分析技术的创新源之一, 并且为此而受到越来越多的关注.
那么, 拿什么来进行机器学习呢?当然是拿数据 (训练样本) 来学!设有一组训练样本 (数据), 记作 fxigni=1. 每个训练样本 xi 2 Rm, 都是通过采样得到的一个模式, 即输入特征空间中的一个向量; 通常是高维度的 (即 m 很大), 例如一幅图像. 训练样本可以认为是尚未加工的原始知识, 模型则是经过学习 (即加工、整理、归纳等) 后的真正知识表达. 同时假设所有训练样本满足独立同分布条件 (简记为 iid). 如果要想学得好, 这组训练样本要覆盖模型所有可能的分布空间.
为什么需要机器学习呢?计算机发明的初衷是解决大规模科学与工程计算中的数学问题, 后来才被应用于各种领域, 包括数据存储、排序等更复杂的数值与非数值计算. 对于人们要解决的各种实际问题, 计算机程序都取得了远远超过人类的成绩. 例如, 人们在使用智能导航软件时, 任意给定出发点和目的地, 导航软件可以很快计算出*优路线, 这一点也远超过人类. 可以肯定地说, 一个实际问题只要有了确定的逻辑和数学模型, 就可以用计算机进行很好的解决, 并且其处理能力是人类所望尘莫及的. 然而, 到目前为止, 还有许多无法用数学或逻辑模型准确描述的问题, 如情感表达、图像识别、小说创作等, 计算机处理的能力一般还不如人类. 这些用计算机难以处理的问题, 是当前人工智能要解决的核心问题. 而机器学习正是解决这类问题的有力工具.
1.2 机器学习的基本术语
掌握一门学科的基本术语对学好这门学科是至关重要的. 假定我们通过记录的方式获得了一个关于西瓜的训练数据集, 如表 1.1 所示. 我们将以这个数据集中的数据为例对机器学习的基本术语进行具体化, 以便加深对有关概念的理解.
表 1.1 西瓜数据集
记录表 1.1 中各项数据的集合称为“数据集”或“样本集”, 表格的每一行数据 (这里是对每一个西瓜的描述) 称为一个“示例”或“样本”. 反映事件或对象在某方面的表现或性质的事项, 称为“属性”或“特征”, 如表格中的“色泽”“根蒂”“敲声”等; 而每个属性或特征的取值, 称为“属性值”或“特征值”, 例如表格中的“青绿”“乌黑”等. 属性 (特征) 张成的空间称为“属性空间”(或“样本空间”“输入空间”), 例如将表格中的“色泽”“根蒂”“敲声”作为三个坐标轴, 则它们张成一个用于描述西瓜的三维空间, 每个西瓜都可在这个空间中找到自己的坐标位置. 由于属性空间中的每个点对应着一个坐标向量, 因此可以把一个示例称为一个“特征向量”(或“属性向量”). 对于表 1.1 中的某一行数据, 利用“色泽”“根蒂”“敲声”三个属性进行取值记录, 可认为该样本的“维数”为 3. 从数据中学得模型的过程称为“学习”或“训练”, 这个过程通过执行某个学习算法来完成.训练过程中使用的数据称为“训练数据”, 其中每个样本称为一个“训练样本”, 训练样本组成的集合称为“训练集”. “标记/标签”用来表示样本的结果信息, 例如表中的“是否好瓜”. “样例”是指既包含样本属性值又包含标签的样本. 注意样例与样本的区别, 后者包括训练样本和测试样本, 样本不一定具有标签. 所有标记结果的集合称为“标记空间/输出空间”.
根据已有的众多样本来判断某一样本的输出结果的过程称为“预测”. 当预测结果是离散值时, 如表中的“好瓜”“非好瓜”, 此类学习任务称为“分类”. 特别地, 对只涉及两个类别的“二分类”任务, 通常称其中一个类为“正类”, 另一个类为“负类 ”; 当涉及多个类别时, 则称为“多分类”任务. 若欲预测的是连续值, 例如西瓜成熟度, 此类学习任务称为“回归”. 一般地, 预测任务是希望通过对训练集 f(x1, y1), (x2, y2), , (xn, yn)g 进行学习, 建立一个从输入空间 X 到输出空间 Y 的映射 f : X → Y. 对二分类任务, 通常令 Y = f 1, +1g 或 f0, 1g;对多分类任务, jYj > 2; 对回归任务, Y = R, R 为实数集.
没有用于模型训练的样本都可认为是该模型的“新样本”. 学得模型适用于新样本的能力, 称为“泛化”能力. 学得模型后, 使用其进行预测的过程称为“测试”, 被预测的样本称为“测试样本”. 例如在学得映射 f 后, 对测试例 x, 可得到其预测标记 y = f(x).
还可以对样本做“聚类”, 也就是将训练集中的样本分成若干组, 每个组称为一个“簇”, 这些自动形成的簇可能对应一些潜在的概念划分, 例如“浅色瓜”“深色瓜”等. 这样的学习过程有助于人们了解数据内在的规律, 能为更深入地分析数据建立基础. 值得注意的是, 在聚类学习中, “浅色瓜”“深色瓜”这样的概念事先是不知道的, 是学习过程中得到的. 而且学习过程中使用的训练样本通常不拥有标记信息.
1.3 机器学习算法的分类
机器学习的本质是模型的选择和模型参数的确定. 根据训练数据是否拥有标记信息, 学习任务可大致划分为两大类: 监督学习和无监督学习, 分类和回归是监督学习的代表, 且样本拥有标记信息, 而聚类则是无监督学习的代表, 且样本不具有标记信息.
1.3.1 监督学习与无监督学习
监督学习的样本数据 xi (i = 1, 2, , n) 带有标签值 yi (i = 1, 2, , n), 它从训练样本中学得一个模型, 然后用这个模型对新的样本进行预测推断. 通俗地说, 监督学习就是从训练样本数据中学得一个映射函数 f 以及函数的参数 θ, 建立如下的映射关系:
其中, 样本向量 x 是模型的输入值, 标签 y 是模型的输出值. 标签可以是整数, 也可以是实数, 还可以是向量. 确定这个映射的依据是它能够很好地解释训练样本,让映射的输出值与真实的样本标签值之间的误差极小化, 或者让训练样本集的对数似然函数极大化.
日常生活中, 监督学习的应用例子很多, 例如人脸识别、垃圾邮件分类、语音识别、手写体辨识等等. 这类问题需要先收集训练样本, 并对样本进行标注, 然后用标注好的样例 (样本 + 标记) 去训练模型, *后用训练好的模型对新的样本进行预测.
无监督学习对没有标签的样本数据进行分析, 去发现样本集所具有的内在结构或分布规律. 无监督学习的典型代表是聚类分析、数据降维和表示学习, 它们所处理的样本都不带有标签信息.
聚类分析属于分类问题, 但不具有训练过程. 聚类把一批没有标签的样本数据划分成多个“簇”, 使得在某种相似度指标下每个簇内的样本尽量相似, 而不同簇的样本之间尽量不相似. 聚类算法只有输入向量而没有标签值, 也没有训练过程, 我们在后续的章节中将详细介绍各种典型的聚类算法.数据降维也是一种无监督学习方法, 它将 m 维向量空间中的点通过一个函数映射到更低维的维空间中去:
通过将数据映射到低维空间, 可以更容易对它们处理和分析. 如果将数据降维到二维或三维空间, 还可以直观地将降维后的样本数据可视化. 我们将在后续章节中详细介绍数据降维的典型代表——主成分分析法.
无监督学习的另一类典型算法是表示学习. 表示学习自动从样本中学习出有用的特征, 用于聚类和分类等目的. 典型的表示学习算法有自动编码器和受限玻尔兹曼机, 它们的输入是没有标签值的样本数据, 如图像和语音信号等, 输出值是提取的特征向量.
有些应用问题, 对训练样本进行标记具有很高的成本. 如何利用少量有标记样本和大量无标记样本进行学习, 就是所谓的“半监督学习”. 半监督学习的训练样本是有标记样本与无标记样本的混合, 且一般情况下无标记样本的数量远大于有标记样本. 关于半监督学习的原理, 本书不打算详细阐述, 有兴趣的读者可参考有关文献.
1.3.2 分类问题与回归问题
1. 分类问题
在监督学习中, 如果样本标签是离散值, 这类问题称为分类问题, 其预测函数是一个向量到整数的映射: Rm → Z. 通俗地说, 分类问题是用于将事物打上一个标签, 例如判断一幅图片上的动物是一只猫还是一只狗. 在分类问题中, 样本的标签是其类别编号, 一般从 0 或 1 开始编号. 如果类别数为 2, 则称为二分类问题,其类别标签通常设置为 +1 和 1 (也可以设置为 0 和 1), 分类对应正类样本和负类样本. 例如在图像识别中, 要判断一幅图像是否为人脸, 那么正类样本为人脸,负类样本为非人脸. 分类并没有逼近的概念, *终正确结果只有一个, 错误的就是错误的, 不会有相近的概念. *常见的分类方法是逻辑回归, 或者叫逻辑分类.
对于分类问题, 如果预测函数是线性函数, 则称为线性模型, 否则称为非线性模型. 线性模型是 Rm 中的线性划分. 线性函数是超平面 (在二维空间中是直线,
三维空间中是平面). 线性模型的二分类问题使用的预测函数通常是其中 w 是权重向量, b 是偏置项. 后续章节要介绍的线性支持向量机、逻辑斯谛回归等都属于线性模型.
非线性模型的预测函数是非线性映射, 其分类边界是 Rm 中的一个超曲面.在实际应用中样本数据一般是非线性的, 因此, 要求决策函数必须具有非线性拟合的能力, 如后续章节中将介绍的人工神经网络、核映射支持向量机、决策树等都属于非线性模型.
2. 回归问题
在监督学习中, 如果标签值是连续实数, 这类学习问题称为回归问题. 回归问题是对于连续性数据, 从已有的数据分析来预测结果, 它的预测函数是向量到实数的映射: Rm → R. 例如预测房价、未来的天气情况等都属于回归分析问题.
预测函数可以是线性函数, 也可以是非线性函数. 如果是线性函数则称为线性回归, 否则称为非线性回归. 回归分析的任务就是对于给定的训练样本集, 选择预测函数的类型, 然后确定函数的参数值, 例如线性模型 y = wTx + b 中的参数 w 和 b. 确定参数的常用方法是构造一个损失函数 (x, θ), 它表示预测函数的输出值与样本真实标签值之间的误差, 对所有训练样本的误差求平均值, 得到一个关于参数 θ 的极小化问题:
其中, .(xi; θ) 是单个样本的损失函数, n 为训练样本数. 极小化损失函数 .(θ) 可以确定参数 θ 的值, 从而确定预测函数. 对于机器学习算法, 关键的一步就是确定损失函数. 一旦确定了损失函数, 问题就转化为求解一个*优化问题, 这在数学上一般有标准的解决方案.
1.3.3 生成模型与判别模型
按照模型的求解方法, 可以将分类算法分成生成模型和判别模型. 给定样本特征向量 x 和标签 y, 生成模型是对联合概率 p(x, y) 建模, 而判别模型则是对条件概率 p(y j x) 建模. 不使用概率模型的分类器被归为判别模型, 它直接得到决策函数而不关心样本的概率分布.
典型的生成模型有高
展开