1-统计学习及监督学习概论
📜 统计学习及监督学习概论
💡 思维导图
1. 统计学习
① 概述
统计学习 (statistical learning) 是关于计算机基于数据构建概率统计模型并运用模型对数据进行预测与分析的一门学科。统计学习也称为统计机器学习 (statistical machine learning)
🚩 赫尔伯特.西蒙(HerbertA. Simon)曾对" 学习 "给出以下定义:如果一个系统能够通过执行某个过程改进它的性能,这就是学习。
按照这个观点,统计学习就是计算机系统通过运用数据及统计方法提高系统性能的机器学习。现在,当人们提及机器学习时,往往是指统计机器学习。
② 研究对象
统计学习研究的对象是数据。数据分为连续变量和离散变量。
统计学习的前提是假设同类数据具有一定的统计规律性。
③ 目的
统计学习用于对数据的预测与分析,特别是对未知新数据的预测与分析
④ 方法
统计学习方法可以概括如下:
- 从给定的、有限的、用于学习的训练数据 (training data) 集合出发,假设数据是独立同分布产生的;
- 并且假设要学习的模型属于某个函数的集合,这个函数的集合就称为假设空间 Chypothesis space;
- 应用某个评价准则 evaluation criterion ,从假设空间中选取 1 个最优模型,使它对己知的训练数据及未知的测试数据 test data 在给定的评价准则下有最优的预测
⑤ 步骤
实现统计学习方法的步骤如下:
- 得到一个有限的训练数据集合
- 确定包含所有可能的模型的假设空间,即学习模型的集合
- 确定模型选择的准则,即学习的策略
- 实现求解最优模型的算法,即学习的算法
- 通过学习方法选择最优模型
- 利用学习的最优模型对新数据进行预测或分析
2. 分类
① 基本分类
Ⅰ 监督学习 Supervised Learning
⑴ 定义
✅ 监督学习是指从已标注的数据集中(带有标签的数据集)学习预测模型。标注数据(数据的标签)表示输入和输出的对应关系,预测模型对给定的输入产生相应的输出。
💬 比如:对于肿瘤预测问题(分类问题),我们已有的数据中已经清楚的知道了该病人的肿瘤是恶性还是良性的(标签):
监督学习的本质是学习输入到输出的映射规律。
⑵ 输入空间、特征空间和输出空间
输入空间 input space:输入的所有可能集合
输出空间 output space:输出的所有可能集合
输入于输出空间可以是同一个空间,也可以是不同的空间(比如可以利用主成分分析 PCA 对输入空间进行降维)
实例 instance:每个具体的输入都是一个实例,一般用特征向量(通常用列向量表示)表示,比如:
输入实例 x 的特征向量记作
$x^{(i)}$ 表示 x 的 第 i 个特征,$x_i$ 表示第 i 个实例(输入变量),即 ,如下图所示(房价预测问题:回归问题):👇
监督学习从训练数据集中学习模型,对测试数据进行预测。训练数据 / 测试数据由输入与输出对组成,训练集通常表示为:
输入与输出对又称为样本或样本点
(3) 联合概率分布
联合概率:表示包含多个条件并且所有条件都同时成立的概率,记作 $P(X = a, Y = b)$ 或 $P(a, b)$
联合分布概率密度函数:$P(X = a|Y = b) = \frac{P(X=a,Y=b)}{P(Y = b)}$,或记为:,对上述公式的解释就是,在满足 $Y=b$ 的情况下 $X=a$ 的概率。
监督学习假设输入变量 X 与输出变量 Y 之间遵循联合分布概率密度函数 $P(X,Y)$
(4) 假设空间 hypothesis space
监督学习的目的在于学习一个由输入到输出的映射,这一映射由模型来表示。通俗来说,学习的目的就在于找到一个最好的模型。
模型属于输入空间到输出空间的映射的集合,这个集合就是假设空间 hypothesis space
监督学习的模型可以是概率模型或非概率模型,由条件概率分布 $P(Y|X)$ 或决策函数(decisionfunction )$ Y = f(X)$ 表示
(5) 问题的形式化
监督学习分为学习和预测两个过程,由学习系统与预测系统完成:
👉 在学习过程中,学习系统利用给定的训练数据集,通过学习/训练得到一个模型,表示为条件概率分布 (输入一组特征向量 X,输出一组概率) 或决策函数 。条件概率分布和决策函数描述输入与输出之间的映射关系。
👉 在预测过程中,预测系统对于给定的测试样本集中的输入 $x_{N+1}$,由模型 或 给出相应的输出 $y_{N+1}$
Ⅱ 无监督学习 Unsupervised Learning
(1) 定义
✅ 无监督学习是指从无标注数据(不带标签的数据集)中学习预测模型。无标注数据是自然得到的数据,预测模型表示数据的类别、转换或概率。
通俗来说,对于无监督学习问题,我们的数据集没有任何标签,或者说都具有相同的标签,我们不知道什么是正确答案。拿到这个数据集,不知道要做什么,也不知道每个数据点究竟是什么,只被告知这里有一个数据集,你能在其中找到某种结构来适配这些数据吗?
无监督学习的本质是学习数据中的统计规律或潜在结构。
(2) 问题的形式化
无监督学习同样拥有学习和预测两个过程,同监督学习类似:
Ⅲ 强化学习 Reinforcement Learning
😳 该部分并未深入学习,尚不完善~
✅ 强化学习是指智能系统在与环境的连续互动中学习最优行为策略。
智能系统与环境的互动如下图所示:
在每一步 t,智能系统从环境中观测到一个状态 state $s_t$ 与一个奖励 reward $r_t$,采取一个动作 action $a_t$。环境根据智能系统选择的动作,决定下一步 t+1 的状态 $s_{t+1}$ 与奖励 $r_{t+1}$
要学习的策略就是给定状态下采取的动作。
🎯 智能系统的目标不是短期奖励的最大化,而是长期累计奖励的最大化。
强化学习过程中,系统不断地试错 trial and error,以达到学习最优策略的目的。
Ⅳ 半监督学习 Semi-Supervised Learning
✅ 半监督学习是指利用标注数据或未标注数据学习预测模型。通常有少量标注数据,大量未标注数据,因为标注数据的构建往往需要人工,成本较高,未标注数据的收集不需太多成本。
半监督学习旨在利用未标注数据中的信息,辅助标注数据,进行监督学习,以较低的成本达到较好的学习效果。
Ⅴ 主动学习 Active Learning
✅ 主动学习是指机器不断主动给出实例让教师进行标注,然后利用标注数据学习预测模型。
通常的监督学习使用给定的标注数据,往往是随机得到的,可以看作是"被动学习"。主动学习的目标是找出对学习最有帮助的实例让教师标注,以较小的标注代价,达到较好的学习效果
② 按模型分类
Ⅰ 概率模型 / 非概率模型 (non) Probabilistic Model
(1) 定义
👉 概率模型就是说学习出的模型对于测试数据集的预测结果是一个概率集,我们需要选择最大的概率对应的标签来作为最后的预测结果。概率模型取条件概率分布形式 $P(y|x)$
👉 非概率模型也称为确定模型,就是学习出的模型对于测试数据集的预测结果是一个确定的值。非概率模型取函数形式 $y = f(x)$
条件概率分布 $P(y|x)$ 和函数 $y = f(x)$ 可以相互转化。即条件概率分布最大化后得到函数,函数归一化后得到条件概率分布。🚨 所以,概率模型和非概率模型的区别不在于输入与输出之间的映射关系,而在于模型的内在结构。
(2) 基本概率公式
概率模型的代表是概率图模型 probabilistic graphical model,概率图模型是联合概率分布由有向图或者无向图表示的概率模型,而联合概率分布可以根据图的结构分解为因子乘积的形式。
无论模型如何复杂,均可以用基本的加法规则和乘法规则(基本概率公式)进行概率推理:
Ⅱ 线性模型 / 非线性模型 (non) Linear Model
✅ 如果函数 $ y = f(x)$ 是线性函数,则称模型是线性模型,否则是非线性模型。
Ⅲ 参数化模型 / 非参数化模型 (non) Parametric Model
👉 参数化模型假设模型参数的维度固定,模型可以由有限维参数完全刻画
👉 非参数化模型假设模型参数的维度不固定或者说无穷大,随着训练数据量的增加而不断增大
③ 按算法分类
Ⅰ 批量学习 Batch Learning
✅ 批量学习一次性接受所有数据,学习模型,之后进行预测
Ⅱ 在线学习 Online Learning
✅ 在线学习是指每次接受 1 个样本,进行预测,之后学习模型,并不断重复该操作。
有些实际应用的场景要求学习必须是在线的。比如,数据依次达到无法存储,系统需要及时做出处理,数据规模很大,不可能一次性处理所有数据,数据的模式随时间动态变化,需要算法快速适应新的模式(不满足独立同分布假设)。
在线学习可以是监督学习,也可以是无监督学习,强化学习本身就拥有在线学习的特点。以下只考虑在线的监督学习。
学习和预测在一个系统,每次接收一个输入 $x_t$,用已有模型给出预测 ,之后得到相应的反馈 ,即该输入对应的输出 $y_t$,系统用损失函数计算两者的差异,更新模型;并不断重复上述操作:
在线学习通常比批量学习更难,很难学到预测准确率更高的模型,因为每次模型更新中,可利用的数据有限
④ 按技巧分类
Ⅰ 贝叶斯学习 Bayesian Learning
✅ 贝叶斯学习即利用贝叶斯定理,计算在给定数据条件下模型的条件概率,即后验概率,并应用这个原理进行模型的估计,以及对数据的预测。贝叶斯学习也使用基本概率公式。
假设随机变量 D 表示数据,随机变量 θ 表示模型参数。根据贝叶斯定理,可以用如下公式计算后验概率 $P(θ|D)$:
其中,P(D) 是先验概率。
💡 这里解释一下模型参数 θ:比如说我们的决策函数是 $y = a_0 + a_1x + a_2x^2$,那么 $θ = \begin{bmatrix} a_0 \ a_1 \ a_2 \end{bmatrix}$
模型估计时,估计整个后验概率分布 $P(θ|D)$。如果需要给出一个模型,通常取后验概率最大的模型。
预测时,计算数据对后验概率分布的期望值:
Ⅱ 核方法 Kernel Method
✅ 核方法使用核函数表示和学习非线性模型,可以用于监督学习和无监督学习。
核方法可以将基于线性模型的学习扩展到非线性模型,使其应用范围更广泛。
将线性模型扩展到非线性模型直接的做法是,显示的定义从输入空间(低维)到特征空间(高维)的映射,在特征空间中进行向量内积计算。💬 比如,支持向量机 SVM 可以把输入空间的线性不可分问题转换为特征空间的线性可分问题:
👍 而核方法的技巧在于,不显示地定义这个映射,而是直接定义核函数,即映射之后在特征空间的内积。这样可以简化计算,达到同样的效果。下面给出更通俗的解释:
3. 统计学习方法三要素
① 模型
统计学习首先要考虑的问题就是学习什么样的模型。
✅ 模型就是所要学习的条件概率分布或决策函数。模型的假设空间包含所有可能的条件概率分布或决策函数。
假设空间用 表示:
-
假设空间可以定义为决策函数的集合:(非概率模型)
θ 就是模型的参数向量,$R^n$ 称为参数空间 parameter space
-
假设空间可以定义为条件函数的集合:(概率模型)
② 策略
Ⅰ 损失函数 loss function / 代价函数 cost function
监督学习就是在假设空间中选取一个最佳模型作为决策函数,然后利用该决策函数对输入 $X$ 给出相应的输出 $Y$。这个输出的预测值 $f(X)$ 与真实值 $Y$ 之间可能会有一定的差异,✅ 损失函数 loss function / 代价函数 cost function 就是用来度量预测错误的程度。
损失函数是 $f(X)$ 和 $Y$ 的非负实值函数,记作 $L(Y,f(X))$,常用的损失函数有以下 4 种:
-
0-1 损失函数 0-1 loss function
-
平方损失函数 quadratic loss function
-
绝对损失函数 absolute loss function
-
对数损失函数 logarithmic loss function
⭐损失函数值越小,即预测值和真实值的差异越小,模型就越好。
Ⅱ 风险函数 risk function / 期望损失 expected loss
损失函数的期望是:
这是理论上模型 f(X) 关于联合分布 P(X,Y) 的平均意义下的损失,称为风险函数 risk function 或 期望损失 expected loss,记作 $R_{exp}$
🚩 学习的目标就是选择期望风险(期望损失)最小的模型。
Ⅲ 经验风险 empirical risk / 经验损失 empirical loss
给定一个数据集:
模型 f(X) 关系训练数据集的平均损失函数值称为经验风险或经验损失,记作 $R_{emp}$
根据大数定律,当训练样本容量 N 趋于无穷时,经验风险趋向于期望风险。所以一个很自然的想法就是用经验风险估计期望风险。
但是,由于现实中训练样本数量有限,甚至很小,所以用经验风险估计期望风险常常并不理想,要对经验风险进行一定的矫正。这就关系到监督学习的两个基本策略:经验风险最小化和结构风险最小化
Ⅳ 经验风险最小化 ERM / 结构风险最小化 SRM
👉 经验风险最小化(empirical risk minimization, ERM)的策略认为:经验风险最小的模型就是最优的模型。
根据这一策略,按照经验风险最小化求最优模型就是求解最小化问题:
当样本容量足够大时,经验风险最小化能保证有很好的学习效果,在现实中被广泛采用。但是,当样本容量很小时,经验风险最小化学习的效果就未必很好,会产生 过拟合 (over-fitting) 现象
👉 结构风险最小化(structural risk minimization, SRM)就是为了防止过拟合而提出来的策略。结构风险最小化等价于正则化 rugularization。
结构风险在经验风险上加上表示模型复杂度的正则化项 regularizer 或罚项 penalty term。🔴 结构风险的定义是:
其中,$J(f)$ 为模型的复杂度,模型 f 越复杂,复杂度 $J(f)$ 就越大;模型 f 越简单,复杂度 $J(f)$ 就越小。
也就是说,💡 复杂度表示了对复杂模型的惩罚。
$λ ≥ 0$ 是系数,用来权衡经验风险和模型复杂度。
结构风险小需要经验风险与模型复杂度同时小,结构风险小的模型往往对训练数据以及未知测试数据的预测效果较好。
结构风险最小化的策略认为结构风险最小的模型是最优的模型。所以求解最优模型,就是求解最小化问题:
💡 这样,监督学习问题就变成了经验风险或结构风险最小化(最优化)问题,这时经验风险函数或结构风险函数就是最优化的目标函数
③ 算法
✅ 算法是指学习模型的具体计算方法。即用什么样的计算方法求解最优模型。
4. 模型评估与模型选择
① 训练误差 training error 与测试误差 test error
假设学习到的最终模型是 ,训练误差是模型关于训练数据集的平均损失函数值(经验风险):
其中 N 是训练样本容量。
测试误差是模型关于测试数据集的平均损失函数值(经验风险):
其中 $N^ˊ$ 是测试样本容量。
⭐ 显然,测试误差小的方法具有更好的预测能力,通常将学习方法对未知数据的预测能力称为泛化能力。
② 过拟合 overfitting / 欠拟合 underfitting
如果我们有非常多的特征,我们通过学习得到的假设可能能够非常好地适应训练集(损失函数可能几乎为 0),但是无法推广到新的数据,即泛化能力下降。这种现象在机器学习中称为 过拟合 overfitting。与过拟合相对应的是 欠拟合 underfitting。
💬 下图是一个回归问题的例子:
第一个模型是一个线性模型,欠拟合,不能很好地适应我们的训练集;
第三个模型是一个四次方的模型,过于强调拟合原始数据,而丢失了算法的本质:预测新数据。我们可以看出,若给出一个新的值使之预测,它将表现的很差,是过拟合,虽然能非常好地适应我们的训练集但在新输入变量进行预测时可能会效果不好;
🍉 下图是一个直观类比:
🌀 下图描述了训练误差和测试误差与模型的复杂度之间的关系:
在学习的过程种,我们需要进行最优的模型选择,即选择最合适的模型复杂度,防止过拟合和欠拟合,并达到测试误差最小的学习目的。下面介绍两种常用的模型选择方法:正则化和交叉验证 👇
③ 模型选择方法
Ⅰ 正则化 regularization
正则化是结构风险最小化策略的实现,是在经验风险上加个正则化项 regularizer 或罚项 penaty term。正则化项一般是模型复杂度的单调递增函数,模型越复杂,正则化值就越大。
⭐ 正则化一般具有如下形式:
其中,第 1 项是经验风险,第 2 项是正则化项, λ ≥ 0 为调整两者之间关系的系数。
正则化项可以取不同的形式。💬 例如,回归问题中,损失函数是平方损失,正则化项可以是参数向量 $w$ 的 $L_2$ 范数:
正则化项也可以是参数向量 $w$ 的 $L_1$ 范数:
💡 第 1 项的经验风险较小的模型可能较复杂(经验风险较小说明对于训练集的拟合效果较好,即参数越多,模型越复杂),这时第 2 项的模型复杂度会较大。正则化的作用是选择经验风险与模型复杂度同时较小的模型(即该模型能够很好的解释已知数据并且相对简单)。
Ⅱ 交叉验证 cross validation
(1) 简单交叉验证
随机的将已给数据分为两部分,一部分作为训练集,一部分作为测试集(一般使用 70% 作为训练集,30% 作为测试集)
(2) S 折交叉验证 S-fold
- 首先随机的将已给数据切分为 S 个互不相交、大小相同的子集
- 然后利用 S-1 个子集的数据训练模型,利用余下的 1 个子集测试模型
- 将这一过程对可能的 S 种选择重复进行,最后选出 S 次评测种平均测试误差最小的模型
(3) 留一交叉验证 leave-one-out
S 折交叉验证的特殊情形是 S = N(给定数据集的容量),称为 留一交叉验证。往往在数据缺乏的情况下使用。
5. 泛化能力
✅ 泛化能力即学习模型对于未知数据的预测能力
① 泛化误差 generalization error
如果学到的模型是 ,那么用这个模型对未知数据预测的误差即为泛化误差。事实上,✅ 泛化误差就是所学习到的模型的期望风险:
泛化误差越小,该模型就越有效
② 泛化误差上界 generalization error bound
😁 TODO
6. 生成模型和判别模型
👉 生成方法由数据学习联合概率分布 $P(X|Y)$,然后求出条件概率分布 $P(Y|X)$ 作为预测的模型,即生成模型:
这样的方法之所以称为生成方法,是因为模型表示了给定输入 X 产生输出 Y 的生成关系。
👉 判别方法由数据直接学习决策函数 $f(X)$ 或者条件概率分布$ P(Y|X)$ 作为预测的模型,即判别模型。判别方法关心的是对给定的输入 X 应该预测什么样的输出 Y
在监督学习中,生成方法和判别方法各有优缺点,适合于不同条件下的学习问题:
7. 监督学习应用
① 分类问题
Ⅰ 定义
在监督学习中,当输出变量 Y 取有限个离散值时,预测问题便称为分类问题。
监督学习从数据中学习出一个分类模型或分类决策函数,称为 分类器 classifier。当分类的类别为多个时,称为多类分类问题。
分类问题包括学习和分类两个过程:
Ⅱ 评价分类器性能的指标
(1) 分类准确率 accuracy
✅ 评价分类器性能的指标一般是分类准确率,其定义是:对于给定的测试集,分类器正确分类的样本数 / 总样本数。
也就是损失函数是 0-1 损失时测试数据集上的准确率:
(2) 精确率 precision、召回率 recall 和 F1
对于二类分类问题,常用的评价指标是 精确率/查准率 P 和召回率/查全率 R
将算法预测的结果分成四种情况:
- 正确肯定(True Positive, TP):预测为真,实际为真
- 正确否定(True Negative, TN):预测为假,实际为假
- 错误肯定(False Positive, FP):预测为真,实际为假
- 错误否定(False Negative, FN):预测为假,实际为真
👉 查准率 P = TP/(TP+FP):即我们预测这些病人的肿瘤是恶性的,对于这些病人来说,有多大概率是真正患有癌症的?这就是查准率。高查准率表示我们预测这些病人的肿瘤是恶性的,这个预测具有很高的准确性。
👉 查全率 R = TP/(TP+FN):即如果数据集中的所有人的肿瘤都是恶性的,有多少人我们能够正确告诉他们,你需要治疗。显然,查全率越高越好
🍉 查准率和查全率是一对矛盾的度量。一般来说,查准率高时,查全率往往偏低;而查全率高时,查准率往往偏低。💬 例如,若希望将好瓜尽可能多地选出来,则可通过增加选瓜的数量来实现,但这样查准率就会较低;若希望选的瓜中好瓜比例尽可能高,则可只挑选最有把握的瓜,但这样就难免会漏掉不少好瓜,使得查全率较低。通常只有在一些简单任务中才可能使查全率和查准率都很高。
👉 此外,还有 F1值,是查准率和召回率的调和均值,即 , 通常我们选择使得 F1 值最高的阀值。
在一些应用中,对查准率和查全率的重视程度有所不同。例如在商品推荐系统中,为了尽可能少打扰用户,更希望推荐内容确是用户感兴趣的,此时查准率更重要;而在逃犯信息检索系统中,更希望尽可能少漏掉逃犯,此时查全率更重要。F1 度量的一般形式 $F_β$ 能让我们表达出对查准率/查全率的不同偏好:
其中
- β > 0 度量了查全率对查准率的相对重要性;
- β = 1 时退化为标准的 F1;
- β > 1 时查全率有更大的影响;
- β < 1 时查准率有更大的影响。
② 标注问题 tagging
✅ 可以认为标注问题是分类问题的一个推广。标注问题的输入是一个观测序列,输出是一个标记序列或状态序列。
标注问题分为学习和标注两个过程:
举个例子就懂了:
③ 回归问题 regression
✅ 回归问题的学习等价于函数拟合:选择一条函数曲线使其很好的拟合已知数据且很好的预测未知数据。
回归问题分为学习和预测两个过程:
- 回归问题按照输入变量的个数,分为一元回归和多元回归;
- 按照输入变量和输出变量之间关系的类型即模型的类型,分为线性回归和非线性回归
回归学习最常用的损失函数是平方损失函数,在此情况下,回归问题可以用著名的最小二乘法 least squares 求解。
📚 References
- 《统计学习方法 - 第 2 版》
- 《Machine Learning in Action》
- 《机器学习 - 周志华》