统计学习方法——统计学习
统计学习概论(一)
统计学习
统计学习的特点
- 建立在计算机与网络的基础上
- 以数据为研究对象
- 基本假设:同类数据具有一定的统计规律性。
- 以方法为中心
- 常用方法
- 监督学习
- 非监督学习
- 半监督学习
- 强化学习
- 常用方法
- 目标是对数据进行预测与分析
统计学习的方法
- 监督学习
- 从给定的、有限的、用于学习的训练集出发
- 假设数据独立同分布
- 假设要学习的模型属于某个函数的集合,称为假设空间
- 采用评价标准从假设空间选择最优的模型
可以总结出统计学习的三要素:模型、策略和算法。
监督学习
监督学习的任务是学习一个模型,使模型能够对任意给定的输入能做出一个好的预测。
基本概念
- 输入空间:所有与样本相关的可以获得的信息,记作 X X X
- 特征空间:所有特征向量存在的空间,一般与输入空间不加区分
- 输出空间:一般为分类(预测)的结果,记作 Y Y Y
- 联合概率分布
- 监督学习假设输入和输出的随机变量 X X X和 Y Y Y遵循联合概率分布 P ( X , Y ) P(X,Y) P(X,Y)。
- 训练集和测试集的数据被看作依联合概率分布 P ( X , Y ) P(X,Y) P(X,Y)独立同分布产生的。
- 假设空间:模型属于由输入空间到输出空间的映射的集合,这个集合就是假设空间,记为
F
\mathcal{F}
F。
F = { f ∣ Y = f ( X ) } \mathcal{F}=\left\{f|Y=f(X)\right\} F={f∣Y=f(X)}
此时 A \mathcal{A} A通常是由一个参数向量决定的函数族:
F = { f ∣ Y = f θ ( X ) , θ ∈ R n } \mathcal{F}=\left\{f|Y=f_\theta(X),\theta\in R^n\right\} F={f∣Y=fθ(X),θ∈Rn}
参数向量 θ \theta θ取值于 n n n维欧氏空间 R n R^n Rn,称为参数空间。 - 监督学习的模型:可以是概率模型或非概率模型,由条件概率分布 P ( Y ∣ X ) P(Y|X) P(Y∣X)或决策函数 Y = f ( x ) Y=f(x) Y=f(x)表示。
问题形式化
通过一个简单的图展示监督学习的过程:
- 训练集: T = { ( x 1 , y 1 ) , . . . , ( x N , y N ) } T=\left\{(x_1,y_1),...,(x_N,y_N)\right\} T={(x1,y1),...,(xN,yN)},其中每一个都称为样本点, x i x_i xi为输入值, y i y_i yi为输出值。
- 训练的模型:表示为 P ^ ( Y ∣ X ) \hat P(Y|X) P^(Y∣X)或 Y = f ^ ( X ) Y=\hat f(X) Y=f^(X)
- 预测的结果:假设待预测的样本为 x N + 1 x_{N+1} xN+1,则结果记为 y N + 1 = a r g max y N + 1 P ^ ( y N + 1 ∣ x N + 1 ) y_{N+1}=arg \mathop {\max }\limits_{{y_{N + 1}}} \hat P(y_{N+1}|x_{N+1}) yN+1=argyN+1maxP^(yN+1∣xN+1)或 y N + 1 = f ^ ( x N + 1 ) y_{N+1}=\hat f(x_{N+1}) yN+1=f^(xN+1)
统计学习的三要素
方法=模型+策略+算法
模型
- 模型的假设空间包含所有可能的条件概率分布或决策函数 。
策略
- 用于考虑如何选择最优的模型
- 相关函数
- 损失函数
- 0-1损失函数:
L ( Y , f ( X ) ) = { 1 Y ≠ f ( X ) 0 Y = f ( X ) L\left( {Y,f\left( X \right)} \right) = \left\{ \begin{array}{l} 1\quad Y \ne f\left( X \right)\\ 0\quad Y = f\left( X \right) \end{array} \right. L(Y,f(X))={1Y̸=f(X)0Y=f(X) - 平方损失函数:
L ( Y , f ( X ) ) = ( Y − f ( X ) ) 2 L\left( {Y,f\left( X \right)} \right) = {\left( {Y - f\left( X \right)} \right)^2} L(Y,f(X))=(Y−f(X))2 - 绝对损失函数:
L ( Y , f ( X ) ) = ∣ Y − f ( X ) ∣ L\left( {Y,f\left( X \right)} \right) = \left| {Y - f\left( X \right)} \right| L(Y,f(X))=∣Y−f(X)∣ - 对数损失函数:
L ( Y , P ( Y ∣ X ) ) = − log P ( Y ∣ X ) L\left( {Y,P\left( {Y\left| X \right.} \right)} \right) = - \log P\left( {Y\left| X \right.} \right) L(Y,P(Y∣X))=−logP(Y∣X)
- 0-1损失函数:
- 风险函数:
- 风险函数(期望损失)
损失函数的期望(由于输入输出遵循联合分布 P ( X , Y ) P\left(X,Y\right) P(X,Y))称为风险函数或期望损失:
R exp ( f ) = E p [ L ( Y , f ( X ) ) ] = ∫ X × Y L ( y , f ( x ) ) P ( x , y ) d x d y {R_{\exp }}\left( f \right) = {E_p}\left[ {L\left( {Y,f\left( X \right)} \right)} \right] = \int_{\mathcal{X} \times \mathcal{Y}} {L\left( {y,f\left( x \right)} \right)P\left( {x,y} \right)} dxdy Rexp(f)=Ep[L(Y,f(X))]=∫X×YL(y,f(x))P(x,y)dxdy - 经验风险(经验损失)
对于训练集的平均损失称为经验风险或经验损失:
R e m p ( f ) = 1 N ∑ i = 1 N L ( y i , f ( x i ) ) {R_{emp}}\left( f \right) = \frac{1}{N}\sum\limits_{i = 1}^N {L\left( {{y_i},f\left( {{x_i}} \right)} \right)} Remp(f)=N1i=1∑NL(yi,f(xi))
- 风险函数(期望损失)
- 损失函数
- 经验风险最小化与结构风险最小化
- 经验风险最小化(ERM)
当样本容量足够大时,经验风险最小化能保证有很好的学习效果,也就是求解最优问题:
min f ∈ F 1 N ∑ i = 1 N L ( y i ∣ f ( x i ) ) \mathop {\min }\limits_{f \in \mathcal{F}} \frac{1}{N}\sum\limits_{i = 1}^N {L\left( {{y_i}\left| {f\left( {{x_i}} \right)} \right.} \right)} f∈FminN1i=1∑NL(yi∣f(xi))
极大似然估计就是经验风险最小化的一个例子。
但样本过小就会导致“过拟合”。 - 结构化风险最小(SRM)
为了防止过拟合而提出的策略。结构化风险在经验风险的基础上增加了模型复杂度的正则化项(或罚项)。因此定义为:
R s r m ( f ) = 1 N ∑ i = 1 N L ( y i , f ( x i ) ) + λ J ( f ) {R_{srm}}\left( f \right) = \frac{1}{N}\sum\limits_{i = 1}^N {L\left( {{y_i},f\left( {{x_i}} \right)} \right)} + \lambda J\left( f \right) Rsrm(f)=N1i=1∑NL(yi,f(xi))+λJ(f)
其中 J ( f ) J\left( f \right) J(f)为模型复杂度,越大函数越复杂; λ ≥ 0 \lambda\ge 0 λ≥0是系数用来权衡经验风险和模型复杂度。
贝叶斯估计中的最大后验概率估计就是结构风险最小化的例子。
- 经验风险最小化(ERM)
算法
在确定了训练数据集、学习策略并从假设空间中选择最有模型的基础上,需要考虑使用什么算法求解最优模型。
模型评估与模型选择(一)
训练误差与测试误差
假设学习得到的算法是 Y = f ^ ( X ) Y=\hat f(X) Y=f^(X)
- 训练误差:是算法在训练集上的平均损失 R e m p ( f ^ ) = 1 N ∑ i = 1 N L ( y i , f ^ ( x i ) ) {R_{emp}}\left( {\hat f} \right) = \frac{1}{N}\sum\limits_{i = 1}^N {L\left( {{y_i},\hat f\left( {{x_i}} \right)} \right)} Remp(f^)=N1i=1∑NL(yi,f^(xi))
- 测试误差:算法在测试集上的平均误差 e t e s t ( f ^ ) = 1 N ′ ∑ i = 1 N ′ L ( y i , f ^ ( x i ) ) {e_{test}}\left( {\hat f} \right) = \frac{1}{{N'}}\sum\limits_{i = 1}^{N'} {L\left( {{y_i},\hat f\left( {{x_i}} \right)} \right)} etest(f^)=N′1i=1∑N′L(yi,f^(xi))
- 测试误差率:当损失函数为0-1损失时,测试误差变为误差率,记为
e
t
e
s
t
=
1
N
′
∑
i
=
1
N
′
I
(
y
i
≠
f
^
(
x
i
)
)
{e_{test}} = \frac{1}{{N'}}\sum\limits_{i = 1}^{N'} {I\left( {{y_i} \ne \hat f\left( {{x_i}} \right)} \right)}
etest=N′1i=1∑N′I(yi̸=f^(xi))
其中 I I I为指示函数, y ≠ f ^ ( x ) y\ne \hat f(x) y̸=f^(x)时为 1 1 1,否则为 0 0 0。 - 测试准确率: r t e s t = 1 − e t e s t r_{test}=1-e_{test} rtest=1−etest
过拟合、欠拟合与模型选择
模型的选择应该是以真实情况作为依据,也就是逼近所谓的“真模型”,而不应该只追求模型在训练集上的表现效果。
- 过拟合与欠拟合
首先看个实际得实例:
- 过拟合
一味追求提高对训练集的预测能力(学习了训练样本中存在得特点),模型过于复杂,往往复杂度高于“真模型”。
特点:对于已知数据表现很好,对于未知数据表现很差。 - 欠拟合
欠拟合相对比较好理解,就是指对训练样本得一般性质未能学好。
下图从另一个角度展示了一个过拟合的与欠拟合(M表示多项次的次数),可以很显然得发现:
- 当 M = 0 M=0 M=0时,完全就是一条与 x x x轴平行的直线,并没有学习到什么有用得信息;
- 当 M = 1 M=1 M=1时,直线发生了一定的倾斜,但其实也与“真模型”相差甚远,此时仍处于“欠拟合”的状态。
- 当
M
=
9
M=9
M=9时,图像经过了所有已知点,但是图像非常复杂且偏离“真模型”,可以想象其用来预测也会导致很差得结果。
下图也给出了随着模型复杂度的变化,训练误差与测试误差的变化情况。
- 过拟合
参考文献
- 《统计学习方法》
- 《机器学习》