通俗地讲,机器学习就是让计算机从数据中进行自动学习,得到某种知识(或规律)。机器学习通常指一类问题以及解决这类问题的方法,即如何从观测数据(样本)中寻找规律,并利用学习到的规律(模型)对未知或无法观测的数据进行预测。
本章先介绍机器学习的基本概念和基本要素,并较详细地描述一个简单的机器学习的例子,线性回归。
2.1 基本概念
首先我们以一个生活中的例子来介绍机器学习中的一些基本概念:包括样本、特征、标签、模型、学习算法等。
假设要到市场上购买芒果,但是之前毫无挑选芒果的经验,我们如何通过学习来获取这些知识?
首先,从市场上随机选取一些芒果,列出每个芒果的特征:包括颜色、大学、形状、产地、品牌,以及我们需要预测的标签。标签可以是连续值(比如关于芒果的甜度、水分以及成熟度的综合打分),也可以是离散值(比如”好“,”坏“两类标签)。
一个标记好特征以及标签的芒果可以看作是一个样本。一组样本构成的集合称为数据集。一般将数据集分为两部分:训练集和测试集。
通常用一个D维向量x = [x1,x2,...,xD]^T表示一个芒果的所有特征构成的向量,称为特征向量。
训练集D符号表示
希望让计算机从一个函数集合中自动寻找一个”最优“的函数f*(x)来近似每个样本特性向量x和标签y之间的真实映射关系。对于一个样本x,我们可以通过函数f*(x)来预测其标签的值。
或标签的条件概率
下图给出了机器学习的基本流程
2.2 机器学习的三个基本要素
机器学习方法可以粗略地分为三个基本要素:模型、学习准则、优化算法。
2.2.1 模型
机器学习的目标是找到一个模型来近似真实映射函数g(x)或真实条件概率分布pr(y|x)。
2.2.1.1 线性模型
线性模型的假设空间为一个参数化的线性函数族,即
其中参数θ包含了权重向量w和偏置b
2.2.1.2 非线性模型
广义的非线性模型可以写为多个非线性基函数φ(x)的线性组合
2.2.2 学习准则
一个好的模型f(x,θ*)应该在所有(x,y)的可能取值上都与真实映射函数y=g(x)一致,即
或与真实条件概率分布pr(y|x)一致,即
2.2.2.1 损失函数
损失函数是一个非负实数函数,用来量化模型预测和真实标签之间的差异。
几种常用的损失函数:
0-1损失函数 最直观的损失函数是模型在训练集上的错误率,即0-1损失函数:
其中I(.)是指示函数
0-1损失函数能够客观地评价模型的好坏,但其缺点是数学性质不是很好:不连续且导数为0,难以优化。
平方损失函数(经常用在预测标签y为实数值的任务中)
交叉熵损失函数(一般用于分类问题)标签的真实分布y和模型预测分布f(x;θ)之间的交叉熵为
对于三分类问题,一个样本的标签向量为y = [0,0,1]^T ,模型预测的标签分布为f(x;θ) = [0.3,0.3,0.4]^T,则它们的交叉熵为 - ( 0 × log(0.3) + 0 × log(0.3) + 1 × log(0.4)) = -log(0.4)。
Hinge损失函数
2.2.2.2 风险最小化准则
由于不知道真实的数据分布和映射函数,实际上无法计算其期望风险R(θ),我们可以计算的是经验风险,即在训练集上的平均损失:
一个切实可行的学习准则是找到一组参数θ*使得经验风险最小,即这就是经验风险最小化。
过拟合
经验风险最小化原则很容易导致模型在训练集上错误率很低,但是在未知数据上错误率很高,这就是所谓的过拟合。
为了解决过拟合问题,一般在经验风险最小化的基础上再引入参数的正则化来限制模型能力,使其不要过度地最小化经验风险。这种准则就是结构风险最小化准则:
和过拟合相反的一个概念是欠拟合,即模型不能很好地拟合训练数据,在训练集的错误率比较高。欠拟合一般是由于模型能力不足造成的。下图给出了欠拟合和过拟合的示例。
2.2.3 优化算法
机器学习的训练过程其实就是最优化问题的求解过程。
参数与超参数
模型f(x;θ)中的θ称为模型的参数,可以通过优化算法进行学习。超参数是用来定义模型结构或优化策略的。
常见的超参数包括:聚类算法中的类别个数、梯度下降法中的步长、正则化项的系数、神经网络的层数、支持向量机中的核函数等。
2.2.3.1 梯度下降法
梯度下降法,即首先初始化参数θ0,然后按下面的迭代公式来计算训练集D上风险函数的最小值:
α为搜索步长,在机器学习中,α一般称为学习率。
2.2.3.2 提前停止
在梯度下降训练的过程中,由于过拟合的原因,在训练样本上收敛的参数,并不一定在测试集上最优。因此,除了训练集和测试集之外,有时也会使用一个验证集来进行模型选择,测试模型在验证集上是否最优。如果在验证集上的错误率不再下降,就停止迭代。这种策略叫提前停止。下图给出了提前停止的示例。
2.2.3.3 随机梯度下降法
为了减少每次迭代的计算复杂度,我们也可以在每次迭代时只采集一个样本,计算这个样本损失函数的梯度并更新参数,即随机梯度下降法。随机梯度下降法的训练过程如下所示。
小批量梯度下降法 随机梯度下降法的一个缺点是无法充分利用计算机的并行计算能力。小批量梯度下降法是批量梯度下降和随机梯度下降的折中。每次迭代时,随机选取一小部分训练样本来计算梯度并更新参数。
2.3 机器学习的简单示例:线性回归
线性回归的模型简写为f(x;w) = w^T*x
2.3.1 参数学习
2.3.1.1 经验风险最小化
使用平方损失函数来衡量真实标签和预测标签之间的差异。
根据经验风险最小化准则,训练集D上的经验风险定义为
风险函数R(w)是关于w的凸函数,其对w的偏导数为
令得到最优的参数w*为
这种求解线性回归参数的方法也叫最小二乘法
2.3.1.2 结构风险最小化
最小二乘法的基本要求是各个特征之间要互相独立,保证XX^T可逆,但即使XX^T可逆,如果特征之间有较大的多重共线性,也会使得XXT的逆在数值上无法准确计算。因此提出了岭回归,给XX^T的对角线元素都加上一个常数λ使得(XXT +λT)满秩,即其行列式不为0、最优的参数w*为
岭回归的解w*可以看作是结构化风险最小化准则下的最小二乘法估计,其目标函数可以写为
2.3.1.3 最大似然估计
机器学习任务可以分为两类:一类是样本的特征向量x和标签y之间存在未知的函数关系y = h(x),另一类是条件概率p(y|x)服从某个未知分布。
假设标签y为一个随机变量,其服从以均值为f(x;w) = wT x,方差为σ²的高斯分布:
参数w在训练集D上的似然函数为
为了方便计算,对似然函数取对数得到对数似然函数
2.4 偏差-方差分解
如何在模型的拟合能力和复杂度之间取得一个较好的平衡,对一个机器学习算法来讲十分重要。偏差-方差分解为我们提供一个很好的分析和指导工具。
以回归问题为例,假设样本的真实分布为pr(x,y),采用平方损失函数,模型f(x)的期望错误为
那么最优的模型为
损失为
期望错误可以分解为
对于单个样本x,不同训练集D得到模型fD(x)和最优模型f*(x)的期望差距为
第一项为偏差(Bias),是指一个模型在不同训练集上的平均性能和最优模型的差异,可以用来衡量一个模型的拟合能力。
第二项是方差(Variance),是指一个模型在不同训练集上的差异,可以用来衡量一个模型是否容易过拟合。
下图给出了机器学习模型的四种偏差和方差组合情况。
方差一般会随着训练样本的增加而减少。随着模型复杂度的增加,模型的拟合能力变强,偏差减少而方差增大,从而导致过拟合。下图给出了机器学习模型的期望错误、偏差和方差随复杂度的变化情况,其中红色虚线表示最优模型。
2.5 机器学习算法的类型
监督学习:如果机器学习的目标是通过建模样本的特征x和标签y之间的关系:y=f(x;θ)或p(y|x;θ),并且训练集中每个样本都有标签,那么这类机器学习称为监督学习。根据标签类型的不同,监督学习又可分为回归问题、分类问题和结构化学习问题。
( 1 ) 回归问题:标签y是连续值,f(x;θ)的输出也是连续值
( 2 ) 分类问题:标签y是离散的类别(符号)。分类问题根据其类别数量又可分为二分类和多分类。
( 3 ) 结构化学习问题的输出y通常是结构化的对象,比如序列、树或图等。
无监督学习:从不包含目标标签的训练样本中自动学习到一些有价值的信息。典型的无监督学习问题有聚类、密度估计、特征学习、降维等。
强化学习:通过交互来学习的机器学习算法。
下表给出了三种机器学习类型的比较
2.6 数据的特征表示
图像特征 :如果图像是一张大小为M×N的图像,其特征向量可以简单地表示为M×N维的向量,每一维的值为图像中对应像素的灰度值。
文本特征:为了将样本x从文本形式转为向量形式,一种简单的方式是使用词袋模型。假设训练集合中的词都来自一个词表V,大小为|V|,则每个样本可以表示为一个|V|维的向量x∈R^|V|。向量x中第i维的值表示词表中的第i个词是否在x中出现。如果出现,值为1,否则为0。
比如两个文本”我 喜欢 读书“和”我 讨厌 读书“中共有”我“、”喜欢“、”讨厌“、”读书“四个词,它们的BoW表示分别为 x1 = [1 1 0 1]T , x2 = [1 0 1 1]T
词袋模型将文本看作是词的集合,不考虑词序信息,不能精确地表示文本信息,一种改进方式是使用N元组合特征。以最简单的二元特征为例,上面的两个文本中共有”$我“、”我喜欢“、”我讨厌“、”喜欢读书“、”讨厌读书“、”读书#“六个特征单元($和#分别表示文本的开始和结束)。
它们的二元特征BoW表示分别为 x1 = [1 1 0 1 0 1]T ,x2 = [1 0 1 0 1 1]T
表示学习:如何让机器自动地学习出有效的特征也成为机器学习中的一项重要研究内容,称为特征学习。也叫表示学习。
2.6.1 传统的特征学习
传统的特征学习一般是通过人为地设计一些准则,然后根据这些准则来选取有效的特征,具体又分为两种:特征选择和特征抽取。
2.6.1.1 特征选择
特征选择就是保留有用特征,移除冗余或无关的特征。
子集搜索:一种直接的特征选择方法为子集搜索。常用的方法是采用贪心的策略:由空集合开始,每一轮添加该轮最优的特征,称为前向搜索;或者从原始特征集合开始,每次删除最无用的特征,称为反向搜索。子集搜索方法又可以分为过滤式和包裹式的方法。
过滤式方法:不依赖具体的机器学习模型,每次增加最有信息量的特征,或删除最没有信息量的特征。信息量可以通过信息增益来衡量。
包裹式方法:用后续机器学习模型的准确率来评价一个特征子集。每次增加对后续机器学习模型最有用的特征,或删除对后续机器学习任务最无用的特征。这种方法是将机器学习模型包裹到特征选择过程的内部。
2.6.1.2 特征抽取
特征抽取是构造一个新的特征空间,并将原始特征投影在新的空间中得到新的表示。
下表列出了一些传统的特征选择和特征抽取方法
特征选择和特征抽取也经常称为维数约减或降维。
2.6.2 深度学习方法
如果将特征的表示学习和机器学习的预测学习有机地统一到一个模型总,建立一个端到端的学习算法,就可以有效地避免它们之间准则的不一致性。这种表示学习方法称为深度学习。深度学习方法的难点是如何评价表示学习对最终系统输出结果的贡献或影响,即贡献度分配问题。
2.7 评价指标
准确率:最常用的评价指标为准确率
错误率:和准确率相对应的就是错误率
精确率和召回率:对于类别c来说,模型在测试集上的结果可以分为以下四种情况:
精确率,也叫精度或查准率,类别c的查准率是所有预测为类别c的样本中,预测正确的比例:
召回率,也叫查全率,类别c的查全率是所有真实标签为类别c的样本中,预测正确的比例:
F值,一个综合指标,为精确率和召回率的调和平均:
宏平均和微平均
微平均是每一个样本的性能指标的算术平均值。
交叉验证:交叉验证是一种比较好的衡量机器学习模型的统计分析方法,可以有效避免划分训练集和测试集时的随机性对评价结果造成的影响。我们可以把原始数据集平均分为K组不重复的子集,每次选K-1组子集作为虚拟缆机,剩下的一组子集作为验证集。这样可以进行K次试验并得到K个模型,将这K个模型在各自验证集上的错误率的平均作为分类器的评价。
2.8 理论和定理
2.8.1 PAC学习理论
在机器学习中希望有一套理论能够分析问题难度、计算模型能力,为学习算法提供理论保证,并指导机器学习模型和学习算法的设计。这就是计算学习理论。计算学习理论是关于机器学习的理论基础,其中最基础的理论就是可能近似正确(PAC)学习理论。
机器学习中一个很关键的问题是期望错误和经验错误之间的差异,称为泛化错误,泛化错误可以衡量一个机器学习模型f是否可以很好地泛化到未知数据。
PAC学习可以分为两部分:
一是“近似正确”。一个假设f∈F是“近似正确”的,是指其在泛化错误小于一个界限ε。ε一般为0到 1/2之间的数。 0 < ε < 1/2
二是“可能”,一个学习算法A有“可能”以1-δ的概率学习到这样一个“近似正确”的假设。δ一般为0到1/2之间的数。 0 < δ < 1/2。
PAC学习可以下面公式描述:
2.8.2 没有免费午餐定理
没有免费午餐定理证明:对于基于迭代的最优化算法,不存在某种算法对所有问题(有限的搜索空间内)都有效。如果一个算法对某些问题有效,那么它一定在另外一些问题上比纯随机搜索算法更差。也就是说,不能脱离具体问题来讨论算法的优劣,任何算法那都有局限性。必然要”具体问题具体分析“。
2.8.3 丑小鸭定理
丑小鸭与白天鹅之间的区别和两只白天鹅之间的区别一样大。因为世界上不存在相似性的客观标准,一切相似性的标准都是主观的。
2.8.4 奥卡姆剃刀原理
简单的模型泛化能力更好。如果有两个性能相近的模型, 我们应该选择更简单的模型。
2.8.5 归纳偏置
在机器学习中,很多学习算法经常会对学习的问题做一些假设,这些假设就称为归纳偏置。
2.9 总结和深入阅读