《神经网络与深度学习》 第二章 机器学习概述
机器学习:让计算机从数据中进行自动学习,得到某种知识(或规律)。
也称为模式识别 ( Pattern Recognition,PR ),但模式识别更偏向于具体的应用任务,比如光学字符识别、语音识别、人脸识别等。
2.1 基本概念
- 特征 ( feature )
- 标签 ( label ) :标签可以是连续值,也可以是离散值
- 样本 ( sample )
- 数据集 ( data set )
- 训练集 ( training set )
- 测试集 ( test set )
- 特征向量 ( feature vector ) :表示所有特征构成的向量
给定训练集 𝒟,希望让计算机从一个函数集合 ℱ = { 𝑓1(𝒙), 𝑓2(𝒙), ⋯ } 中自动寻找一个“最优”的函数 𝑓∗(𝒙) 来近似每个样本的特征向量 𝒙 和标签 𝑦 之间的真实映射关系,通过函数 𝑓∗(𝒙) 来预测其标签的值或标签的条件概率。学习就是指寻找“最优”函数 𝑓∗(𝒙) 的过程。
预测的准确率:
其中 𝐼(⋅) 为指示函数,|𝒟′| 为测试集大小。
2.2 机器学习的三个基本要素
即,模型、学习准则、优化算法。
2.2.1 模型
模型是假设空间 ( Hypothesis Space ) ℱ 的元素,假设空间是根据经验来假设的一个函数集合 ℱ ,通常为一个参数化的函数族。
根据假设空间的线性和非线性,模型分为线性模型和非线性模型。
-
线性模型: 𝑓(𝒙; 𝜃) = 𝒘T𝒙 + 𝑏,参数 𝜃 包含了权重向量 𝒘 和偏置 𝑏 。
-
非线性模型: 𝑓(𝒙; 𝜃) = 𝒘T𝜙(𝒙) + 𝑏,𝜙(𝒙) = [ 𝜙1(𝒙), 𝜙2(𝒙), ⋯ , 𝜙𝐾(𝒙) ]T 为 𝐾 个非线性基函数组成的向量, 参数 𝜃 包含了权重向量 𝒘 和偏置 𝑏 。特别的,𝜙(𝒙) 本身为可学习的基函数时,𝑓(𝒙; 𝜃) 等价于神经网络模型。
2.2.2 学习准则
模型 𝑓(𝒙; 𝜃) 的好坏可以通过期望风险 ( Expected Risk ) ℛ(𝜃) 来衡量。
其中 𝑝𝑟(𝒙, 𝑦) 为真实的数据分布,ℒ(𝑦, 𝑓(𝒙; 𝜃)) 为损失函数。
2.2.2.1 损失函数
损失函数:量化模型预测和真实标签之间的差异,是一个非负实数函数。
-
0-1损失函数:模型在训练集上的错误率。
优点:能够客观地评价模型的好坏。
缺点:数学性质不是很好,不连续且导数为0,难以优化。 -
平方损失函数:在预测标签 𝑦 为实数值的任务中使用,一般不适用于分类问题。
ℒ(𝑦, 𝑓(𝒙; 𝜃)) = (𝑦 − 𝑓(𝒙; 𝜃))2/2 -
交叉熵损失函数:用于分类问题。用一个 𝐶 维的 one-hot 向量 𝒚 来表示样本标签,标签的真实分布交叉熵 𝒚 和模型预测分布 𝑓(𝒙; 𝜃) 之间的交叉熵为
y𝑐 表示标签向量 y 的第 𝑐 维,𝑓𝑐(𝒙; 𝜃) 表示 𝑓(𝒙; 𝜃) 的输出向量的第 𝑐 维。
又因为 𝒚 为 one-hot 向量,公式也可以写为 ℒ(𝑦, 𝑓(𝒙; 𝜃)) = − log 𝑓𝑦(𝒙; 𝜃)。其中 𝑓𝑦(𝒙; 𝜃) 可以看作真实类别 𝑦 的似然函数,交叉熵损失函数也就是负对数似然函数 ( Negative Log-Likelihood ) 。 -
Hinge 损失函数:对于二分类问题,假设 𝑦 的取值为 {−1, +1}, 𝑓(𝒙; 𝜃) ∈ ℝ,
其中 [𝑥]+ = max(0, 𝑥) 。
2.2.2.2 风险最小化准则
- 经验风险最小化 ( Empirical Risk Minimization,ERM ) 准则:找到一组参数 𝜃∗ 使得经验风险 ( Empirical Risk ) 最小的一个学习准则。
经验风险:模型 𝑓(𝒙; 𝜃) 在训练集上的平均损失。
- 结构风险最小化 ( Structure Risk Minimization,SRM ) 准则:解决经验风险最小化容易出现的过拟合问题,在其基础上再引入参数的正则化来限制模型能力,使其不要过度地最小化经验风险的学习准则。
‖𝜃‖是 ℓ2 范数的正则化项,用来减少参数空间,避免过拟合;𝜆 用来控制正则化的强度。
从贝叶斯学习的角度,正则化引入了参数的先验分布,使其不完全依赖训练数据。
2.2.3 优化算法
机器学习的训练过程其实就是最优化问题的求解过程,优化又可以分为参数优化和超参数优化。
参数优化是通过优化算法学习模型 𝑓(𝒙; 𝜃) 中的模型参数 𝜃 。
超参数 ( Hyper-Parameter ) 是用来定义模型结构或优化策略的这类参数。超参数的选取一般都是组合优化问题,很难通过优化算法来自动学习。包括聚类算法中的类别个数、梯度下降法中的步长、正则化项的系数、神经网络的层数、支持向量机中的核函数等。
-
梯度下降法:机器学习中最简单、常用的优化算法。首先初始化参数 𝜃0 ,然后按迭代公式计算训练集 𝒟 上风险函数的最小值。
迭代公式:
𝜃𝑡 为第 𝑡 次迭代时的参数值,𝛼 为搜索步长(学习率)。 -
提前停止:在每次迭代时,把新得到的模型 𝑓(𝒙; 𝜃) 在验证集上进行测试,并计算错误率,如果在验证集上的错误率不再下降,就停止迭代,防止过拟合。
-
随机梯度下降法:在每次迭代时只采集一个样本,计算这个样本损失函数的梯度并更新参数,当经过足够次数的迭代时,随机梯度下降也可以收敛到局部最优解。
随机梯度下降相当于在批量梯度下降的梯度上引入了随机噪声。在非凸优化问题中,随机梯度下降更容易逃离局部最优点。
训练过程:
-
小批量梯度下降法:批量梯度下降和随机梯度下降的折中。每次迭代时,随机选取一小部分训练样本来计算梯度并更新参数。第 𝑡 次迭代时,随机选取一个包含 𝐾 个样本的子集 𝒮𝑡 ,计算这个子集上每个样本损失函数的梯度并进行平均,然后再进行参数更新。
𝐾 一般在 1 ∼ 100 之间,通常设置为 2 的幂 2𝑛。
优点:收敛快、计算开销小,机器学习中的主要优化算法。
2.3 机器学习的简单示例——线性回归
线性回归:机器学习和统计学中最基础和最广泛应用的模型,是一种对自变量和因变量之间关系进行建模的回归分析。
简单回归:自变量数量为 1
多元回归:自变量数量大于 1
假设空间是一组参数化的线性函数 𝑓(𝒙; 𝒘, 𝑏) = 𝒘T𝒙 + 𝑏 ,其中权重向量 𝒘 ∈ ℝ𝐷 和偏置 𝑏 ∈ ℝ 都是可学习的参数。
增广权重向量 𝒘̂ ,增广特征向量 𝒙̂ :
则,直接用 𝒘 和 𝒙 分别表示增广权重向量和增广特征向量,线性回归的模型简写为 𝑓(𝒙; 𝒘) = 𝒘T𝒙 。
2.3.1 参数学习
四种不同的参数估计方法:经验风险最小化、结构风险最小化、最大似然估计、最大后验估计。
-
经验风险最小化(最小二乘法)
根据经验风险最小化准则,使用平方损失函数:
是关于 𝒘 的凸函数。令其对 𝒘 的偏导数 −𝑿(𝒚 − 𝑿T𝒘) = 0,得最优的参数 𝒘∗ :
𝑿𝑿T ∈ ℝ(𝐷+1)×(𝐷+1) 必须可逆。
不可逆的两种方法:
a. 先使用主成分分析等方法来预处理数据,消除不同特征之间的相关性,然后再使用最小二乘法估计参数。
b. 最小均方算法:使用梯度下降法来估计参数。先初始化 𝒘 = 0, 通过 𝒘 ← 𝒘 + 𝛼𝑿(𝒚 − 𝑿T𝒘) 进行迭代。 -
结构风险最小化
结构风险最小化准则下的最小二乘法估计——岭回归 ( Ridge Regression ) 给 𝑿𝑿T 的对角线元素都加上一个常数 𝜆 使得 (𝑿𝑿T + 𝜆𝐼) 满秩, 即其行列式不为 0 。
其中𝜆 > 0为正则化系数。
最优的参数 𝒘∗ = (𝑿𝑿T + 𝜆𝐼)−1𝑿𝒚,其中 𝜆 > 0 为预先设置的超参数,𝐼 为单位矩阵。 -
最大似然估计
似然 𝑝(𝑥|𝑤) 是描述已知随机变量 𝑥 时不同的参数 𝑤 对其分布的影响。
假设标签 𝑦 为一个由函数 𝑓(𝒙; 𝒘) = 𝒘T𝒙 加上一个随机噪声 𝜖 决定的随机变量 𝑦 = 𝒘T𝒙 + 𝜖,𝜖 服从均值为 0、 方差为 𝜎2 的高斯分布,则 𝑦 服从均值为 𝒘T𝒙、 方差为 𝜎2的高斯分布:
参数 𝒘 在训练集 𝒟 上的似然函数:
似然函数 𝑝(𝒚|𝑿; 𝒘, 𝜎) 最大等价于对数似然函数 log 𝑝(𝒚|𝑿; 𝒘, 𝜎) 最大,令 log 𝑝(𝒚|𝑿; 𝒘, 𝜎) 关于 𝒘 的偏导数等于 0:𝒘𝑀𝐿 = (𝑿𝑿T)−1𝑿𝒚 。(和最小二乘法的解相同)
缺点:当训练数据比较少时会发生过拟合。 -
最大后验估计
最大后验估计 ( Maximum A Posteriori Estimation,MAP ) 是指最优参数为后验分布
𝑝(𝒘|𝑿, 𝒚; 𝜈, 𝜎) 中概率密度最高的参数。
贝叶斯估计:根据贝叶斯公式,参数 𝒘 的后验分布 ( Posterior Distribution ) 为
𝑝(𝒚|𝑿, 𝒘; 𝜎) 为 𝒘 的似然函数,𝑝(𝒘; 𝜈) = 𝒩(𝒘; 0, 𝜈2𝐼) 为 𝒘 的先验(各向同性的高斯分布)。
有,
最大后验概率等价于平方损失的结构风险最小化,其中正则化系数 𝜆 = 𝜎2/𝜈2 。
当 𝜈 → ∞ 时,先验分布 𝑝(𝒘; 𝜈) 退化为均匀分布,称为无信息先验 ( Non-Informative Prior ) ,最大后验估计退化为最大似然估计。
2.4 偏差-方差分解
假设样本的真实分布为 𝑝𝑟(𝒙, 𝑦),采用平方损失函数,模型 𝑓(𝒙) 的期望错误为
分解此式:
损失 𝜖 通常是由于样本分布以及噪声引起的,无法通过优化模型来减少。第一项是当前模型和最优模型之间的差距,是机器学习算法可以优化的真实目标。
令 𝑓𝒟(𝒙) 表示在训练集 𝒟 上学习到的模型,一个机器学习算法(包括模型以及优化算法)的能力可以用不同训练集上的模型的平均性能来评价。
对于单个样本 𝒙,不同训练集 𝒟 得到模型 𝑓𝒟(𝒙) 和最优模型 𝑓∗(𝒙) 的期望差距为
第一项为偏差 ( Bias ) ,指一个模型在不同训练集上的平均性能和最优模型的差异, 可以用来衡量一个模型的拟合能力。第二项是方差 ( Variance ) ,指一个模型在不同训练集上的差异,可以用来衡量一个模型是否容易过拟合。
期望错误可以进一步写为
最小化期望错误等价于最小化偏差和方差之和。
方差一般会随着训练样本的增加而减少,随着模型复杂度的增加、模型的拟合能力变强、偏差减少而增大。一个好的正则化系数 𝜆 需要在偏差和方差之间取得比较好的平衡。
改进
a. 拟合能力不够,偏差比较高:增加数据特征、 提高模型复杂度、减小正则化系数等操作。
b. 过拟合,方差比较高:降低模型复杂度、加大正则化系数、引入先验等方法。
2.5 机器学习算法的类型
-
监督学习
根据标签类型的不同,监督学习可以分为回归问题、分类问题和结构化学习。- 回归 ( Regression ): 标签 𝑦 是连续值(实数或连续整数),𝑓(𝒙; 𝜃) 的输出也是连续值。
- 分类 ( Classification ):标签 𝑦 是离散的类别(符号)。学习到的模型也称为分类器 ( Classifier ) ,分类可分为二分类和多分类问题。
- 结构化学习 ( Structured Learning ):标签 𝒚 通常是结构化的对象,比如序列、树或图等。
-
无监督学习:从不包含目标标签的训练样本中自动学习到一些有价值的信息。
典型的无监督学习问题有聚类、密度估计、特征学习、降维等。 -
强化学习:通过交互来学习的机器学习算法。智能体根据环境的状态做出一个动作,并得到即时或延时的奖励,智能体在和环境的交互中不断学习并调整策略,以取得最大化的期望总回报。
-
弱监督学习 ( Weakly Supervised Learning )
半监督学习 ( Semi-Supervised Learning,SSL )
2.6 数据的特征表示
原始特征可能存在不足,为了提高机器学习算法的能力,需要抽取有效、稳定的特征,特征学习是让机器自动地学习出有效的特征,在一定程度上也可以减少模型复杂性、缩短训练时间、提高模型泛化能力、避免过拟合等。
2.6.1 传统的特征学习
人为地设计一些准则, 然后根据这些准则来选取有效的特征。
-
特征选择
假设原始特征数为 𝐷,则共有 2𝐷 个候选子集,常用的方法是采用贪心的策略进行子集搜索。
由空集合开始,每一轮添加该轮最优的特征,称为前向搜索 ( Forward Search ) ;或者从原始特征集合开始,每次删除最无用的特征,称为反向搜索 ( Backward Search ) 。- 过滤式方法 ( Filter Method ):不依赖具体机器学习模型的特征选择方法。每次增加最有信息量的特征,或删除最没有信息量的特征。
特征的信息量可以通过信息增益 ( Information Gain ) 来衡量。信息增益指引入特征后条件分布 𝑝𝜃(𝑦|𝒙) 的熵的减少程度。 - 包裹式方法 ( Wrapper Method ):使用后续机器学习模型的准确率作为评价来选择一个特征子集。每次增加对后续机器学习模型最有用的特征,或删除对后续机器学习任务最无用的特征。
ℓ1 正则化:ℓ1 正则化会导致稀疏特征,间接实现了特征选择。
- 过滤式方法 ( Filter Method ):不依赖具体机器学习模型的特征选择方法。每次增加最有信息量的特征,或删除最没有信息量的特征。
-
特征抽取:构造一个新的特征空间, 并将原始特征投影在新的空间中得到新的表示。
监督的特征学习的目标是抽取对一个特定的预测任务最有用的特征,比如线性判别分析 ( Linear Discriminant Analysis,LDA ) 。
无监督的特征学习和具体任务无关,目标通常是减少冗余信息和噪声,如主成分分析 ( Principal Component Analysis,PCA ) 和自编码器 ( Auto-Encoder,AE ) 。
特征选择和特征抽取也称为维数约减或降维,优点是可以用较少的特征来表示原始特征中的大部分相关信息,去掉噪声信息,并进而提高计算效率和减小维度灾难。
2.6.2 深度学习方法
深度学习:将特征的表示学习和机器学习的预测学习有机地统一到一个模型中,建立一个端到端的学习算法,有效地避免它们之间准则的不一致性。
难点:贡献度分配问题
有效的模型是神经网络,将最后的输出层作为预测学习,其他层作为表示学习。
2.7 评价指标
- 准确率 ( Accuracy )
- 错误率 ( Error Rate )
ℰ = 1 − 𝒜
对于某个类别 𝑐 来说, 模型在测试集上有 TP、FN、FP、TN 四种结果。
- 真正例 ( True Positive ):真实类别为 𝑐 并且模型预测为 𝑐 。
- 假负例 ( False Negative )
- 假正例 ( False Positive )
- 真负例 ( True Negative )
-
精确率 ( Precision )
-
召回率 ( Recall )
-
F 值 ( F Measure ):精确率和召回率的调和平均。
𝛽 用于平衡精确率和召回率的重要性,一般取值为1。𝛽 = 1时的 F 值称为 F1 值。 -
宏平均 ( Macro Average ): 每一类的性能指标的算术平均值。
-
微平均 ( Micro Average ): 每一个样本的性能指标的算术平均值。
当不同类别的样本数量不均衡时,使用宏平均会比微平均更合理、更关注小类别上的评价指标。
- 交叉验证 ( Cross-Validation ):把原始数据集平均分为 𝐾 组不重复的子集,每次选 𝐾 − 1 组子集作为训练集,剩下的一组子集作为验证集。可以有效避免划分训练集和测试集时的随机性对评价结果造成的影响。
2.8 理论和定理
-
PAC 学习理论 可能近似正确 ( Probably Approximately Correct,PAC ) 学习理论
PAC 可以帮助分析一个机器学习方法在什么条件下可以学习到一个近似正确的分类器。一个 PAC 可学习 ( PAC-Learnable ) 的算法是指,该学习算法能够在多项式时间内从合理数量的训练数据中学习到一个近似正确的 𝑓(𝒙) 。
𝜖 , 𝛿 是和样本数量 𝑁 以及假设空间 ℱ 相关的变量。
如果固定 𝜖 , 𝛿,可以反过来计算出需要的样本数量:
模型越复杂,即假设空间 ℱ 越大,模型的泛化能力越差。所以要达到相同的泛化能力,越复杂的模型需要的样本数量越多。为了提高模型的泛化能力,通常需要正则化来限制模型复杂度。 -
没有免费午餐定理 ( No Free Lunch Theorem,NFL )
对于基于迭代的最优化算法,不存在某种算法对所有问题(有限的搜索空间内)都有效。如果一个算法对某些问题有效,那么它一定在另外一些问题上比纯随机搜索算法更差。 -
奥卡姆剃刀 ( Occam’s Razor ) 原理
如果有两个性能相近的模型,应该选择更简单的。
最小描述长度 ( Minimum Description Length,MDL ) 原则:对一个数据集 𝒟,最好的模型 𝑓 ∈ ℱ 会使得数据集的压缩效果最好,即编码长度最小。 -
丑小鸭定理 ( Ugly Duckling Theorem )
“丑小鸭与白天鹅之间的区别和两只白天鹅之间的区别一样大”。 -
归纳偏置 ( Inductive Bias )
在贝叶斯学习中也经常称为先验,对学习的问题做一些假设。
比如在最近邻分类器中会假设在特征空间中,一个小的局部区域中的大部分样本同属一类。