本章介绍机器学习的基本概念和基本要素,并较详细地描述一个简单的机器学习例子——线性回归。
机器学习:让计算机从观测数据(样本)中进行自动学习,得到某种知识(或规律),并利用学习到的规律(模型)对未知或无法观测地数据进行预测
早期工程领域,机器学习也被称为模式识别
2.1 基本概念
以“购买芒果”举例:
概念 | 定义 |
---|---|
特征/属性 | 自变量,芒果的颜色、大小、形状、产地、品牌等已知的属性 |
标签 | 因变量 ,需预测,连续值(芒果的甜度、水分、成熟度的综合打分)or 离散值(好、坏) |
样本 | 一个标记好 特征 和 标签 的芒果是一个样本,也称 示例 |
数据集 | 一组样本构成的集合,一般分为 训练集 和 测试集 |
训练样本 | 训练集中的样本,用来训练模型 |
测试样本 | 测试集中的样本,用来检验模型好坏 |
特征向量 | 一个芒果的所有特征构成的 D 维向量 ,每一维表示一个特征 |
学习/训练 | 对于一个样本,找到一个“最优”的函数来预测其标签的值,这个过程称为学习 |
机器学习的基本流程:
2.2 机器学习的三个基本要素
2.2.1 模型
概念 | 定义 |
---|---|
输入空间 | 默认为样本的特征空间 |
输出空间 | 二分类问题中,C 分类问题中,回归问题中 |
样本空间 | 输入空间 和输出空间 构成一个样本空间 |
假设空间 | 参数化的函数族, 是参数为 的函数,也称为模型, 为参数的数量 - 线性模型:, 包含了权重向量 和偏置 - 非线性模型: (如果”ϕ(x)”为可学习的非线性基函数,”f(x,θ)”就等价于神经网络。) |
假设 | ,机器学习就是要寻找理想的假设,即最接近 和 之间的真实映射函数 |
2.2.2 学习准则
- 期望风险 :模型 的好坏可以通过期望风险来衡量
- 由于无法知道真实的数据分布 和映射函数,实际上无法计算期望风险
- 经验风险 :可计算的,在训练集 上的平均损失
- 泛化错误:期望错误和经验错误之间的差异, 可以用来衡量模型 f 是否可以很好地泛化到未知数据
- 当训练集大小趋于无穷大, 泛化错误趋向于 0, 即经验风险趋近于期望风险
损失函数 :用来量化模型预测和真实标签之间的关系
- 0-1 损失函数:
- 优点:能客观评价模型的好坏
- 缺点:不连续且导数为 0,难以优化,因此常用连续可微的损失函数代替
- 平方损失函数:
- 常用于预测标签 y 为(连续的)实数值的任务中
- 一般不适用于分类问题
- 交叉熵损失函数:, 是标签真实分布, 是模型预测分布
- 一般用于分类问题
- Hinge 损失函数:
- 二分类问题,假设 的取值为 {-1,+1},
- 0-1 损失函数:
风险最小化准则:
- 经验风险最小化准则:由于期望风险实际上无法计算,因此一个切实可行的方法是找到一组参数 使得经验风险最小化
- 当训练集大小趋向于无穷大时,经验风险趋向于期望风险
- 缺点:由于训练数据少、噪声以及模型能力强等原因,容易导致过拟合,即模型在训练集上错误率很低,但在未知数据上错误率很高
- 结构风险最小化准则:在经验风险最小化的基础上引入参数的正则化,以限制模型能力,防止过拟合
- 经验风险最小化准则:由于期望风险实际上无法计算,因此一个切实可行的方法是找到一组参数 使得经验风险最小化
机器学习的学习准则并不仅仅是拟合训练集上的数据,同时也要使得泛化错误最低
2.2.3 优化算法
机器学习的训练过程就是最优化问题的求解过程
- 机器学习中,优化又分为参数优化和超参数优化:
- 参数: 中的
- 超参数:参数的参数,即控制模型参数分布的参数
- 常见的超参数:聚类算法中的类别个数、梯度下降法中的步长、正则化项的系数、神经网络的层数、支持向量机中的核函数等
优化算法:
- (批量)梯度下降法:, 为学习率
- 神经网络的优化目标是非凸的,只能退而求其次找到局部最优解
- 缺点:批量梯度下降法每次迭代时计算每个样本上损失函数的梯度并求和,当训练集中样本数 N 很大时,空间复杂度较高,每次迭代计算的开销也大(每次迭代的优化目标是所有样本的平均损失函数)
- 提前停止:设置一个验证集,若在验证集上的错误率不在下降,则停止迭代,防止过拟合
- 随机梯度下降法:即为了减少每次迭代的计算复杂度,在每次迭代时只采集一个样本,计算这个样本损失函数的梯度并更新参数(每次迭代的目标是单个样本的损失函数)
- 缺点:无法充分利用计算机的并行计算能力
- 小批量梯度下降法:是批量梯度下降和随机梯度下降的折中,每次迭代时,随机选取一小部分训练样本来计算梯度并更新参数
- 优点:收敛快、开销小,因此是大规模机器学习的主要优化算法
2.3 机器学习的简单示例——线性回归
- 线性回归:是一种对自变量和因变量之间的关系进行建模的回归分析,自变量数量为 1 时称为简单回归,自变量数量大于 1 时称为多元回归
2.3.1 参数学习(学习准则)
2.4 偏差-方差分解
- 过拟合:模型在训练集上的错误率很低,但在未知数据上错误率很高(方差高)
- 原因:训练数据少、噪声、模型能力强(复杂)
- 解决办法:适降低模型复杂度,加大正则化系数,引入先验,扩增数据集等,还有集成模型(通过多个高方差模型的平均来降低方差)
- 欠拟合:模型不能很好地拟合训练数据,在训练集上的错误率比较高(偏差高)
- 原因:模型能力不足
- 解决办法:提高模型复杂度,增加数据特征、减小正则化系数等
- 偏差 bias:指一个模型在不同训练集上的平均性能和最优模型的差异,可以用来衡量一个模型的拟合能力
- 随着模型的复杂度增加,模型的拟合能力变强,偏差减少而方差增大,从而导致过拟合
- 方差 variance:指一个模型在不同训练集上的差异,可以用来衡量一个模型是否容易过拟合,衡量泛化能力
- 方差一般会随着训练样本的增加而减少
2.5 机器学习算法的类型
2.6 数据的特征表示
- 图像特征
文本特征:词袋、N-Gram
原始特征的不足:
- 特征比较单一,需要进行(非线性的)组合才能发挥其作用
- 特征之间的冗余度比较高
- 并不是所有的特征都对预测有用
- 很多特征通常是易变的
- 特征中往往存在一些噪声
表示学习/特征学习:让机器自动学习出有效的特征
- 优点:一定程度上可以减少模型复杂性、缩短训练时间、提高模型泛化能力、避免过拟合等 特征选择和特征抽取也称为降维,用较少的特征来表示原始特征中的大部分相关信息,去掉噪声信息,并进而提高计算效率和减小维度灾难
特征选择:选取原始特征集合的一个有效子集,移除冗余或无关的特征
- 子集搜索
- 过滤式方法:每次增加最有信息量的特征,或删除最没有信息量的特征
- 包裹式方法:根据准确率,每次增加对后续机器学习模型最有用的特征,或删除对后续机器学习任务最无用的特征
- L1 正则化:L1 正则化会导致稀疏特征,间接实现了特征选择
- 子集搜索
- 特征抽取:构造一个新的(低维的)特征空间,并将原始特征投影在新的空间中得到新的表示
2.7 评价指标
评价指标 | 定义 |
---|---|
准确率 | 预测对的样本数/总样本数, 是所有类别整体性能的平均 |
错误率 | |
精确率/精度/查准率 | 针对类别 c 的性能估计, , 即真实类别和预测类别都为c的样本数/预测为类别c的样本数 |
召回率/查全率 | 针对类别 c 的性能估计, , 即真实类别和预测类别都为c的样本数/真是类别为c的样本数 |
F值 | 精确率和召回率的调和平均, |
宏平均 | 每一类的性能指标的算术平均值, 当不同类别的样本数不均衡时, 使用宏平均比微平均更合理些, 宏平均会更关注小类别上的评价指标 |
微平均 | 每一个样本的性能指标的算术平均值 |
交叉验证 | 将原始数据集平均分为 K 组不重复的子集, 每次选 K-1 组子集作为训练集,剩下的一组子集作为验证集, 如此进行 K 次试验并得到 K 个模型, 将这 K 个模型在各自验证集上的错误率的平均作为分类器的评价 |
2.8 理论和定理
2.8.1 PAC 学习理论
- 计算学习理论: 能分析问题难度, 计算模型能力, 为学习算法提供理论保证, 并指导机器学习模型和学习算法的设计
- 可能近似正确(PAC)学习理论: 是计算学习理论中最基础的理论。一个 PAC 可学习的算法是指该学习算法能在多项式时间内从合理数量的训练数据中学习到一个近似正确的
2.8.2 没有免费的午餐
不存在一种机器学习算法使用于任何领域或任务。
2.8.3 奥卡姆剃刀原理
- 奥卡姆剃刀原理:如无必要,勿增实体。
- 体现在机器学习上:简单的模型泛化能力更好。因此,如果有两个性能相近的模型,应该选择更简单的那个模型
2.8.4 丑小鸭定理
- 丑小鸭定理:丑小鸭与白天鹅之间的区别和两种白天鹅之间的区别一样大
- 即,不存在相似性的客观标准,一切相似性的标准都是主观的
2.8.5 归纳偏置
- 归纳偏置:在机器学习中,很多学习算法经常会对学习的问题做一些假设,这些假设就称为归纳偏置。归纳偏置在贝叶斯学习中也称为先验。
2.9 总结和深入阅读
机器学习的三个基本要素为:模型、学习准则、优化算法。大部分机器学习算法都可以视为这三个基本要素的不同组合。
习题(解答)
习题2-1 分析为什么平方损失函数不适用于分类问题。
- 平方损失函数经常用在预测标签 y 为实数值的任务中,而分类问题的标签是离散的类别,因此平方损失函数一般不适用于分类问题
- 损失函数用于量化模型预测和真实标签之间的差异,如果选用的损失函数无法很好地反映这个差异,就不能指导我们进行优化。对于分类问题,类别之间的排序并不能反映相似度地差异,比如类别1 的物体被预测为 类别 2 和类别 3 应该是没有差别的,但是根据平方损失函数,被预测为 3 时损失值更大,这是不合理的,因此不适用
习题2-2 在线性回归中,如果我们给每个样本 赋予一个权重 ,经验风险函数为 ,计算其最优参数 ,并分析权重 的作用。(本题可参考本书p34,有类似的计算过程,只是本题加了权重)
- 对不同样本分配不同的权重,相当于对每个样本设置不同的学习率,或理解为对每个样本重视程度不同
习题2-3 证明在线性回归中,如果样本数量 N 小于特征数量 D+1,则 的秩(rank)最大为 N。
定理:矩阵的乘积的秩
(D个权重参数,1个偏置参数,N个样本),
∴
∴
习题2-4 在线性回归中,验证岭回归的解为结构风险最小化准则下的最小二乘法估计,见公式
已知:
岭回归的解:
结构风险最小化准则下的最小二乘估计,其目标函数为
求解该目标函数的最优解,令其导数为 0:
∴ 岭回归的解为结构风险最小化准则下的最小二乘法估计
习题2-5 在线性回归中,若假设标签 ~ ,并用最大似然估计来优化参数,验证最优参数为公式 的解。
见本书p37
习题2-6 假设有 N 个样本 服从正态分布 ,其中 未知 1)使用最大似然估计来求解最优参数 ; 2)若参数 为随机变量,并服从正态分布 ,使用最大后验估计来求解最优参数
习题2-7 在习题2-6中,证明当 时,最大后验估计趋向于最大似然估计。
习题2-8 验证公式
习题2-9 试分析什么因素会导致模型出现图2.6所示的高偏差和高方差情况
- 高偏差:欠拟合,模型不能很好地拟合训练数据,通常是模型能力不足导致的,可以通过提高模型复杂度、增加数据特征、减小正则化系数等方法解决
- 高方差:过拟合,模型在训练集上错误率很低,但在未知数据上错误率很高。方差用于衡量泛化能力,高方差说明泛化能力差。通常是训练数据少、噪声、模型能力强等原因导致的,可以适当降低模型复杂度,加大正则化系数,引入先验,扩增数据集,集成模型等
习题2-10 验证公式2.66
习题2-11 分别用一元、二元和三元特征的词袋模型表示文本“我打了张三”和“张三打了我”,并分析不同模型的优缺点。
对于 N 元特征(N-Gram):
- 当 N 为 1 时,只能表示单独的单词,而不能表示词序信息,句子含有的单词相同,向量就相同
- 当 N 很大时,可能出现一个特征单元表示一个句子的情况,会失去文本的元信息
- 因此,N 应当根据实际问题设定合适的值
习题2-12 对于一个三分类问题,数据集的真实标签和模型的预测标签如下: 分别计算模型的精确率、召回率、F1 值以及它们的宏平均和微平均
编程练习
参考:【邱希鹏】nndl-chap2-linear_regression
exercise-linear_regression.ipynb
linear_regression-tf2.0.ipynb