第二章 统计学习及监督学习概论
监督学习是从标注
中学习模型的机器学习问题,是统计学习,机器学习的重要组成部分.
1. 统计学习
统计学习(statistical learning)是关于计算机基于数据构建概率统计模型并运用模型对数据进行预测
与分析
的一门学科.统计学习也称为统计机器学习(statistical machine learning)
- 统计学习的目的是对数据进行
预测
与分析
- 统计学习以方法为中心,统计学习方法
构建模型
并应用模型
进行预测
与分析
- 统计学习是概率论、统计学、信息论、计算理论、最优化理论及计算机科学等多个领域的交叉学科,并在发展中逐步形成独自的理论体系与方法论.
统计与机器学习的区别
统计学习:注重数学的方法来搭建模型--产生过程已知
机器学习:注重用工程的方法来搭建模型--产生过程未知
统计学习关于数据的基本假设
是同类数据具有一定的统计规律性
,对于训练数据(train data)要求是独立同分布的IID(Independent Identically Distributed)
统计学习的目的
统计学习用于对数据的预测
与分析
,特别是对未知新数据的预测与分析.
对数据的预测与分析是通过构建概率统计模型
实现的.考虑学习什么样的模型和如何学习模型,以使模型能对数据进行精确的预测与分析,同时也要考虑尽可能提高学习效率.
统计学习的方法
统计学习的方法是基于数据构建概率统计模型从而对数据进行预测与分析.
统计学习是由监督学习(supervised learning)
,无监督学习(unsupervised learning)
和强化学习(reinforcement learning)
等组成.
统计学习方法:
- 从给定的、有限的、用于学习的训练数据(training data)集合出发,假设数据是独立同分布产生的;
- 并且假设要学习的模型属于某个
函数的集合
,称为假设空间(hypothesis space); - 应用某个
评价准则
(evaluation criterion)从假设空间中选取一个最优模型,是他对已知的训练数据及未知的测试数据(test data)在给定的评价准者下有最优的预测; - 最优模型的选取有算法实现。
统计学习方法的三要素:
- 模型的假设空间 ---
模型(model)
- 模型选择的准则 ---
策略(strategy)
- 模型学习的算法 ---
算法(algorithm)
实现统计学习方法的具体步骤:
- 一个有限的训练数据集合
- 确定包含所有可能的
模型假设空间
,即学习模型的集合
; - 确定模型选择的准则,即学习策略;
- 实现求解最优模型的算法,即学习的算法;
- 通过学习方法选择最优模型;
- 利用学习的最优模型对新数据进行预测或分析;
统计学习研究
包括:
- 统计学习方法
- 统计学习理论
- 统计学习应用
- 统计学习方法的研究旨在开发新的学习方法;
- 统计学习理论的研究在于探索统计学习方法的有效性与效率,以及统计学习的基本理论问题;
- 统计学习应用的研究主要考虑将统计学习方法应用到实际问题中去,解决实际问题。
统计学习的重要性
- 统计学习是处理海量数据的有效方法
- 统计学习是计算机智能化的有效手段
- 统计学习是计算机科学发展的一个重要组成部分
2. 统计学习分类
基本分类(Basic Classification)
监督学习(supervised learning)
:从标注数据
中学习预测模型的机器学习问题
标注数据
:表示输入输出的对应关系,预测模型对给定的输入产生对应的输出
监督学习的本质是学习输入到输出的映射的统计规律
输入空间, 特征空间, 输出空间
每个具体的输入是一个实例(instance)
,通常由特征向量(feature vector)
表示.
所有特征向量存在的空间称为特征空间(feature space)
特征空间的每一维对应一个特征
输入变量用大写字母
X
表示输出变量用大写字母
Y
表示输入变量的取值写作
x
输出变量的取值写作
y
变量可以是标量可以是向量,都用相同类型的字母表示
输入实例x的特征向量记作
$$ x=(x^{(1)}_i,x^{(2)}_i,...,x^{(n)})^T $$
$x^{(i)}$表示x的第i个特征, $x_i$表示多个输入变量中的第i个变量
$$ x_i=(x_i^{(1)},x_i^{(2)},...,x^{(n)})^T $$
训练数据集通常表示为
$$ T=\{(x_1,y_1),(x_2,y_2),...,(x_N,y_N)\} $$
测试数据也有输入与输出对组成
输入与输出对又称为样本点
输入变量与输出变量均为连续变量的预测问题称为回归(regression)问题
输出变量为有限个离散变量的预测问题称为分类(classification)问题
输入变量与输出变量均为变量序列的预测问题称为标注问题
联合概率分布
监督学习假设输入与输出的随机变量X和Y遵循联合概率分布P(X,Y)
.
P(X,Y)表示分布函数,或分布密度函数
统计学习假设数据存在一定的统计规律
,X和Y具有联合概率分布就是监督学习关于数据的基本假设
假设空间
监督学习目的是在于学习一个输入到输出的映射,这一映射由模型来表示.
监督学习的模型可以是概率模型或非概率模型,由条件概率分布P(Y|X)或决策函数(decision function)$Y=f(X)$表示,随集体学习方法而定.
对具体的输入进行相应的输出预测时,写作$P(y|x)或y=f(X)$
问题的形式化
监督学习分为学习
和预测
两个过程,有学习系统
与预测系统
完成.
通过学习(或训练)得到一个模型,表示为条件概率分布$\hat{P}(Y|X)$或决策函数
$$ Y = \hat{f}(X) $$
在预测过程中,预测系统对于给定的测试样本集的输入$x_{N+1}$由摸$y_{N+1}=\mathop{arg} \mathop{max}\limits_{y} \hat P(y|x_{N+1})$ 或者 $y_{N+1}=\hat f(x_N+1)$给出相应的输出$y_{N+1}$
贝叶斯学习Bayesian learning
在概率模型的学习和推理中, 利用贝叶斯定理, 计算在给数据条件
下模型的条件概率, 即后验概率
, 并用这个原理进行模型的估计, 以及对数据的预测. 将模型, 未观测要素及其参数用变量表示, 使用模型的先验分布
是贝叶斯学习的特点.
假设随机变量D表示数据, 随机变量θ表示模型参数
,根据贝叶斯定理, 可以用一下公式计算后验概率
$$ P(\theta|D)=\frac{P(\theta)P(D|\theta)}{P(D)} $$
其中$P(\theta)$是先验概率,$P(D|\theta)$是似然函数
模型估计是,估计整个后验概率分布$P(\theta|D)$
如果需要给出一个模型, 通常取后验概率最大的模型.
预测时计算数据对后验概率分布的期望值:(x是新样本)
$$ P(x|D) = \int P(x|\theta,D)P(\theta|D)d\theta $$
取后验概率最大,就能从贝叶斯估计得到极大似然估计
3. 统计学习方法的三要素
概述:方法=模型+策略+算法
model 模型
在监督学习中,模型就是所要学习的条件概率分布$\mathop{arg} \mathop{mad}\limits_{y} \hat{P}(Y|X)$或决策函数$Y=\hat f(x)$。
模型的假设空间包含所有可能的条件概率分布或决策函数。
假设空间用F表示。假设空间定义为决策函数的集合
$$ F = \{f|Y=f(x) \} $$
F 通常是有一个参数向量决定的函数族
$$ F =\{f|Y=f_\theta(X),\theta\in \R^n \} $$
假设空间也可以定义条件概率的集合:
$$ F=\{P|P(Y|X) \}\\ F=\{P|P_\theta(Y|X),\theta \in \R^n \} $$
Strategy 策略
学习方法按照特定的策略,学习或选择最优的模型
损失函数:
0-1 损失函数 (0-1 loss function)
$$ L(Y,f(X)) = \begin{cases} 1, Y \not= f(x) \\ 0, Y = f(x) \end{cases} $$
平方损失函数 (quadratic loss function)
$$ L(Y,f(X)) = (Y-f(X))^2 $$
绝对损失函数 (absolute loss function)
$$ L(Y,f(X))=|Y-f(x)| $$
对数损失函数(对数似然函数)
$$ L(Y,P(Y|X)) = - logP(Y|X) $$
损失函数值越小,模型越好。由于模型的输入、输出(X,Y)是随机变量,遵循联合分布$P(X,Y)$,所以损失函数期望是
$$ \begin{aligned} R_{exp}(f) &=E_P[L(Y,f(X))]\\ &= \int_{x\times y}L(y,f(x))P(x,y)dxdy \end{aligned} $$
这是理论上模型f(x)关于联合分布P(X,Y)的平均意义下的损失,称为风险函数
或期望损失
给定一个训练集:$ T\{ (x_1,y_1),(x_2,y_2),...,(x_N,y_N) \} $
模型f(X)关于训练数据集的评价损失函数称为经验风险(empirical risk)或经验损失(empirical loss),记作$R_{emp}$
$$ R_{emp}(f)=\frac{1}{N}\sum^N_{i=1}L(y_i,f(x_i)) $$
根据大数定律,当样本容量N趋于无穷时,经验风险趋于期望风险。所以一个很自然的想法是用经验风险估计期望风险。但由于现实中训练样本数目有限,所以经验风险估计期望风险并不理想,需要对经验风险进一步的矫正。
经验风险最小化与结构风险最小化
(1) 经验风险最小化
经验风险最小化(ERM)策略认为,经验风险最小的模型是最优的模型。于是按照经验风险最小化求最优模型就是求解最优化问题:
$$ \mathop{min}_{f\in F} \frac{1}{N}\sum^N_{i=1}L(y_i,f(x_i)) $$
极大似然函数估计(maximum likelihood estimation)就是经验风险最小化的例子
证明:
将
$$ L(Y,P(Y|X))=-logP(Y|X) $$
代入
$$ \mathop{min}_{f\in F}\frac{1}{N}\sum^N_{i=1}L(y_i,f(_i)) $$
得到:
$$ \mathop {min}\frac{1}{N}\sum^N_{i=1}L(y_i,f(x_i))=\mathop{min}(-\frac{1}{N}\sum^N_{i=1}log(P(y_i|x_i)))=\mathop{max}(\frac{1}{N}log(P(Y|X))) $$
所以:
当模型是条件概率分布、损失函数是对数损失函数时,经验风险最小化等价于极大似然估计。
(2)结构风险最小化
结构风险最小化(SRM)是为了防止过拟合提出来的策略,等价于正则化
。结构风险在经验风险上加上表示模型复杂程度的正则化项(regularizer)
或惩罚项(penalty term)。
定义如下:
$$ R_{srm}(f)=\frac{1}{N}\sum^N_{i=1}L(y_i,f(x_i))+\lambda J(f) $$
其中$J(f)$为模型复杂度,是定义在假设空间上的泛函
模型f 越复杂,复杂度J(f)就越大;复杂度表示了对复杂模型的惩罚。
$\lambda \geq 0$是系数(一般取$10e-4$,到$10e-1$),用以权衡经验风险和模型复杂度。
结构风险小需要经验风险和模型复杂度同时小。
结构风险小的模型往往对训练数据以及未知的测试数据都有较好的预测。
从贝叶斯估计的角度来看,正则化项对应于模型的先验概率,复杂模型有较小的先验概率,简单模型有较大的先验概率,即成反比关系:$P(\theta)$先验概率
$$ J(f)=-\lambda P(\theta) $$
(奥卡姆剃须刀)注:如无必要,切勿假定繁多
结构风险最小化的策略认为结果风险最小化的模型是最优的模型。
所以求最优模型就是求解最优化问题:
$$ \mathop {min}_{f\in F}\frac{1}{N}\sum^N_{i=1}L(y_i,f(x_i))+\lambda J(f) $$
贝叶斯估计中的最大后验概率估计(maximum posterior probability estimation MAP)就是结构风险最小化的例子。
证明
:将:
$$ L(Y,P(Y|X))=- logP(Y|X)\\ J(f)=-\lambda P(\theta) $$
代入:
$$ \mathop{min}_{f\in F}\frac{1}{N}\sum^N_{i=1}L(y_i,f(x_i))+ \lambda J(f) $$
得到:
$$ \begin{aligned} \mathop{min}\frac{1}{N}\sum^N_{i=1}L(y_i,f(x_i))+ \lambda J(f)&=\mathop{min}(-\frac{1}{N}\sum^N_{i=1}logP(y_i,f(x_i))+ \lambda J(f))\\&=\mathop{max}(\frac{1}{N}log(P(Y|X)+P(\theta))) \end{aligned} $$
等价于:后验概率最大化
$$ P(\theta |D)=\frac{P(\theta)P(D|\theta)}{P(D)} $$
所以,当模型是条件概率分布、损失函数是对数损失函数、模型复杂度由模型的先验概率表示时,结构风险最小化就等价于最大后验概率估计。
监督学习问题就变成了经验风险或结果风险函数的最优化问题。
这是经验或结构风险函数是最优化的目标函数。
Algorithm 算法
算法指学习模型的具体算法。
根据学习策略,从假设空间中选择最优模型,考虑用什么样的计算方法求解最优模型。即,计算策略的最优计算方法。
通常最优化问题没有显示的解析解,这就需要用数值计算的方法求解。如何找到全局最优解,并使得求解高效。
4. 模型评估与模型选择
训练误差与测试误差
统计学习方法具体采用的损失函数未必是评估时使用的损失函数。
假设学习的模型是$Y=\hat f(X)$,训练误差是模型关于训练数据集的平均损失:其中N为训练样本:
$$ R_{emp}(\hat f)=\frac{1}{N}\sum^N_{i=1}L(y_i,\hat f(x_i)) $$
测试误差是模型$Y=\hat f(X)$关于测试数据集的平均损失:其中$H^`$是训练样本容量
$$ e_{test} = \frac{1}{N^`}\sum^{N^`}_{i=1}L(y_i,\hat f(x_i)) $$
当损失函数是0-1损失时,测试误差就变成了常见的测试数据集上的误差率(error rate):
$$ e_{test}=\frac{1}{N^`}\sum^{N^`}_{i=1}I(y_i\not=\hat f(x_i)) $$
相应的,常见的测试数据集上的准确率(accuracy)为:
$$ r_{test}=\frac{1}{N^`}\sum^{N^`}_{i=1}I(y_i = \hat f(x_i)) $$
显然有:
$$ r_{test}+e_{test}=1 $$
训练误差的大小,对判定给定的问题是不是一个容易学习
的问题时有意义的,但本质上不重要。
测试误差反应了学习方法对未知的测试数据集的预测能力。
测试误差小的方法具有更好的预测能力,是更有效的方法。
通常将学习方法对未知数据的预测能力称为泛化能力(generalization ability)
过拟合与模型的选择
当假设空间含有不用复杂度(如,不用参数)的模型时,就要面临模型选择(model selection)的问题。
所选的模型要与真实模型的参数个数相同,所选的模型的参数向量与真模型向量相近。
在现实生活中,搭建模型主要有两种用途
- 正向应用:对未知情况做预测
- 反向应用:解释数据之间的联动效应
从数学上来讲,向模型加入一个新变量,那么原模型就成为新模型的一个特例,即新变量的系数为0。那么对于同一批已知数据,新模型的拟合效果一定比原模型好。但模型对已知数据拟合得好并不代表它能对未知数据做出正确预测。
- 当模型太过简单时,无论是训练误差还是测试误差都很高,太过简单的模型还不足以捕捉数据里的复杂关系。
- 当模型太过复杂时,训练误差很小,但是测试误差却相当高,这就是过拟合。过拟
合是更加危险的,因为它具有极强的迷惑性,容易让人误以为模型的结果很理想。
如果一味追求提高对训练数据的预测能力,所选模型的复杂度则往往会比真模型更高,这种现象称为过拟合(over-fitting)。
过拟合是指学习时选择的模型所包含的参数过多,以至出现模型对已知数据预测得很好,但是对未知数据预测的很差的现象。
模型选择旨在避免过拟合并提高模型的预测能力。
模型陷阱概述
5. 正则化与交叉验证
正则化
正则化项可以取不同的形式。
范数$L_P$
$$ L_P=\sqrt[p]{|x_1|^P+|x_2|^P+...+|x_n|^P} $$
在回归问题中,损失函数是平方损失,正则化项可以是参数向量的L2范数:
$$ L(w)=\frac{1}{N}\sum^N_{i=1}(f(x_i;w)-y_i)^2+\frac{\lambda}{2}\lVert w \rVert^2 $$
这里,$\lVert w\rVert$表示参数向量$w$的$L_2$范数。
正则化项也可以是参数向量的$L_1$范数:
$$ L(w)=\frac{1}{N}\sum^N_{i=1}(f(x_i,w)-y_i)^2+\alpha \lVert w\rVert_1 $$
这里,$\lVert w\rVert_1$表示参数向量$w$的$L_1$范数。
正则化是机器学习应对过拟合的有效方法。使原本该等于0的参数尽量往0靠近
。
为了达到这个目的,在原来的损失函数里加入惩罚项。$\alpha >0$为惩罚权重。惩罚项会随着a,b,c绝对值的增大而增大。通俗来说,就是模型参数估计值越远离0,惩罚就越大。因此在估计参数时,也就是在寻找L的最小值时,这一项会迫使参数向0靠近,而且跟{y}越不相关的变量,其对应的参数值向0靠近的步伐也就越大。
交叉验证
6. 泛化能力
Generalization error 泛化误差
学习方法的泛化能力是指由该方法学习到的模型对未知数据的预测能力,是学习方法本质上重要的性质。
统计学习试图从理论上对学习方法的泛化能力进行分析。
定义:
如果学到的模型是$\hat f(X)$,那么用这个模型对未知数据预测的误差记为泛化误差:
$$ \begin{aligned} R_{exp}(\hat f) &= E_P[L(Y,\hat f(X))]\\ &=\int_{x\times y}L(y,\hat f(x))P(x,y)dxdy \end{aligned} $$
事实上,泛化误差(测试误差)就是所学习道德模型的期望风险。
泛化误差上界:
学习方法的泛化能力往往是通过研究泛化误差的概率上界进行的,简称为泛化误差上界(generalization error bound)
具有的性质:
- 他是样本容量的函数,当样本容量增大时, 泛化误差趋于0;
- 他是假设空间的容量(capacity) 的函数,假设空间容量越大,模型就越难学,泛化误差上界就越大。
7. 生成模型与判别模型
监督学习的任务就是学习一个模型,应用这一模型,对给定的输入预测相应的输出。
这个模型的一般判决形式为决策函数:
$$ Y=f(X) $$
或者条件概率分布
:
$$ P(Y|X) $$
监督学习方法又可以分位生成方法(generativate approach)和判别方法(discriminative approach)。所学习到的模型分别称为生成模型和判别模型。
生成方法 generative approach
由数据学习联合概率分布P(X,Y)
,然后求出条件概率分布P(Y|X)作为预测的模型,即生成模型:
$$ P(Y|X)=\frac{P(X,Y)}{P(X)} $$
这样的方法之所以称为生成方法,是因为模型表示了给定输入X产生输出Y的生成关系。
典型的生成模型有朴素贝叶斯法和隐马尔可夫模型。
判别方法 discriminative proach
判别方法由数据直接学习
决策函数f(X)或者条件概率分布P(Y|X)作为预测的模型,即判别模型。判别方法关心的是对给定的输入X,应该预测什么样的输出Y。
生成方法的特点:
- 生成方法可以还原出联合概率分布
P(X,Y),而判别方法则不能
; - 生成方法的学习收敛速度更快,即当样本容量增大的时候,学习到的模型可以跟快地收敛于真实模型;
- 当存在隐变量时,仍可以用生成方法学习,判别方法就不能用
判别方法的特点:
- 判别方法直接学习的是条件概率$P(Y|X)$或决策函数$f(X)$,直接面对预测,往往学习的效率更高;
- 由于直接学习$P(Y|X)$或决策函数$f(X)$,可以对数据进行各种层度的抽象、定义特征并使用特征,因此可以简化学习问题。
8. 评估分类模型效果
Precision and Recall 查准率与查全率
Precision:
检索出来的条目多少是正确的
Recall:
所有正确的条目有多少被检索出来
评估指标定义
对于一个分类问题的预测结果:
- 希望预测结果“精确”:查准率(precision)
- 希望预测结果“完整”:查全率(recall)
真实性 | |||
---|---|---|---|
1 | 0 | ||
预测值 | 1 | 真阳性(true positive) TP 图中的2部分 |
伪阳性(false positive) FP 图中的3部分 |
0 | 伪阴性(false negative) FN 图中的1部分 |
真阴性(true negative) TN |
$$ Precision = \frac{TP}{TP+FP}, \qquad Recall = \frac{TP}{TP+FN} \\ \\ precision=P(y_i=1| \hat y_i=1)\\ Recall = P(\hat y_i=1|y_i=1) $$
理想的情况是这两个指标都很高,但这两个指标往往存在着此消彼长的现象。
例如一个逻辑回归模型,降低它的阈值$\alpha$,往往会提高它的查全率,但同时会降低它的准确率。
定义一个新的指标F1-score
去综合这两个指标。
从数学上看,它是precision与recall的调和平均数。
对于二元分类问题,F1-score
综合考虑了预测结果的查准率和查全率,是一个比较好的评估指标。
$\hat a= \mathop{arg}\mathop{max}\limits_{\alpha} F1$
$F_1=2\frac{P\times R}{P+R}$
对于这些偏重某一特定指标的场景,可以相应地定义指标$F_\beta-score$。
当$\beta$靠近0时,$F_\beta-score$偏向查准率。
当$\beta$很大时,则偏向查全率。
是$F_1-score$的一个特例
$$ F_1=2\frac{Precision\times Recall}{Precision+Recall} \qquad F_\beta=(1+\beta^2)\frac{Precision\times Recall}{\beta^2\times Precision+Recall} $$
$$ 模型阈值\alpha的选择 \longrightarrow F_\beta-score \longrightarrow \hat\alpha=\mathop{arg}\mathop{max}\limits_{\alpha}\mathop{F_\beta-score} $$
定义$F_1-score$来综合查准和查全两个指标
在不同场景下,对查准查全的重视程度是不一样的
- 定义 $F_\beta-score$
- 对于逻辑回归模型,可以借助F-score来确定阈值$\alpha$的值
看到这,表示脑壳痛..完全不懂,嘿。。
:)(erha) 我也是瞎学,学完还是懵的