- 参考:李航《统计学习方法(第二版)1.3 & 1.7
文章目录
- 统计学习方法,包括监督学习、非监督学习、强化学习等各类方法,都由
模型
、算法
、策略
这三个要素组成,即
方 法 = 模 型 + 算 法 + 策 略 方法 = 模型+算法+策略 方法=模型+算法+策略 - 任一个统计学习方法,其学习过程 / 训练过程都与这三个要素密切相关,有了它们就能进行训练,构造从输入空间到输出空间的映射,可以说构建一种统计学习方法就是确定三要素 ,其中
- 模型是训练的对象,确定模型就是确定假设空间
- 策略是训练的方法,确定策略就是确定模型选择(从假设空间选出最优模型)的方法
- 算法是训练的实现手段,确定算法就是确定模型选择的操作流程
1. 模型(训练的对象)
-
统计学习中,
模型
表示从输入空间到输出空间的映射,是统计学习的训练对象。统计学习的训练过程,就是从一组映射(模型)中搜索并选出一个最优的,这组映射组成的集合称为假设空间
例如:假设决策函数是关于输入变量的线性函数,那么模型的假设空间就是所有这些线性函数的集合
-
模型通常有两种一般形式
条件概率分布
: P ( y ∣ x ) P(y|x) P(y∣x):具有此形式的模型统称为生成模型/概率模型
,学到此类模型的方法统称为生成方法
决策函数
: y = f ( x ) y = f(x) y=f(x),具有此形式的模型统称为判别模型/非概率模型/确定模型
,学到此类模型的方法统称为判别方法
-
注意到条件概率分布 P ( y ∣ x ) P(y|x) P(y∣x) 和决策函数 y = f ( x ) y=f(x) y=f(x) 是可以相互转化的
P ( y ∣ x ) ⟶ 最 大 化 y = f ( x ) y = f ( x ) ⟶ 归 一 化 P ( y ∣ x ) \space \\ P(y|x) \stackrel{最大化}{\longrightarrow} y=f(x) \\\space\\ y=f(x) \stackrel{归一化}{\longrightarrow} P(y|x) P(y∣x)⟶最大化y=f(x) y=f(x)⟶归一化P(y∣x) 因此,区分概率模型和非概率模型的关键不在于输入到输出的映射形式,而是在于模型的内在结构,具体地说,概率模型可以学到输入和输出间的联合概率分布,而非概率模型则不能
1.1 生成模型 & 生成方法
- 生成方法由数据学习联合概率分布
P
(
x
,
y
)
P(x,y)
P(x,y) 然后求出条件概率分布
P
(
Y
∣
X
)
=
P
(
X
,
Y
)
P
(
X
)
P(Y|X)=\frac{P(X,Y)}{P(X)}
P(Y∣X)=P(X)P(X,Y)(即生成模型) 作为预测模型,假设空间可以表示为
F = { P ∣ P θ ( Y ∣ X ) , θ ∈ R n } \mathcal{F} = \{P|P_\theta(Y|X),\theta \in R^n\} F={P∣Pθ(Y∣X),θ∈Rn} - 这类方法之所以称为 “生成方法”,是因为模型表示了给定输入
X
X
X 产生输出
Y
Y
Y 的生成关系,其特点为:
- 可以还原出联合概率分布 P ( X , Y ) P(X,Y) P(X,Y)
- 收敛速度更快,即当样本容量增加时,学到的模型可以更快地收敛于真实模型
- 当存在隐变量时,仍可以用生成方法学习,而判别方法就不能用
- 典型的生成方法包括:朴素贝叶斯和各类概率图模型(贝叶斯网络、马尔可夫随机场、条件随机场)等
1.2 判别模型 & 判别方法
- 判别方法利用数据直接学习决策函数
f
(
X
)
f(X)
f(X) 或条件概率分布
P
(
Y
∣
X
)
P(Y|X)
P(Y∣X)(即判别模型)作为预测模型,假设空间可以表示为
F = { f ∣ Y = f θ ( X ) , θ ∈ R n } \mathcal{F} = \{f|Y = f_\theta(X),\theta\in R^n\} F={f∣Y=fθ(X),θ∈Rn} - 判别方法关心的是对给定的输入数据
X
X
X,应该预测什么样的输出
Y
Y
Y,其特点为:
- 无法还原出联合概率分布 P ( X , Y ) P(X,Y) P(X,Y)
- 由于直接面向预测,所以学习准确率往往更高
- 由于直接学习 f ( X ) f(X) f(X) 或 P ( Y ∣ X ) P(Y|X) P(Y∣X),可以进行各种程度上的抽象、定义并使用特征,因此可以简化学习问题
- 典型的判别方法包括:k近邻、感知机、决策树、逻辑回归、最大熵模型、支持向量机等
2. 策略(训练的方法)
- 先补充一个
模型选择 model selection
的概念- 现实任务中,往往有多种学习方法可供选择,对于同一个方法,使用不同的参数配置,也可以产生不同的模型。选择哪个模型(算法)、使用哪种参数配置,就是机器学习中的
模型选择
问题,其核心是做两件事
- 确定
模型类型
(决策树、线性回归、神经网络…)· - 确定模型参数,包括
模型参数
和超参数
- 模型选择的关键是设计对比各个方法所得模型及其模型参数的规范流程,并用它从假设空间中选出泛化能力最强的模型
- 两类主要方法
- 模型类型、超参数未确定时:必须引入测试集和验证集,从最小化
测试误差
的角度做模型选择,通过网格搜索等方法确定模型的类型和超参数。这可以理解为 找出复杂度适当的模型,使其测试误差最小化,从而间接地保证其具有最佳泛化性能 - 模型类型、超参数已确定时:除了上述方法外,还可以单纯利用训练集,从最小化
经验风险/训练误差
的角度做模型选择,确定模型参数
- 现实任务中,往往有多种学习方法可供选择,对于同一个方法,使用不同的参数配置,也可以产生不同的模型。选择哪个模型(算法)、使用哪种参数配置,就是机器学习中的
- 当讨论统计学习方法三要素时,
策略
指在假设空间中选择最优模型时依据的准则,通常指第二类单纯利用训练集做模型选择,优化模型参数的方法,主要有下面两个- 经验风险最小化(ERM)
- 结构风险最小化(SRM)
- 关于模型选择的更多内容,详见 机器学习基础(4)—— 模型选择与评估
2.1 损失函数和风险函数
- 假设我们要优化一个判别模型,即从
F
\mathcal{F}
F 中选出最优判别函数
f
(
X
)
f(X)
f(X)。优化过程中,我们会依次选出一系列模型,使得预测值
f
(
X
)
f(X)
f(X) 和真实值
Y
Y
Y 的偏差程度逐渐下降,这时就要使用
损失函数loss function / 代价函数cost function
来度量预测错误的程度。损失函数通常是关于模型预测 f ( X ) f(X) f(X) 和真实值 Y Y Y 的非负函数 L ( Y , f ( X ) ) L(Y,f(X)) L(Y,f(X)) - 常用的损失函数有以下几种
0-1 损失(0-1 loss function)
L ( Y , f ( X ) ) = { 1 , Y ≠ f ( X ) 0 , Y = f ( X ) L(Y,f(X)) = \left\{ \begin{aligned} &1 &, Y\neq f(X) \\ &0 &, Y = f(X) \end{aligned} \right. L(Y,f(X))={10,Y=f(X),Y=f(X)平方损失函数(quadratic loss function)
L ( Y , f ( X ) ) = ( Y − f ( X ) ) 2 L(Y,f(X)) = (Y-f(X))^2 L(Y,f(X))=(Y−f(X))2绝对损失函数(absolute loss function)
L ( Y , f ( X ) ) = ∣ Y − f ( X ) ∣ L(Y,f(X)) = |Y - f(X)| L(Y,f(X))=∣Y−f(X)∣对数损失函数(logarithmic loss function
)或对数似然损失函数(log-likelihood loss function)
L ( Y , f ( X ) ) = − log P ( Y ∣ X ) L(Y,f(X)) = -\text{log} P(Y|X) L(Y,f(X))=−logP(Y∣X)
期望风险 expected risk/ 期望损失 expected loss
:模型的输入 X X X 和输出 Y Y Y 都是随机变量,模型关于联合分布的期望损失称为期望风险,可以如下计算
R e x p ( f ) = E [ L ( Y , f ( X ) ) ] = ∫ X × Y L ( y , f ( x ) ) P ( x , y ) d x d y R_{exp}(f) = \mathbb{E}[L(Y,f(X))] = \int_{\mathcal{X\times Y}} L(y,f(x))P(x,y) dxdy Rexp(f)=E[L(Y,f(X))]=∫X×YL(y,f(x))P(x,y)dxdy经验风险 empirical risk/ 经验损失 empirical loss
:给定训练数据集,模型关于训练样本集的平均损失称为经验风险。给定训练集 T = { ( x 1 , y 1 ) , ( x 2 , y 2 ) , . . . , ( x N , y N ) } T = \{(x_1,y_1),(x_2,y_2),...,(x_N,y_N)\} T={(x1,y1),(x2,y2),...,(xN,yN)},经验风险为
R e m p ( f ) = 1 N ∑ i = 1 N L ( y i , f ( x i ) ) R_{emp}(f) = \frac{1}{N}\sum_{i=1}^NL(y_i,f(x_i)) Remp(f)=N1i=1∑NL(yi,f(xi))- 期望风险越小,模型就越好,学习的目标就是选出期望风险最小的模型:
-
对于生成模型而言:可以先估计联合分布 P ( X , Y ) P(X,Y) P(X,Y),然后直接最小化期望风险。朴素贝叶斯原理中的后验概率最大化就是一个例子,当模型是条件概率分布、损失函数是0-1损失函数时,期望风险最小化就等价于后验概率最大化
-
对于判别模型而言:联合分布 P ( X , Y ) P(X,Y) P(X,Y) 未知, R e x p R_{exp} Rexp 无法直接计算(如果能算,就能直接求出 P ( Y ∣ X ) = P ( X , Y ) P ( X ) P(Y|X)=\frac{P(X,Y)}{P(X)} P(Y∣X)=P(X)P(X,Y),也就不需要学习了),但根据大数定律,当样本容量 N → ∞ N\to \infin N→∞ 时,有 R e m p ( f ) → R e x p ( f ) R_{emp}(f) \to R_{exp}(f) Remp(f)→Rexp(f),所以一个自然的想法就是用经验风险估计期望风险
-
2.2 经验风险最小化和结构风险最小化
- 现实训练时,由于训练样本数量有限,直接用经验风险估计期望风险常常效果不佳,要对经验风险进行一定的矫正,这就关系到监督学习的两个基本策略:
经验风险最小化
和结构风险最小化
2.2.1 经验风险最小化(empirical risk minimization, ERM)
- 这种方法完全依赖于大数定律的有效性,认为经验风险最小化得到的模型就是最优模型。于是求最优模型就是求解以下经验风险最优化问题
min f ∈ F 1 N ∑ i = 1 L ( y i , f ( x i ) ) (1) \min_{f\in\mathcal{F}} \frac{1}{N}\sum_{i=1}^L(y_i,f(x_i)) \tag{1} f∈FminN1i=1∑L(yi,f(xi))(1) - 当样本容量足够大时,这类方法能保证较好的学习效果,在现实中被广泛使用。最大似然估计就是一个例子,当模型是条件概率分布、损失函数是对数损失函数时,经验风险最小化就等价于最大似然估计
- 但当样本容量较小时,这类方法容易出现过拟合(over-fitting)现象
2.2.2 结构风险最小化(structural risk minimization, SRM)
- 结构风险最小化是为了防止过拟合而提出的策略,等价于
正则化regularization
结构风险
在经验风险的基础上加上表示模型复杂度的正则化项regularizer / 罚项penalty term
,定义如下
R s r m ( f ) = 1 N ∑ i = 1 N L ( y i , f ( x i ) ) + λ J ( f ) R_{srm}(f) = \frac{1}{N}\sum_{i=1}^N L(y_i,f(x_i)) +\lambda J(f) Rsrm(f)=N1i=1∑NL(yi,f(xi))+λJ(f) 其中 J ( f ) J(f) J(f) 为模型的复杂度,是定义在假设空间 F \mathcal{F} F 上的泛函(从函数到实数的映射),模型 f f f 越复杂, J ( f ) J(f) J(f) 就越大,对模型的惩罚程度就越大; λ ≥ 0 \lambda\geq 0 λ≥0 是惩罚系数,用于权衡经验风险和模型复杂度。结构风险最小需要经验风险和模型复杂度同时小,这时要求解以下最优化问题
min f ∈ F 1 N ∑ i = 1 L ( y i , f ( x i ) ) + λ J ( f ) (2) \min_{f\in\mathcal{F}} \frac{1}{N}\sum_{i=1}^L(y_i,f(x_i))+\lambda J(f) \tag{2} f∈FminN1i=1∑L(yi,f(xi))+λJ(f)(2)- 当样本容量较小时,结构风险最小化往往比经验风险最小化效果好,贝叶斯估计中的最大后验估计(MAP)就是一个例子,当模型是条件概率分布、损失函数是对数损失函数,模型复杂度由模型先验概率表示时,结构风险最小化就等价于最大后验估计
3. 算法(训练的实现手段)
算法
指学习模型的具体计算方法,是实现策略的手段- 2.2 节中,我们已经把策略表示为 (公式1) 和 (公式2) 两个最优化问题,因此算法也就是解这两个最优化问题的具体计算方法
- 当优化问题有解析解时,可以直接计算,通常比较简单(比如用最小二乘法解线性回归问题)
- 大部分情况下,解析解不存在或难以计算,这时只能用数值计算方法求解。算法研究的核心就是要保证计算结果接近全局最优解,并使求解过程尽量高效
- 统计学习可以利用已有的优化算法,有时也需要开发自身专用的优化算法