统计学习基础知识
文章目录
统计学习基础知识
- 统计学习种类
1.1 监督学习
1.1.1 分类问题
1.1.2 回归问题
1.2 非监督学习
- 统计学习中的基本概念
2.1 统计学习三要素:模型,策略,算法
2.2 欠拟合和过拟合
2.3 如何避免过拟合
2.3.1 从模型出发(交叉验证,AIC, BIC)
2.3.2 从策略出发(正则化)
2.3.3 从寻优出发(Early Stopping)
2.3.4 从数据出发(增加数据集)
2.4 过拟合产生的原因
2.5 最大似然估计和贝叶斯估计
2.5.1 贝叶斯定理
2.5.2 最大似然
2.5.3 贝叶斯估计
- 线性回归
3.1 经典线性回归
3.2 岭回归(ridge regression)
3.3 lasso回归和ElasticNet
- 线性分类
4.1 感知机
4.2 逻辑回归(logistic regression)
4.3 Softmax回归
4.4 广义线性模型
4.5 从另一个角度看逻辑回归
4.6 生成模型和判别模型
4.7 分类器评价标准
现在我们开始统计学习系列课程的学习,首先先给大家介绍一下统计学习的基础知识。
- 统计学习种类
统计学习一般分为两个主要类别:监督学习(predictive learning, supervised learning)以及非监督学习(descriptive learning, unsupervised learning),因为监督学习在实际中应用更为广泛,我们将主要精力放在监督学习上。
1.1 监督学习
监督学习的目标是在一个输入输出对的集合中(训练集)D={(x_i,y_i)}_{i=1}^ND=(xi,yi)i=1N学习一个从输入变量xx到输出变量(标签)yy的映射,NN是训练样本(采样)的数目。简单来看,x_ixi可以是一个向量,例如一个人的身高,体重等,复杂来看x_ixi可以是一张图片,一句话,一封邮件,一个时间序列等等。输出y_iyi可以是连续的,也可以是离散的,当y_iyi是连续的时,该学习问题被称为回归(regression)问题,当y_iyi是离散的时,该学习问题被称为分类(classification)问题。
1.1.1 分类问题
分类问题的输出在y\in\left{1,2,3,…,C\right}y∈{1,2,3,…,C}中取值,C=2C=2对应二分类问题,C>2C>2对应多分类问题。
例如:
这是一个二分类问题,左侧是形象化描述,方框中的训练集用图形展示,右侧是数据化描述,训练集用表格展示。训练数据有很多个形状和颜色,某些搭配是属于‘yes’类的,某些搭配是属于’no’类的,我们要推断新出现的蓝色的月亮,黄色的环和蓝色的箭头属于哪一类(泛化能力)
概率描述的必要性
因为新出现的蓝色的月亮,黄色的环和蓝色的箭头是在训练集中没有的,我们无法100%确定他们属于哪一类别,所以要引入概率来描述这种不确定性
用条件概率p(y|x,D,M)p(y∣x,D,M)来描述输出yy的概率分布,xx是新出现的输入,DD是训练集,MM是选择的模型,在上述例子中,p(yes|蓝色月亮,D,M)+p(no|蓝色月亮,D,M)=1p(yes∣蓝色月亮,D,M)+p(no∣蓝色月亮,D,M)=1。一般情况下,DD和MM都是确定的,所以条件概率也被简写为p(y|x)p(y∣x)。
给定输出条件概率,我们一般用取值最大的猜测作为新输入的推断(预测)输出\hat{y}y^:
\hat{y}=\hat{f}(x)=\mathop{\arg\max}_{c=1,2,…,C}p(y=c|x)y=f(x)=argmaxc=1,2,…,Cp(y=c∣x)
这对应着最可能的类别标签,也叫作p(y|x)p(y∣x)的众数。
一些实际应用
文本分类
xx是文本的一种结构化表示,文本分类是计算概率p(y=c|x)p(y=c∣x),一个特殊的应用是垃圾邮件过滤,其中y=1y=1代表垃圾邮件,y=0y=0代表非垃圾邮件
大部分分类学习算法要求输入向量xx是定长的,可以用bag of words的方式来表示变长的文档,基本思路是当词jj在文档ii中出现时x_{ij}=1xij=1,这样训练集就可以被结构化为一个binary的共现矩阵,在共现矩阵上可以应用各种分类算法来学习规律
图片分类
图片和文本都具备明显的局部性,通过挖掘这种局部性而诞生的算法框架称为卷积神经网络和循环神经网络,二者共同大力推动了AI从传统统计学习向深度学习的发展
1.1.2 回归问题
分类问题的输出yy是在一个连续的区间内取值,在推断时取后验概率分布的期望E(y|x)E(y∣x)。其应用例子包括:
预测某只股票第二天的最高股价
预测某篇文章接下去1小时的点击次数
预测一个机器人手臂在空中的位置
预测某个医院科室接下去一个月的就诊人数
回归问题和分类问题的主要区别不是输出的离散或者连续(就诊人数也可以认为是一个多分类问题),二者最主要的区别是对输出的分布假设不同,后续我们会涉及到。
1.2 非监督学习
非监督学习只有输入数据xx而没有输出yy,我们的目标是挖掘xx中感兴趣的信息,非监督学习有时也被称为知识发现,其代表就是聚类,主成分分析,关联分析,协同过滤,社区发现等。以聚类为例:小时候你在区分猫和狗的时候,别人和你说,这是猫,那是狗,最终你遇到猫或狗你都能区别出来(而且知道它是猫还是狗),这是监督学习的结果。但如果小时候没人教你区别猫和狗,不过你发现猫和狗之间存在差异,应该是两种动物(虽然能区分但不知道猫和狗的概念),这是无监督学习的结果。
聚类正是做这样的事,按照数据的特点,将数据划分成多个没有交集的子集(每个子集被称为簇)。通过这样的划分,簇可能对应一些潜在的概念,但这些概念就需要人为的去总结和定义了。
聚类可以用来寻找数据的潜在的特点,还可以用来其他学习任务的前驱。比如市场分割。也许你在数据库中存储了许多客户的信息,而你希望将他们分成不同的客户群,这样你可以对不同类型的客户分别销售产品或者分别提供更适合的服务。
聚类示意:
- 统计学习中的基本概念
让我们看看一个简单的案例,曲线拟合:
我们有如下的数据点,这个数据点是通过y=sin(2\pi x)y=sin(2πx)加上一些高斯噪声生成的
现在考虑一个关于xx的多项式拟合上述蓝颜色的点:
f(x,w)=w_0+w_1x+w_2x2+…+w_MxM=\sum_jw_jx^jf(x,w)=w0+w1x+w2x2+…+wMxM=j∑wjxj
虽然f(x,w)f(x,w)是关于xx的非线性函数,但是是关于参数ww的线性函数,这种和参数保持线性关系的模型被称为线性模型。
可以通过最小化f(x,w)f(x,w)和yy的差别来求解参数ww,其中一种是误差的平方和:
E(w)=\frac12\sum_n{f(x_n, w)-y_n}^2E(w)=21n∑{f(xn,w)−yn}2
因为E(w)E(w)是关于ww的二次函数,所以其导数是关于ww的一次函数,E(w)E(w)的最小值是唯一的,当数据量比较小时,可以通过最小二乘直接获得解析解,在数据量比较大时,一般通过梯度下降法来逼近这个解。
2.1 统计学习三要素:模型,策略,算法
模型: 在上述的曲线拟合问题中,线性函数f(x,w)f(x,w)就是模型,当然我们也可以选择其他的线性模型或者非线性模型,选择合适的模型是应用统计学习算法的第一步
策略: 有了模型,统计学习接着需要考虑的是按照什么样的准则学习最优的模型,在上述的曲线拟合问题中,误差平方和E(w)E(w)就是一个准则(策略,损失函数),其余的准则还有0-1损失函数,绝对值损失函数,对数损失函数等
算法: 有了准则,就要考虑在该准则的约束下如何寻找参数ww的最小值,最常用的就是梯度下降法或者同类别的基于梯度的算法(我更倾向于叫这一步为优化或者寻优,算法是一个比较泛的概念)
2.2 欠拟合和过拟合
上述模型,策略和算法都是针对模型的学习过程(拟合过程)的,而统计学习最终是要预测我们没有见过的样本(泛化能力),这里就涉及到一个在训练样本上的拟合程度的问题,是损失函数E(w)E(w)越小泛化能力越强吗?答案是不一定,还是考虑上述曲线拟合问题,当多项式的阶数MM不同时,拟合的效果如下:
可以看到在M=0M=0和M=1M=1时,模型未能很好的拟合训练集的散点,在M=3M=3时看起来还不错,在M=9M=9时拟合的程度最好,事实上,在M=9M=9时,可以做到E(w)=0E(w)=0(思考一下为什么),但在M=9M=9时,拟合出来的曲线和真正的数据分布的曲线y=sin(2\pi x)y=sin(2πx)相去甚远,当有一个新的数据点出现时,例如在左边的第一个和第二个点之间,预测曲线会给出一个非常差的预测结果,此时称为模型过拟合。而在M=0M=0和M=1M=1时,称为欠拟合。
2.3 如何避免过拟合
2.3.1 从模型出发(交叉验证,AIC, BIC)
从曲线拟合问题的直观上来看,我们可以选择复杂度较低的模型,例如M=3M=3。那么在面对一般化的问题时,该如何选取合适复杂度的模型呢?可以从训练的数据集中抽出一部分,作为验证集,验证集不参与训练,但是能够作为一个假的测试集来验证模型是欠拟合还是过拟合。
分割训练集和验证集,也是比较主观的,如果分割的不合适,可能也对选出的模型泛化能力有负面作用,另外,训练数据是比较珍贵的,扔掉一部分数据是比较可惜的,所以会采取利用全部数据的交叉验证(cross validation)的方式:
上图描述的是1010折交叉验证,常用的还有33折,55折,NN折(NN为样本数量)交叉验证,NN折交叉验证也称为留一交叉验证(leave one out cross validation),交叉验证选择在验证集上平均误差最低的模型。交叉验证也存在一些缺陷,当模型比较复杂时,要训练和测试多次,尤其当可选择的模型范围很大时,训练和测试的次数会成指数级增加。但交叉验证仍然是在数据集有限的情况下最常用也是最好用的避免过拟合的方式之一。
此外,还有计算量相对较小的AICAIC和BICBIC准则,AICAIC由日本统计学家赤池弘次在1974年提出,$BIC$1978年由Schwarz提出。他们提供了权衡估计模型复杂度和拟合数据优良性的标准。
AIC准则的其中一种表达式为:
AIC=k+E(w)AIC=k+E(w)
BIC准则的其中一种表达式为:
BIC=kln(N)+E(w)BIC=kln(N)+E(w)
其中kk代表模型参数的个数,NN代表训练集样本数目。通常AICAIC或BICBIC的取值越小,模型泛化能力越强。
2.3.2 从策略出发(正则化)
在参数取值图中,我们可以看到,M=9M=9的多项式模型的参数取值和波动非常大,虽然这个模型有很强的能力来拟合训练集。而在M=3M=3时,参数是在一个相