这一系列的博客是对李航老师的《统计学习方法》的总结,算是个人的学习笔记吧,因为刚刚接触机器学习,对一些知识的理解可能会不到位,若有不严谨的地方,欢迎大家纠正,一起交流。
文章目录
什么是统计学习
-
统计学习是关于计算机基于数据构建概率统计模型并运用模型对数据进行分析与预测的一门学科。统计学习就是计算机系统通过运用数据及统计方法提高系统性能的机器学习。当前提及的机器学习,往往指统计机器学习。
-
统计学习的对象是数据。它从数据出发,提取数据的特征,抽象出数据的模型,发现数据中的知识,又回到对数据的分析与预测中去。统计学习关于数据的基本假设是同类数据具有一定的统计规律性,这是统计学习的前提。在统计学习的过程中,以变量或变量组表示数。数据分为由连续变量和离散变量表示的类型。
-
统计学习用于对数据进行预测与分析,通过构建概率统计模型实现。统计学习总的目标就是考虑学习什么样的模型和如何学习模型,以使模型能对数据进行准确的预测与分析,同时也要考虑尽可能地提高学习效率。
-
统计学习的方法包括监督学习、半监督学习、无监督学习、强化学习。
-
实现统计学习方法的步骤如下:
(1)得到一个有限的训练数据集合。
(2)确定包含所有可能的模型的假设空间,即学习模型的集合。
(3)确定模型选择的准则,即学习的策略。
(4)实现求解最优模型的算法,即学习的算法。
(5)通过学习方法选择最优模型。
(6)利用学习的最优模型对新数据进行预测和分析。
- 监督学习是使用已知正确答案的示例来训练网络的。例如,我们可以训练一个网络,让其从照片库中(其中包含你父母的照片)识别出你父母的照片。
- 无监督学习适用于你具有数据集但无标签的情况。无监督学习采用输入集,并尝试查找数据中的模式。例如,将其组织成群(聚类)或查找异常值(异常检测)。例如,如果你是一个T恤制造商,拥有一堆人的身体测量值。那么你可能就会想要有一个聚类算法,以便将这些测量组合成一组集群,从而决定你生产的XS,S,M,L和XL号衬衫该有多大。
- 半监督学习在训练阶段结合了大量未标记的数据和少量标签数据。与使用所有标签数据的模型相比,使用训练集的训练模型在训练时可以更为准确,而且训练成本更低。
- 强化学习是针对你再次没有标注数据集的情况而言的,但你还是有办法来区分是否越来越接近目标(回报函数(reward function))。例如,我们常玩的猜数字游戏,当我们每猜一次数字时,都会得到一个反馈,告诉我们是猜大了还是猜小了,从而使下次的猜测更加逼近正确结果。
监督学习
监督学习的任务是学习一个模型,使模型能够对任意给定的输入,对其相应的输出做出一个好的预测。计算机的基本操作就是给定一个输入产生一个输出,所以监督学习是极其重要的统计学习分支。
基本概念
输入空间与输出空间:
在监督学习中,将输入与输出所有可能取值的集合分别称为输入空间与输出空间。输入与输出空间可以是有限元素的集合,也可以是整个欧氏空间。输入空间与输出空间可以是同一个空间,也可以是不同的空间。但通常输出空间远远小于输入空间。
特征空间:
每个具体的输入是一个实例,通常由特征向量表示。这时,所有特征向量存在的空间称为特征空间。特征空间的每一维对应于一个特征。
监督学习从训练数据集合中学习模型,对测试数据进行预测。训练数据由输入与输出对组成,训练集通常表示为
T = {(x1,y1),(x2,y2),…,(xn,yn)}
测试数据也由相应的输入与输出对组成。输入与输出对又称为样本或样本点。
输入变量X和输出变量Y有不同的类型,可以是连续的,也可以是离散的。人们根据输入、输出变量的不同类型,对预测任务给予不同的名称:输入变量与输出变量均为连续变量的预测问题成为回归问题;输出变量为有限个离散变量的预测问题称为分类问题;输入变量与输出变量均为变量序列的预测问题称为标注问题。
联合概率分布:
监督学习假设输入与输出的随机变量X和Y遵循联合概率分布P(X,Y)。P(X,Y)表示分布函数,或分布密度函数。训练数据与测试数据被看作是依联合概率分布P(X,Y)独立同分布产生的。统计学习假设数据存在一定的统计规律,X和Y具有联合概率分布的假设就是监督学习关于数据的基本假设。
假设空间:
监督学习的目的在于学习一个由输入到输出的映射,这一映射由模型来表示。学习的目的就在于找到最好的这样的模型。模型属于由输入空间和输出空间的映射的集合,这个集合就是假设空间。假设空间的确定意味着学习范围的确定。
监督学习的模型可以是概率模型或非概率模型,由条件概率分布P(X|Y)或决策函数Y=f(X)表示,随具体学习方法而定。
统计学习的三要素
统计学习方法都是由模型、策略、算法构成,即 方法=模型+策略+算法。
模型
统计学习首要考虑的问题是学习什么样的模型。在监督学习过程中,模型就是所要学习的条件概率分布或决策函数。模型的假设空间包含所有可能的条件概率分布或决策函数。例如,假设决策函数是输入变量的线性函数,那么模型的假设空间就是所有这些线性函数构成的函数集合。假设空间中的模型一般有无穷多个。
策略
有了模型的假设空间,统计学习接着需要考虑的是按照什么样的准则学习或选择最优的模型。统计学习的目标在于从假设空间中选取最优模型。因此,引入了损失函数和风险函数的概念。
损失函数度量模型一次预测的好坏,风险函数度量平均意义下模型预测的好坏。
损失函数:
用一个损失函数(loss function)或代价函数(cost function)来度量预测错误的程度。损失函数是f(X)和Y的非负实值函数,记作L(Y,f(X)).
统计学习的常用的损失函数:
- 0-1损失函数
- 平方损失函数
- 绝对损失函数
- 对数损失函数
损失函数数值越小,模型就越好。
风险函数:
模型f(X)关于联合分布P(X,Y)的平均意义下的损失,称为风险函数或期望损失。
学习的目标就是选择期望风险最小的模型。在实际的问题中,其实联合概率分布P(X,Y)是未知的,所以期望风险不能直接计算出。因此,又引入了经验风险或经验损失的概念。
给定一个训练数据集
模型f(X)关于训练数据集的平均损失称为经验风险或经验损失,记作:
期望风险是模型关于联合分布的期望损失,经验风险是模型关于训练样本集的平均损失。根据大数定律,当样本容量N趋于无穷时,经验风险趋于期望风险(个人的理解,根据已知独立同分布的条件,这里的大数定律应该指的是辛钦大数定律)。
所以一个很自然的想法是用经验风险估计期望风险。但是,由于现实中训练样本数目有限,甚至很小,所以用经验风险估计期望风险常常并不理想,要对经验风险进行一定的矫正。这就关系到监督学习的两个基本策略:经验风险最小化和结构风险最小化。
经验风险最小化:
经验风险最小化的策略认为,经验风险最小的模型是最优的模型。根据这一策略,按照经验风险最小化求最优模型就是求解最优化的问题:
当样本容量足够大时,经验风险最小化能保证有很好的学习效果,在现实中被广泛采用。但是,当样本容量很小时,经验风险最小化学习的效果未必很好,会产生过拟合现象(后面会介绍)。
结构风险最小化:
结构风险最小化是为了防止过拟合而提出来的策略。结构风险最小化等价于正则化(后面会介绍)。结构风险在经验风险上加上表示模型复杂度的正则化项或罚项。在假设空间、损失函数以及训练数据集确定的情况下,结构风险的定义是:
结构风险最小化的策略认为结构风险最小的模型是最优的模型。所以求最优模型,就是求解最优化问题:
这样,监督学习问题就变成了经验风险或结构风险函数的最优化问题。这时经验或结构风险函数是最优化的目标函数。
算法
算法是指学习模型的具体计算方法。统计学习基于训练数据集,根据学习策略,从假设空间中选择最优模型,最后需要考虑用什么样的计算方法求解最优模型。这时,统计学习问题归结为最优化问题,统计学习的算法成为求解最优化问题的算法。
模型评估与模型选择
训练误差与测试误差
统计学习的目的是使学到的模型不仅对已知数据而且对未知数据都能有很好的预测能力。不同的学习方法会给出不同的模型。当损失函数给定时,基于损失函数的模型的训练误差和模型的测试误差就自然成为学习方法评估的标准。
训练误差:
训练误差是模型关于训练数据集的平均损失,
测试误差:
测试误差是模型关于测试数据集的平均损失,
N`是测试样本的容量。
测试误差小的方法具有更好的预测能力,是更有效的方法。通常将学习方法对未知数据的预测能力称为泛化能力(后面会介绍)。
过拟合与模型选择
如果一味追求提高对训练数据的预测能力,所选模型的复杂度则往往会比真模型更高。这种现象称为过拟合。过拟合是指学习时选择的模型所包含的参数过多,以至于出现这一模型对已知数据预测的很好,但对未知数据预测的很差的现象。
这是因为训练数据本身存在噪声,对训练数据过度拟合对未知数据的预测能力往往并不是最好的,在实际学习中并不可取。
模型选择时,不仅要考虑对已知数据的预测能力,而且还要考虑对未知数据的预测能力。
正则化与交叉验证
正则化
模型选择的典型方法是正则化。正则化是结构风险最小化策略的实现,是在经验风险上加一个正则化项或罚项。正则化项一般是模型复杂度的单调递增函数,模型越复杂,正则化值就越大。比如,正则化项可以是模型参数向量的范数。
正则化一般具有如下形式:
交叉验证
另一种常用的模型选择方法是交叉验证。
如果给定的样本数据充足,进行模型选择的一种简单方法是随机地将数据集切分成三部分,分别为训练集、验证集和测试集。训练集用来训练模型,验证集用于模型的选择,而测试集用于最终对学习方法的评估。在学习到的不同复杂度的模型中,选择对验证集有最小预测误差的模型。由于验证集有足够多的数据,用它对模型进行选择也是有效的。
但是,在许多实际应用中数据是不充足的。为了选择好的模型,可以采用交叉验证方法。交叉验证的基本想法是重复地使用数据;把给定的数据进行切分,将切分的数据集组合为训练集与测试集,在此基础上反复地训练、测试以及模型选择。
1.简单交叉验证
首先随机地将已给数据分为两部分,一部分作为训练集,另一部分作为测试集;然后用训练集在各种条件下(例如,不同的参数个数)训练模型,从而得到不同的模型;在测试集上评价各个模型的测试误差,选出测试误差最小的模型。
2.S折交叉验证
首先随机地将已给数据切分为S个互不相交的大小相同的子集;然后利用S-1个子集的数据训练模型,利用余下的子集测试模型;将这一过程可能的S种选择重复进行;最后选出S次评测中平均测试误差最小的模型。
3.留一交叉验证
S折交叉验证的特殊情况是S=N,称为留一交叉验证,往往在数据缺乏的情况下使用。这里,N是给定数据集的容量。
泛化能力
泛化误差
学习方法的泛化能力是指由该方法学习到的模型对未知数据的预测能力,是学习方法本质上重要的性质。现实中采用最多的办法是通过测试误差来评价学习方法的泛化能力。但这种评价是依赖于测试数据集的。因为测试数据集是有限的,很有可能由此得到的评价结果是不可靠的。统计学习理论试图从理论上对学习方法的泛化能力进行分析。
泛化误差反映了学习方法的泛化能力。事实上,泛化误差就是所学习到的模型的期望风险。
泛化误差上界
学习方法的泛化能力分析往往是通过研究泛化误差的概率上界进行的,简称为泛化误差上界。具体来说,就是通过比较两种学习方法的泛化误差上界的大小来比较它们的优劣。泛化误差上界通常具有以下性质:它是样本容量的函数,当样本容量增加时,泛化上界趋于0;它是假设空间容量的函数,假设空间容量越大,模型就越难学,泛化误差上界就越大。
生成模型与判别模型
监督学习方法又可以分为生成方法和判别方法。所学到的模型分别称为生成模型和判别模型。
生成方法由数据学习联合概率分布P(X,Y),然后求出条件概率分布P(Y|X)作为预测的模型,即生成模型:
这样的方法之所以称为生成方法,是因为模型表示了给定输入X产生输出Y的生成关系。典型的生成模型有:朴素贝叶斯法和隐马尔可夫模型等。
判别方法由数据直接学习决策函数f(X)或者条件概率分布P(X|Y)作为预测的模型,即判别模型。判别方法关心的是对给定的输入X,应该预测什么样的输出Y。
典型的判别模型包括:k近邻法、感知机、决策树、逻辑斯谛回归模型、最大熵模型、支持向量机、提升方法和条件随机场等。
在监督学习中,生成方法和判别方法各有优缺点,适合于不同条件下的学习问题。
生成方法的特点:生成方法可以还原出联合概率分布P(X,Y),而判别方法则不能;生成方法的学习收敛速度更快,即当样本容量增加的时候,学到的模型可以更快地收敛于真实模型;当存在隐变量时,仍可以用生成方法学习,此时判别方法则不能。
判别方法的特点:判别方法直接学习的是条件概率P(Y|X)或决策函数f(X),直接面对预测,往往学习的准确率更高;由于直接学习P(Y|X)或f(X),可以对数据进行各种程度上的抽象、定义特征并使用特征,因此可以简化学习的问题。
分类问题
在监督学习中,当输出变量Y取有限个离散值时,预测问题便成为分类问题。这时,输入变量X可以是离散的,也可以是连续的。
监督学习从数据中学习一个分类模型或分类决策函数,称为分类器。分类器对新的输入进行输出的预测,称为分类。可能的输出称为类。分类的类别为多个时,称为多类分类问题。
举例:文本分类。文本分类是根据文本的特征将其划分到已有的类中。输入时文本的特征向量,输出是文本的类别。
标注问题
标注问题的输入是一个观测序列,输出是一个标记序列或状态序列。标记问题的目标在于学习一个模型,使它能够对观测序列给出标记序列作为预测。
举例:
自然语言处理中的词性标注问题:给定一个由单词组成的句子,对这个句子中的每一个单词进行词性标注,即对一个单词序列预测其对应的词性标记序列。
回归问题
回归用于预测输入变量和输出变量之间的关系,特别是当输入变量的值发生变化时,输出变量的值随之发生的变化。回归模型正是表示从输入变量到输出变量之间映射的函数,回归问题的学习等价于函数拟合:选择一条函数曲线使其很好地拟合已知数据且很好地预测未知数据。
回归问题按照输入变量的个数,分为一元回归和多元回归;按照输入变量和输出变量之间关系的类型即模型的类型,分为线性回归和非线性回归。
回归学习最常用的损失函数是平方损失函数,在此情况下,回归问题可以由最小二乘法求解。
举例:市场趋势预测、股票价格预测等。