统计学习(statistical learning)是关于计算机基于数据构建概率统计模型并运用模型对数据进行预测和分析的一门学科。统计学习也称为统计机器学习(statistial machine learning)。统计学习分为监督学习,非监督学习,半监督学习和强化学习。本文内容以监督学习为主。
实现统计学习方法的步骤如下:
1) 得到一个有限的训练数据集合;
2) 确定包含所有可能的模型的假设空间,即学习模型的集合;
3) 确定模型选择的准则,即学习的策略;
4) 实现求解最优模型的算法,即学习的算法;
5) 通过学习方法选择最优模型;
6) 利用学习的最优模型对新数据进行预测或分析

监督学习

输入空间 & 特征空间 & 输出空间

在监督学习中,将输入与输出所有可能取值的集合分别称为输入空间输出空间。输入空间与输出空间可以是无限元素的集合,也可以是整个欧式空间,输入空间与输出空间可以是同一个空间,也可以是不同的空间,但通常输出空间远远小于输入空间。
每个具体的输入就是一个实例,通常有特征向量表示,所有特征向量存在的空间称为特征空间。特征空间的每一维对应一个特征,模型实际上都是定义在特征空间上的。
监督学习从训练数据集合中学习模型,对测试数据进行预测,训练数据由输入与输出对(样本/样本点)组成。输入输出变量可以是连续的,也可以是离散的,根据不同类型建立不同模型,输出变量为连续变量时,预测问题为回归问题;输出变量为离散变量时,预测问题为分类问题;输入与输出均为变量序列的预测问题为标注问题

统计学习三要素

统计学习方法由三要素构成:方法=模型+策略+算法

1. 模型

在监督学习中,模型是所要学习的条件概率分布或决策函数。模型的假设空间包含所有可能的条件概率分布或决策函数。参数向量θθ\theta取值于n维欧式空间RnRnR^n,称为参数空间,假设空间F通常是由一个参数向量决定的函数族:

F={f|Y=fθ(X),θ∈R∗}F={f|Y=fθ(X),θ∈R∗}

F={\{f|Y=f_{\theta}(X),\theta \in R^*\}}
假设空间也可以定义为条件概率的集合

F={P|Pθ(Y|X),θ∈R∗}F={P|Pθ(Y|X),θ∈R∗}

F={\{P|P_{\theta}(Y|X),\theta \in R^*\}}

策略

1) 损失函数和风险函数

监督学习中需要用一个损失函数(loss function)或代价函数(cost function)来度量预测错误的程度,常用的损失函数有以下几种:

  • 0-1损失函数(0-1 loss function)

    L(Y,f(X))={1, Y≠f(X)0, Y=f(X)L(Y,f(X))={1,Y≠f(X)0,Y=f(X)

    L(Y,f(X))=\begin{cases} 1,\ Y \neq f(X)\\ 0,\ Y=f(X)\\ \end{cases}

  • 平方损失函数(quadratic loss function)

    L(Y,f(X))=(Y−f(X))2L(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,P(Y|X))=−logP(Y|X)L(Y,P(Y|X))=−logP(Y|X)

    L(Y,P(Y|X))=-logP(Y|X)

期望风险

损失函数值越小,模型就越好。由于模型的输入,输出是随机变量,遵循联合分布P(X,Y),所以损失函数的期望是

Rexp(f)=Ep[L(Y,f(X))]=∫x×yL(y,f(x))P(x,y)dxdyRexp(f)=Ep[L(Y,f(X))]=∫x×yL(y,f(x))P(x,y)dxdy

R_{exp}(f)=E_p[L(Y,f(X))]=\int_{x \times y}L(y,f(x))P(x,y)dxdy
理论上f(X)关于联合分布P(X,Y)的平均意义下的损失,称为风险函数(risk function)或期望损失(expected loss)

经验风险

给定一个训练数据集,模型f(X)关于训练数据集的平均损失称为经验风险(empirical risk)或经验损失(empirical loss):

Remp(f)=1N∑i=1NL(yi,f(xi))Remp(f)=1N∑i=1NL(yi,f(xi))

R_{emp}(f)= \frac{1}{N}\sum_{i=1}^NL(y_i,f(x_i))

监督学习的目标就是选择期望风险最小的模型,由于联合分布P(X,Y)是未知的,无法得到真实的期望风险。经验风险是模型关于训练样本集的平均损失,根据大数定理,当样本容量N趋于无穷时,经验风险趋于期望风险。所以一个很自然的想法是用经验风险估计期望风险,但是由于现实中训练样本数目有限,甚至很小,所以用经验风险估计期望风险常常不理想,需要对经验风险进行一定的矫正。

2)经验风险最小化与结构风险最小化

  • 经验风险最小化(empirical risk minimization,ERM)
    经验风险最小化的策略认为,经验风险最小的模型是最优的模型。

    minf∈F1N∑i=1NL(yi,f(xi))minf∈F1N∑i=1NL(yi,f(xi))

    min_{f \in F} \frac{1}{N}\sum_{i=1}^NL(y_i,f(x_i))
    当样本容量足够大时,经验风险最小化能保证有很好的学习效果,在现实中被广泛引用。比如当模型时条件概率分布,损失函数是对数损失函数时,经验风险最小化就等于极大似然估计
    当样本容量很小时,经验风险最小化学习的效果就未必很好,会产生“过拟合”的现象。

  • 结构经验最小化(structural risk minimization,SRM)是为了防止过拟合而提出来的策略,结构风险最小化等价于正则化(regularization)。结构风险在经验风险基础上加上表示模型复杂度的正则化项或罚项。在假设空间,损失函数以及训练数据确定的情况下,结构风险的定义是

    Rsrm(f)=1N∑i=1NL(yi,f(xi))+λJ(f)Rsrm(f)=1N∑i=1NL(yi,f(xi))+λJ(f)

    R_{srm}(f)=\frac{1}{N}\sum_{i=1}^N{L(y_i,f(x_i))}+\lambda J(f)
    其中J(f)是模型的复杂度,是定义在假设空间F上的泛函。模型f越复杂,复杂度J(f)就越大,反之越小。λ≥0λ≥0\lambda \geq 0是系数,用以衡量经验风险和模型复杂度。

结构风险小需要经验风险和模型复杂度同时小,结构风险小的模型往往对训练数据以及未知的测试数据都有较好的预测。比如贝叶斯估计,模型时条件概率分布,损失函数是对数损失函数,模型复杂度由模型的先验概率表示是,结构风险最小化就等价于最大后验概率估计(MAP)

2. 算法

算法是指学习模型的具体计算方法,以求解最优模型。如果最优化问题有显式的解析解,这个最优化问题比较简单,但是通常解析解不存在,这就需要用数值计算的方法求解。如何保证找到全局最优解,并使求解的过程高效,是需要考虑的一个重要问题。

3. 模型评估与模型选择

基于损失函数的模型的训练误差和模型的测试误差是评估学习方法效果的重要标准。

过拟合

过拟合(over-fitting)是指学习时选择的模型所包含的参数过多,以至于出现这一模型对已知数据预测的很好,但对于未知数据的预测很差的现象。
模型选择旨在避免过拟合并提高模型的预测能力。

模型选择方法

1)正则化

模型选择的典型方法是正则化,正则化是结构风险最小化策略的实现,是在经验风险上加一个正则化项,正则化项一般是模型复杂度的单调递增函数,模型越复杂,正则化值越大。正则化项可以取不同的形式:

  • L1范数

    L(w)=1N∑i=1N(f(xi;w)−yi)2+λ2||w||1L(w)=1N∑i=1N(f(xi;w)−yi)2+λ2||w||1

    L(w)=\frac{1}{N}\sum_{i=1}^N{(f(x_i;w)-y_i)^2}+\frac{\lambda}{2}||w||_1

  • L2范数

    L(w)=1N∑i=1N(f(xi;w)−yi)2+λ2||w||2L(w)=1N∑i=1N(f(xi;w)−yi)2+λ2||w||2

    L(w)=\frac{1}{N}\sum_{i=1}^N{(f(x_i;w)-y_i)^2}+\frac{\lambda}{2}||w||^2

2)交叉验证

另一种常用的模型选择方法是交叉验证(cross validation)。
如果给定的样本数据充足,进行模型选择的一种简单方法是随机将数据集切分成三部分:训练集,验证集和测试集。训练集用于训练模型,验证集用于模型的选择,测试集用于最终对学习方法的评估。
如果给定的样本数据不充足,使用交叉验证的方法需要重复使用数据,进行数据切分。

  • 简单交叉验证

    • 随机将已给数据分为两部分:训练集和测试集(一般比例为7:3);
    • 用训练集在各种条件下(如不同参数设置)训练模型,得到不同的模型;
    • 在测试集上评价各个模型的测试误差,选出误差最小的模型
  • S折交叉验证
    应用最多的是S折交叉验证:

    • 随机将已给数据切分为S个互不相交的大小相同的子集
    • 利用S-1个子集的数据训练模型,利用剩余的子集测试模型
    • 这一过程可能有S中选择重复进行,最后给出S次评测中平均测试误差最小的模型
  • 留一交叉验证
    S折交叉验证的特殊情况是S=N,N为给定数据集的容量,即1个数据一份样本,该方法称为留一交叉验证(leave-one-out cross validation)

泛化能力(generalization ability)

泛化误差

学习方法的泛化能力是指由该方法学习到的模型对未知数据的测试能力,是学习方法本质上重要的性质。采用最多的方法是通过测试误差来评价学习方法的泛化能力。但这种方法是依赖于测试数据集的,因为测试数据集有限,很可能由此得到的评价结果是不可靠的。统计学习理论从理论上对学习方法的泛化能力进行分析。
定义学习到的模型f^f^\hat{f},则用这个模型对未知数据预测的误差即为泛化误差

Rexp(f^)=Ep[L(Y,f^(X))]=∫X×yL(y,f^(x))P(x,y)dxdyRexp(f^)=Ep[L(Y,f^(X))]=∫X×yL(y,f^(x))P(x,y)dxdy

R_{exp}(\hat{f})=E_p[L(Y,\hat{f}(X))]=\int_{X \times y}L(y,\hat{f}(x))P(x,y)dxdy
泛化误差反映了学习方法的泛化能力,从上式可以见得泛化误差就是所学习到的模型的期望风险。

泛化误差上界

泛化误差的上界通常具有以下性质:
- 它是样本容量的函数,当样本容量增加时,泛化上界趋于0
- 它是假设空间容量的函数,假设空间容量越大,模型就越难学,泛化误差上界就越大。
【定理】
对二类分类问题,当假设空间是有限个函数的集合F=f1,f2,...,fdF=f1,f2,...,fdF={f_1,f_2,...,f_d}时,对任意一个函数f∈Ff∈Ff \in F,至少以概率1−δ1−δ1-\delta,以下不等式成立:

R(f)≤R^(f)+ϵ(d,N,δ)R(f)≤R^(f)+ϵ(d,N,δ)

R(f)\leq \hat{R}(f)+\epsilon (d,N,\delta)
其中 ϵ(d,N,δ)=12N(logd+log1δ)−−−−−−−−−−−−−√ϵ(d,N,δ)=12N(logd+log1δ)\epsilon (d,N,\delta)=\sqrt{\frac{1}{2N}(logd+log\frac{1}{\delta})}

不等式左边是泛化误差,右边是泛化误差的上界,其中第1项是训练误差,训练误差越小,泛化误差也越小;第2项是N的单调递减函数,当N趋于无穷时趋于0,同时它也是logd−−−−√logd\sqrt{logd}阶的函数,假设空间F包含的函数越多,其值越大。

生产模型与判别模型

监督学习方法又可以分为生成方法和判别方法,所学到的模型分别称为生成模型和判别模型。

  • 生成模型
    生成方法由数据学习联合概率分布P(X,Y),然后求出条件概率分布P(Y|X)作为预测的模型,即生成模型:

    P(Y|X)=P(X,Y)P(X)P(Y|X)=P(X,Y)P(X)

    P(Y|X)=\frac{P(X,Y)}{P(X)}
    因为模型给定的输入X产生输出Y是生成关系,故叫做生成方法/模型,典型的生成模型有朴素贝叶斯法和隐式马尔科夫模型

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

【对比】

生成方法 判别方法
可以还原联合概率分布P(X,Y)P(X,Y)P(X,Y) 不可以还原P(X,Y)P(X,Y)P(X,Y)
学习收敛速度更快,样本容量增加时更快收敛 学习条件概率P(Y|X)P(Y|X)P(Y|X)或决策函数,直接面对预测,学习的准确率更高
存在隐变量时,仍可以用生成方法学习 可以对数据进行各种程度的抽象、定义特征并使用特征,隐变量除外

三大类问题

1. 分类问题

分类是监督学习的一个核心问题,当输出变量Y取有限个离散值时,预测问题即为分类问题。输出的分类可以是两个或多个,对应二分类或多分类问题。输入变量可以是离散的,也可以是连续的,监督学习从数据中学习一个分类模型或分类决策函数,称为分类器。
对于二分类问题,评价分类器性能的指标一般是分类准确率(accuracy),常用的评价指标是精确率(precision)和召回率(recall):

  • 精确率 P=TPTP+FPP=TPTP+FPP=\frac{TP}{TP+FP}
  • 召回率 R=TPTP+FNR=TPTP+FNR=\frac{TP}{TP+FN}
  • F值 F=11P+1R=2TP2TP+FP+FNF=11P+1R=2TP2TP+FP+FNF=\frac{1}{\frac{1}{P}+\frac{1}{R}}=\frac{2TP}{2TP+FP+FN}
  • TP 将正类预测为正类数
  • FN 将正类预测为负类数
  • FP 将负类预测为正类数
  • TN 将负类预测为负类数

2. 标注问题

标注(tagging)也是一个监督学习问题,可以认为标注问题是分类问题的一个推广,标注问题又是更复杂的结构预测问题的简单形式,标注问题的输入是一个观测序列,输出是一个标记序列或状态序列。标注问题的目标在于学习一个模型,使它能够对观测序列给出标记序列作为预测。评价指标与分类模型一样,常用的方法由隐马尔可夫模型,条件随机场。
标注问题在信息抽取,自然语言处理等领域被广泛应用,是这些领域的基本问题。如给定一个由单词组成的句子,对句中每一个单词进行词性标注,即对一个单词序列预测其对应的词性标记序列。

3. 回归问题

回归用于预测输入变量与输出变量之间的关系,特别是当输入变量的值发生变化时,输出变量的值随之发生的变化。回归模型是表示输入变量到输出变量之间映射的函数,等价于函数拟合(选择一条函数曲线使其更好地拟合已知数据且很好地预测未知数据)
回归问题按照输入变量的个数分为一元回归和多元回归;按输入变量和输出变量的关系分为线性回归和非线性回归。回归最常用的损失函数是平方损失函数。

机器学习(统计学习方法)基础知识相关推荐

  1. 机器学习算法的基础知识

    机器学习算法的基础知识 1.评估指标 2.偏差与方差(过拟合与欠拟合) 3.正则化(解决过拟合) 4.梯度下降算法(算法优化方式) 5.数据不平衡 1.评估指标 预测值 0 1 实际 0 TN FP ...

  2. 笔记|李沐-动手学习机器学习|CNN基础知识(视频19-23)

    李沐-动手学习机器学习|CNN基础知识 卷积层(视频19) 从全连接到卷积(卷积算子) 进行图像识别的两个原则 如何从全连接层出发,应用以上两个原则,得到卷积 卷积层 二维交叉相关 二维卷积层 交叉相 ...

  3. 数据分析面试之统计的基础知识(持续更新)

    数据分析面试系列 统计的基础知识-1 1.概率知识点回顾 概率: 发生事件A的概率 P(A) = 发生事件A的数目 / 所有结果的数目 概率= 用数值来表示某件事发生的可能性 先验概率与后验概率: [ ...

  4. 机器学习需要哪些基础知识?

    机器学习需要一些基础知识,包括以下几个方面: 机器学习需要哪些基础知识? 数学基础:机器学习涉及到很多数学知识,如线性代数.微积分.概率论和统计学等.这些数学知识是理解和应用机器学习算法的基础. 编程 ...

  5. 机器学习——统计学习方法——第1章 统计学习及监督学习概论

    监督学习是从标注数据中学习模型的机器学习问题,是统计学习的重要组成部分. 1.1 统计学习 统计学习的特点 统计学习是关于计算机基于数据构建概率统计模型并运用模型对数据进行预测与分析的一门学科. 特点 ...

  6. 统计学习方法基础总结

    统计学习 统计学习:也称统计机器学习,是计算机基于数据构建概率统计模型,并用模型进行预测与分析的一门学科. 数据是统计学习的对象.统计学习关于数据的基本假设是同类数据具有一定的统计规律性,这是统计学习 ...

  7. Python机器学习引言与基础知识储备

    第一部分 机器学习入门 机器学习入门 第一部分 机器学习入门 1.1 为什么选择机器学习 1.1.1 机器学习能够解决的问题 1.1.2 熟悉任务和数据 1.2 为什么选择Python 1.3 sci ...

  8. 概率论与统计的基础知识(概率空间、最基本的分布、数字特征)

    了解最基础的概率论知识,参考来自<概率导论>和<波利亚罐子模型的相关分布> 1    样本空间与概率 1.2概率模型 1.2.1 样本空间和事件 每个概率模型对应一个试验,这个 ...

  9. 机器学习笔记-时间序列基础知识

    前言   本章不会对时间序列所有的内容进行一个全方位的介绍,只会简单的整理部分时间序列的基础知识点. 时间序列的成分 时间序列:按时间顺序记录的一组数据,称为时间序列   而一条时间序列通常可以分解为 ...

  10. 概率统计相关基础知识

    概率编辑[gài lǜ] 概率,又称或然率.机会率.机率或可能性,是概率论的基本概念.概率是对随机事件发生的可能性的度量,一般以一个在0到1之间的实数表示一个事件发生的可能性大小.越接近1,该事件更 ...

最新文章

  1. 【Kuangbin 带你飞系列】 基础dp
  2. Ansible — 编程 — 条件与循环
  3. solrcloud replica collection core shard slice 概念讲解
  4. 信息学奥赛一本通(1201:菲波那契数列)
  5. 思考一下http.ListenAndServe + echo+gorm+xorm的可行性?
  6. grub2配置原理分析
  7. android log长字符串显示不全,如何解决Android的Log显示不全的问题
  8. 【链表递归构造二叉树】LeetCode 109. Convert Sorted List to Binary Search Tree
  9. 瑞利信道:从原理到实现
  10. TDA4VM芯片手册阅读笔记
  11. ESP8266 NodeMCU驱动OLED屏(SSD1306,4PIN,IIC)
  12. 你会用微信付款码支付吗?一定要打开这个设置,保障你资金安全
  13. linux文件压缩和打包
  14. 笔记本电脑WLAN突然没有了(连不上wifi)
  15. Matlab一个错误引发的血案:??? Error using == str2num Requires string or character array input....
  16. Javaweb后端技术(下)02-Mybatis
  17. 行为设计模式:中介者模式
  18. myeclipse中java.lang.OutOfMemoryError: PermGen space
  19. Linux基本指令总结
  20. 魂行道 之 湖滨鬼舍

热门文章

  1. tomcat下载安装步骤(超详细)
  2. 使用java下载东西如何优化下载网速
  3. 软件测试自学指南---从入门到精通V1.0
  4. 关于PCB板设计中电阻电容等封装的选择
  5. 北大 宾州树库 语料标注集
  6. 软件评测师考试介绍及经验分享
  7. ASP.NET 2.0 探针
  8. 抓虫记之八:每天崩溃的服务器
  9. If,for,range混合使用笔记-(VBA视频教程2:使用IF进行逻辑判断)
  10. h5页面如何切图_HTML5自助切图