【ML学习笔记01】《统计学习方法》—ch01:概论

1. 统计学习

是关于计算机基于数据构建概率统计模型并运用模型对数据进行预测与分析的一门学科,也称为机器学习

  • 对象:统计学习的对象是数据(data)。它从数据出发,提取数据的特征,抽象出数据的模型,发现数据中的知识,又回到对数据的分析与预测中去
  • 目的:统计学习用于对数据进行预测与分析,特别是对未知新数据进行预测与分析
  • 方法:基于数据构建统计模型从而对数据进行预测和分析
    • 由监督学习(supervised learning)、非监督学习(unsupervisedlearning)、半监督学习(semi-supervisedlearning)和强化学习(reinforcement learning)等组成
    • 本书主要讨论监督学习方法

2. 监督学习

监督学习的任务是学习一个模型,使模型能够对任意给定的输入,对其相应的输出做出一个好的预测

  • 统计学习的方法可以概括如下:
    从给定的、有限的、用于学习的训练数据(training data) 集合出发,假设数据是独立同分布产生的;并且假设要学习的模型属于某个函数的集合,称为假设空间(hypothesisspace);应用某个评价准则(evaluation criterion),从假设空间中选取一个最优的模型,使它对已知训练数据及未知测试数据(test data) 在给定的评价准则下有最优的预测;最优模型的选取由算法实现.这样,统计学习方法包括模型的假设空间、模型选择的准则以及模型学习的算法,称其为统计学习方法的三要素,简称为模型(model)、策略(strategy)和算法(algorithm)

  • 实现统计学习方法的步骤如下:
    (1)得到一个有限的训练数据集合;
    (2)确定包含所有可能的模型的假设空间,即学习模型的集合;
    (3)确定模型选择的准则,即学习的策略;
    (4)实现求解最优模型的算法,即学习的算法;
    (5)通过学习方法选择最优模型;
    (6)利用学习的最优模型对新数据进行预测或分析.

基本概念

1.输入空间、特征空间与输出空间

  • 输入空间(input space)与输出空间(output space):输入与输出所有可能取值的集合。通常输出空间远远小于输入空间。每一个具体的输入是一个实例(instance),通常由特征向量(feature vector)表示。特征向量存在的空间称为特征空间(feature space),其中的每一维对应于一个特征
  • 监督学习从训练数据(training data)集合中学习模型,对测试数据(test data)进行预测。训练数据由输入(或特征向量)与输出组成,训练集通常表示为 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) 。测试数据也由相应的输入与输出对组成。输入与输出对又称为样本(sample)或样本点
  • 根据输入、输出变量的不同类型,对预测任务给予不同的名称:
    • 回归问题:连续变量
    • 分类问题:离散变量
    • 标注问题:变量序列

2.联合概率分布

监督学习假设输入与输出的随机变量 X 和 Y 遵循联合概率分布 P(X , Y)


3.假设空间

  • 监督学习的目的在于学习一个由输入到输出的映射,这一映射由模型来表示
  • 模型属于由输入空间到输出空间的映射的集合,这个集合就是假设空间(hypothesis space)
  • 监督学习的模型可以是概率模型或非概率模型,由条件概率分布 P( Y| X )或
    决策函数(decision function)Y= f(X) 表示

问题的形式化

  • 利用训练数据集学习一个模型,再用模型对测试样本集进行预测(prediction)
  • 监督学习分为学习和预测两个过程,由学习系统与预测系统完成

在这里插入图片描述

3. 统计学习三要素

方法 = 模型 + 策略 + 算法

模型

  • 模型就是所要学习的条件概率分布或决策函数
  • 模型的假设空间包含所有可能的条件概率分布或决策函数

策略

有了模型的假设空间,统计学习接着要考虑的是按照什么样的准则学习或选择最优的模型,而为了评价模型的好坏,我们要引入损失函数与风险函数

  1. 损失函数(loss function)

度量预测值与真实值相比错误的程度

  • 常用损失函数
    • 0-1 损失函数(0-1 loss function):相等为0,不相等为1
    • 平方损失函数(quadratic loss function):差值的平方
    • 绝对损失函数(absolute loss function):差值的绝对值
    • 对数损失函数(logarithmic loss function):条件概率的对数的负值
  • 损失函数值越小,模型就越好

1.风险函数(risk function) 或期望损失(expected los)

模型关于联合分布P(X,Y)的平均意义下的损失

  • 学习的目标就是选择期望风险最小的模型
  • 但是联合分布是未知的,所以我们需要用经验风险来估计期望风险
  • **经验风险(empirical risk)**是模型关于训练数据集的平均损失
  • 根据大数定律,当样本容量趋于无穷时,经验风险会趋于期望风险
  • 但是,由于现实中训练样本数目有限,甚至很小,所以用经验风险估计期望风险常常并不理想,要对经验风险进行一定的矫正.这就关系到监督学习的两个基本策略:经验风险最小化和结构风险最小化

2.经验风险最小化和结构风险最小化

  • 经验风险最小化(ERM)的策略认为经验风险最小的模型是最优的模型;结构风险最小化(SRM)的策略认为结构风险最小的模型是最优的模型
  • 当样本容量很小时,ERM的学习效果未必很好,会产生“过拟合”现象,因此提出结构风险最小化(SRM)来防止过拟合
  • 结构风险在经验风险上加上表示模型复杂度的正则化项(regularizer)或罚项(penalty term)。因此结构风险需要经验风险和模型复杂度同时小,往往对训练数据以及未知的测试数据都有较好的预测

这样监督学习问题就变成了经验风险或结构风险函数的最优化问题

算法

算法是指学习模型的具体计算方法.统计学习基于训练数据集,根据学习策
略,从假设空间中选择最优模型,最后需要考虑用什么样的计算方法求解最优模型

4. 模型评估与模型选择

当损失函数给定时,基于损失函数的模型的训练误差(training error) 和模型的测试误差(test error) 就自然成为学习方法评估的标准.

训练误差与测试误差

  • 训练误差是模型关于训练数据集的平均损失;测试误差是模型关于测试数据集的平均损失
  • 训练误差的大小,对判断给定的问题是不是一个容易学习的问题是有意义的,但本质上不重要
  • 测试误差反映了学习方法对未知的测试数据集的预测能力,是学习中的重要概念。测试误差小的方法具有更好的预测能力,是更有效的方法
  • 通常将学习方法对未知数据的预测能力称为泛化能力(generalization ability)

过拟合与模型选择

  • 当假设空间含有不同复杂度(例如,不同的参数个数)的模型时,就要面临模型选择(model selection) 的问题
  • 过拟合(over-fitting) 是指学习时选择的模型所包含的参数过多,以致于出现这一模型对已数据预测得很好,但对未知数据预测得很差的现象
  • 模型选择旨在避免过拟合并提高模型的预测能力,即选择复杂度适当的模型,以达到使测试误差最小的学习目的

在这里插入图片描述

5. 正则化与交叉验证

正则化

模型选择的典型方法是正则化(regularization).正则化是结构风险最小化策略的实现,是在经验风险上加一个正则化项(regularizer)或罚项(penalty term).

  • 正则化项一般是模型复杂度的单调递增函数,比如,可以是模型参数向量的范数
  • 例如回归问题
    • 损失函数是平方损失,正则化项可以是参数向量的 L2 范数
    • L ( w ) = 1 N ∑ i = 1 N ( f ( x i ; w ) − y i ) 2 + λ 2 ∣ ∣ w ∣ ∣ 2 L(w)=\frac1N\sum^N_{i=1}(f(x_i;w)-y_i)^2+\frac \lambda2||w||^2 L(w)=N1i=1N(f(xi;w)yi)2+2λ∣∣w2
    • 第 1 项的经验风险较小的模型可能较复杂(有多个非零参数),这时第 2 项的模型复杂度会较大.正则化的作用是选择经验风险与模型复杂度同时较小的模型

交叉验证

  • 另一种常用的模型选择方法是交叉验证(cross validation)
  • 如果给定的样本数据充足,进行模型选择的一种简单方法是随机地将数据集切分成三部分,分别为训练集(training set)、验证集(validation set)测试集(testset) 。训练集用来训练模型,验证集用于模型的选择,而测试集用于最终对学习方法的评估
  • 但是实际中数据是不充足的,交叉验证的基本想法是重复的使用数据,把给定的数据进行切分,将切分的数据集组合为训练集与测试集

1.简单交叉验证

  • 首先随机地将已给数据分为两部分,一部分作为训练集,另一部分作为测试集(例如,70%的数据为训练集,30%的数据为测试集)
  • 然后用训练集在各种条件下(例如,不同的参数个数)训练模型,从而得到不同的模型
  • 在测试集上评价各个模型的测试误差,选出测试误差最小的模型

2.S折交叉验证(应用最多)

  • 首先随机地将已给数据切分为 S 个互不相交的大小相同的子集
  • 然后利用 S-1个子集的数据训练模型,利用余下的子集测试模型
  • 将这一过程对可能的 S 种选择重复进行;最后选出 S 次评测中平均测试误差最小的模型

3.留一交叉验证

S 折交叉验证的特殊情形是 S=N,称为留一交叉验证(leave-one-out crossvalidation),往往在数据缺乏的情况下使用.这里,N 是给定数据集的容量

6. 泛化能力(generalization ability)

学习方法的泛化能力是指由该方法学习到的模型对未知数据的预测能力,是学习方法本质上重要的性质。

  • 现实中采用最多的方法是通过测试误差来评价学习方法的泛化能力,但是会依赖于有限的测试数据集,因此结果不可靠
  • 因此提出泛化误差(generalization error)模型对未知数据预测的误差,也就是所学习到的模型的期望风险

泛化误差上界(generalization error bound)

学习方法的泛化能力分析往往是通过研究泛化误差的概率上界进行的,简称为泛化误差上界

  • 性质:
    • 它是样本容量的函数,当样本容量增加时,泛化上界趋于0(1/N)
    • 它是假设空间容量(capacity)的函数,假设空间容量越大,模型就越难学,泛化误差上界就越大
  • 简单例子:二分类问题的泛化误差上界
    • 已知训练数据集 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)},是从联合概率分布P(X,Y)独立分布产生的;假设空间是函数的有限集合F={f1,f2,…,fd},d是函数个数;设损失函数是0-1损失
    • 因此关于选取的函数f的期望风险和经验风险分别是
      • R ( f ) = E [ L ( Y , f ( X ) ) ] R(f)=E[L(Y,f(X))] R(f)=E[L(Y,f(X))]
      • R ^ ( f ) = 1 N ∑ i = 1 N L ( y i , f ( x i ) ) \hat R(f)=\frac1N\sum^N_{i=1}L(y_i, f(x_i)) R^(f)=N1i=1NL(yi,f(xi))
    • 经验风险最小化函数是:
      • f N = a r g    m i n f ∈ F R ^ ( f ) f_N=arg\;\underset{f\in F}{min}{\hat R(f)} fN=argfFminR^(f)
    • 函数的泛化能力是:
      • R ( f N ) = E [ L ( Y , f ( X ) ) ] R(f_N)=E[L(Y,f(X))] R(fN)=E[L(Y,f(X))]
  • 泛化误差上界公式(对二类分类问题)
    • 当假设空间是有限个函数的集合时,对任意一个函数 f,至少以概率 1 − δ 1-\delta 1δ ,以下不等式成立
      R ( f ) ≤ R ^ ( f ) + ε ( d , N , δ ) R(f)≤\hat R(f)+\varepsilon(d,N,\delta) R(f)R^(f)+ε(d,N,δ)
    • 其中 ε ( d , N , δ ) = 1 2 N ( l o g d + l o g 1 δ ) \varepsilon(d,N,\delta)=\sqrt{\frac1{2N}(logd+log\frac1\delta)} ε(d,N,δ)=2N1(logd+logδ1)
    • 不等式左端 R ( f ) R(f) R(f)是泛化误差,右端是泛化误差上界
    • 在泛化误差上界中
      • 第1项是训练误差,训练误差越小,泛化误差也越小
      • 第2项表示了泛化误差上界的两个性质:它是N的单调递减函数,表示当N趋于无穷时趋于0;同时也是 l o g d \sqrt{logd} logd 阶的函数,表示假设空间包含的函数个数d越多,值越大
  • 证明
    • Hoeffding不等式:
      在这里插入图片描述

    • 因此在上述二分类问题中,假设 X i = L ( y i , f ( x i ) ) X_i=L(y_i,f(x_i)) Xi=L(yi,f(xi)) ,则

      • X ˉ = 1 N ∑ i = 1 N L ( y i , f ( x i ) ) = R ^ ( f ) \bar X=\frac1N\sum^N_{i=1}{L(y_i,f(x_i))}=\hat R(f) Xˉ=N1i=1NL(yi,f(xi))=R^(f) — —经验风险是L的样本均值
      • [ a i , b i ] = [ 0 , 1 ] [a_i,b_i]=[0,1] [ai,bi]=[0,1]
      • E ( X ˉ ) = E ( 1 N ∑ i = 1 N L ( y i , f ( x i ) ) ) E(\bar X)=E(\frac1N\sum^N_{i=1}{L(y_i,f(x_i))}) E(Xˉ)=E(N1i=1NL(yi,f(xi)))
        = 1 N ∑ i = 1 N E ( L ( y i , f ( x i ) ) ) =\frac1N\sum^N_{i=1}E(L(y_i,f(x_i))) =N1i=1NE(L(yi,f(xi))) — —样本均值的期望等于样本期望的均值
        = 1 N ∑ i = 1 N E ( L ( Y , f ( X ) ) ) =\frac1N\sum^N_{i=1}E(L(Y,f(X))) =N1i=1NE(L(Y,f(X))) — —样本期望等于整体的期望
        = E ( L ( Y , f ( X ) ) ) = R ( f ) =E(L(Y,f(X)))=R(f) =E(L(Y,f(X)))=R(f) — —期望风险是L的期望值
        总的来说,就是样本均值的期望是等于整体的期望的
    • 因此对于 ε > 0 \varepsilon>0 ε>0 ,有:
      P ( R ( f ) − R ^ ( f ) ≥ ε ) < = e x p ( − 2 N ε 2 ) ) P(R(f)-\hat R(f)≥\varepsilon)<=exp(-2N\varepsilon^2)) P(R(f)R^(f)ε)<=exp(2Nε2)) 在这里插入图片描述

    • 因此等价于,对于任意的 f ∈ F f\in F fF ,有
      P ( R ( f ) − R ^ ( f ) < ε ) ≥ 1 − d e x p ( − 2 N ε 2 ) P(R(f)-\hat R(f)<\varepsilon)≥1-d exp(-2N\varepsilon^2) P(R(f)R^(f)<ε)1dexp(2Nε2)

    • δ = d   e x p ( − 2 N ε 2 ) \delta=d\,exp(-2N\varepsilon^2) δ=dexp(2Nε2) ,则至少以概率1-δ有 R ( f ) − R ^ ( f ) < ε R(f)-\hat R(f)<\varepsilon R(f)R^(f)<ε

7. 生成模型与判别模型

  • 监督学习的任务就是学习一个模型,应用这一模型,对给定的输入预测相应的输出。这一模型的一般形式为决策函数或者条件概率分布
  • 监督学习方法又可以分为生成方法(generative approach)和判别方法(discriminative approach),所学到的模型分别称为生成模型(generative model)和判别模型(discriminative model)

生成模型

  • 生成方法由数据学习联合概率分布P(X,Y),然后求出条件概率分布P(Y|X) 作为预测的模型,即生成模型
    P ( Y ∣ X ) = P ( X , Y ) P ( X ) P(Y|X)=\frac{P(X,Y)}{P(X)} P(YX)=P(X)P(X,Y)
  • 这样的方法之所以称为生成方法,是因为模型表示了给定输入 X 产生输出 Y 的生成关系
  • 典型的生成模型有:朴素贝叶斯法和隐马尔可夫模型

判别模型

  • 判别方法由数据直接学习决策函数 f ( ) X 或者条件概率分布 P(| ) Y X 作为预测的模型,即判别模型
  • 判别方法关心的是对给定的输入 X,应该预测什么样的输出Y
  • 典型的判别模型包括:k 近邻法、感知机、决策树、逻辑斯谛回归模型、最大熵模型、支持向量机、提升方法和条件随机场等

特点

  • 生成方法的特点:
    • 生成方法可以还原出联合概率分布 P(X, Y),而判别方法则不能
    • 生成方法的学习收敛速度更快,即当样本容量增加的时候,学到的模型可以更快地收敛于真实模型
    • 当存在隐变量时,仍可以用生成方法学习,此时判别方法就不能用
  • 判别方法的特点:
    • 判别方法直接学习的是条件概率 P(Y|X) 或决策函数 f(X),直接面对预测,往往学习的准确率更高
    • 由于直接学习P(Y|X) 或 f(X) ,可以对数据进行各种程度上的抽象、定义特征并使用特征,因此可以简化学习问题.

8. 分类问题

分类是监督学习的一个核心问题.在监督学习中,当输出变量Y 取有限个离散值时,预测问题便成为分类问题

  • 监督学习从数据中学习一个分类模型或分类决策函数,称为分类器(classifier).分类器对新的输入进行输出的预测(prediction),称为分类(classification).可能的输出称为类(class)

[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-tND5hlaV-1659429051240)(%E6%A6%82%E8%AE%BA%2063482b645c844fec94bbb1f9e36de160/Untitled%204.png)]

  • 评价分类器性能的指标一般是分类准确率(accuracy),其定义是:对于给定的测试数据集,分类器正确分类的样本数与总样本数之比.也就是损失函数是 0-1损失时测试数据集上的准确率
  • 对于二类分类问题常用的评价指标是精确率(precision)召回率(recall).通常以关注的类为正类,其他类为负类,分类器在测试数据集上的预测或正确或不正确,4 种情况出现的总数分别记作:
    TP——将正类预测为正类数;
    FN——将正类预测为负类数;
    FP——将负类预测为正类数;
    TN——将负类预测为负类数.
    精确率为 P = T P T P + F P P=\frac{TP}{TP+FP} P=TP+FPTP ,召回率为 R = T P T P + F N R=\frac{TP}{TP+FN} R=TP+FNTP
    此外还有F1值,是精确率和召回率的调和均值,即 2 F 1 = 1 P + 1 R \frac2{F_1}=\frac1P+\frac1R F12=P1+R1

9. 标注问题

**标注(tagging)也是一个监督学习问题.可以认为标注问题是分类问题的一个推广,标注问题又是更复杂的结构预测(structure prediction)**问题的简单形式

  • 标注问题的输入是一个观测序列,输出是一个标记序列或状态序列
    在这里插入图片描述

  • 标注问题在信息抽取、自然语言处理等领域被广泛应用,是这些领域的基本问题。常用的统计学习方法有:隐马尔可夫模型、条件随机场

10. 回归问题

回归(regression)是监督学习的另一个重要问题.回归用于预测输入变量(自变量)和输出变量(因变量)之间的关系,特别是当输入变量的值发生变化时,输出变量的值随之发生的变化.

  • 回归模型正是表示从输入变量到输出变量之间映射的函数.回归问题的学习等价于函数拟合:选择一条函数曲线使其很好地拟合已知数据且很好地预测未知数据
  • 回归问题按照输入变量的个数,分为一元回归和多元回归;
    按照输入变量和输出变量之间关系的类型即模型的类型,分为线性回归和非线性回归
  • 回归学习最常用的损失函数是平方损失函数,在此情况下,回归问题可以由著名的最小二乘法(least squares)求解
  • 1
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值