前言
关于写作:
博主(暂且如此自称)是北京某高校的计算机系研究生在读,入行AI领域时间不久,正在努力进修。最近利用工作之余的时间正在学习李航博士的《统计学习方法》,一方面希望能够通过写作整理思路,另一方面,分享学习心得也希望可以和志同道合的小伙伴们共同探讨进步啦~
github传送门:
GitHub - wyynevergiveup/Statistical-Learning-Method: 《统计学习方法》--李航 实现学习过程中的算法以加深理解
系列文章:
1.《统计学习方法》笔记(一) 统计学习及监督学习概论 - 简书
正文
1.1 统计学习
1.1.1 定义
统计学习(统计机器学习)是关于计算机基于数据构建概率统计模型并运用模型对数据进行预测与分析的一门学科。
1.1.2 研究对象
统计学习的研究对象是数据。它从数据出发,提取数据的特征,抽象出数据的模型,发现数据中的知识,又回到对数据的分析和预测中去。
统计学习关于数据的基本假设是同类数据具有一定的统计规律,这是统计学习的前提。
1.1.3 目的
统计学习用于对数据的分析和预测,特别是对未知新数据的预测和分析。
统计学习的总体目标就是考虑学习什么样的模型,如何学习,以及尽可能提高学习效率。
1.1.4 方法
统计学习的方法是基于数据构建概率统计模型从而对数据进行预测与分析。统计学习由监督学习、无监督学习和强化学习等组成。
统计学习方法概括如下:
1)从给定的、有限的、用于学习的训练数据集合出发,假设数据是独立同分布的;
2)假设要学习的模型属于某个函数的集合,成为假设空间;
3)应用某个评价准则,从假设空间中选取一个最优模型,使它对已知的训练数据及未知的测试数据在给定的评价准则下有最优的预测;
4)最优模型的选取由算法实现。
这样,统计学习方法包括:模型的假设空间、模型选择的准则以及模型学习的算法,即统计学习方法的三要素:模型、策略、算法。
1.2 统计学习的分类
1.2.1 基本分类
统计学习或机器学习一般包括监督学习、无监督学习、强化学习,还包括半监督学习和主动学习。
1.监督学习:监督学习的本质是学习输入到输出的映射的统计规律。
2.无监督学习:无监督学习的本质是学习数据中的统计规律和潜在结构。
3.强化学习:强化学习的本质是学习最优的序贯决策。
4.半监督学习:半监督学习旨在利用未标注数据中的信息,辅助标注数据,进行监督学习,以较低的成本达到较好的学习效果。
5.主动学习:主动学习的目标是找出对学习最有帮助的实例让教师标注,以较小的标注代价,达到较好的学习效果。
半监督学习和主动学习更接近监督学习。
1.2.2 按模型分类
概率模型和非概率模型、线性模型和非线性模型,参数化模型和非参数化模型。
1.2.3 按算法分类
统计学习根据算法,可以分为在线学习和批量学习。
1.2.4 按技巧分类
统计学习可以根据使用的技巧进行分类,可使用的技巧有贝叶斯学习,核方法等。
1.3 统计学习方法三要素
方法 = 模型 + 策略 + 算法
1.3.1 模型
在监督学习过程中,模型就是所要学习的条件概率分布或决策函数。模型的假设空间包含所有可能的条件概率分布或决策函数。
1.3.2 策略
策略即按照什么样的准则学习或选择最优的模型。
1.3.2.1 损失函数和风险函数
损失函数度量的是模型一次预测的好坏,风险函数度量平均意义下模型预测的好坏。
对于给定输入,对应的预测输出与真实值不一定一致,损失函数即用来度量预测错误的程度的函数。常用的损失函数有0-1损失函数、平方损失函数、绝对损失函数、对数损失函数以及交叉熵损失函数等。
由于模型的输出、输出是随机变量,遵循联合分布,所以损失函数的期望是:
这是理论上模型关于联合分布的平均意义下的损失,称为风险函数或期望损失。学习的目标就是选择期望风险最小的模型。但是往往是无法求得的,事实上,当已知时,我们可以直接求出,就不需要学习了。
因此,我们常常使用经验风险或经验损失代替。对于一个给定的训练数据集:
模型关于训练数据集的平均损失称为经验风险,记作:
根据大数定律,当样本容量N趋于无穷时,经验风险趋于期望风险。
但是,由于现实中训练样本数目有限,甚至很小,所以用经验风险估计期望风险常常并不理想,要对经验风险进行一定的矫正。这就关系到监督学习的两个基本策略:经验风险最小化和结构风险最小化。
1.3.2.2 经验风险最小化和结构风险最小化
经验风险最小化(ERM)的策略认为,经验风险最小的模型就是最优的模型。根据这一策略,按照风险最小化求最优模型就是求解最优化模型:
其中,是假设空间。
样本容量足够大时,经验风险最小化能保证有很好的学习效果,在现实中被广泛采用。但是,当样本容量较小时,经验风险最小化学习的效果就未必很好,会产生“过拟合”现象。
结构风险最小化是为了防止过拟合而提出的策略。结构风险最小化等价于正则化。在假设空间、损失函数以及训练集确定的情况下,结构风险的定义为:
其中为模型的复杂度。
1.3.3 算法
算法是指学习模型的具体计算方法。这时,统计学习问题归结为最优化问题,统计学习的算法成为求解最优化问题的算法。最优化问题往往不存在显示的解析解,这就需要用数值计算的方法求解。如何保证找到全局最优解,并使求解的过程非常高效。
1.4 模型评估与模型选择
1.4.1 训练误差和测试误差
训练误差和测试误差分别为对于训练数据和测试数据,模型的输出与标签之间的差异。
训练误差的大小,对判断给定的问题是不是一个容易学习的问题是有意义的,但本质上不重要。测试误差反映了学习方法对未知的测试数据集的预测能力,称之为泛化能力。
1.4.2 过拟合与模型选择
当假设空间包含不同复杂度(如,不同的参数个数)的模型时,就要面临模型选择的问题。我们希望选择或学习一个合适的模型。如果在假设空间中存在“真”模型,那么所选择的模型应该逼近真模型。具体地,所选择的模型要与真模型的参数个数相同,所选择的模型的参数向量与真模型的参数向量相近。
如果一味追求提高对训练数据的预测能力,所选模型的复杂度往往会比真模型更高,这种现象称为过拟合。过拟合是指学习时选择的模型所包含的参数过多,以至出现这一模型对已知数据预测的很好,但对未知数据预测得很差的现象。模型选择旨在避免过拟合并提高模型的泛化能力。
1.5 正则化和交叉验证
两种常用的模型选择的方法:正则化与交叉验证。
1.5.1 正则化
正则化是结构风险最小化策略的实现,是在经验风险上加一个正则化项或罚项。正则化项一般是模型复杂度的单调增函数,模型越复杂,正则化值就越大。比如,正则化项可以是模型参数向量的范数。正则化符合奥卡姆剃刀原理,其作用是选择经验风险和模型复杂度同时较小的模型。
1.5.2 交叉验证
如果给定的样本数据充足,进行模型选择的一种简单方法是随机地将数据集切分成三部分,分别为训练集,验证集和测试集。训练集用于模型训练,验证集用于模型选择,测试集用于模型评估。在学习到的不同复杂度的模型中,选择对验证集有最小预测误差的模型。由于验证集有足够多的数据,用它对模型进行选择也是有效的。
但是,在许多实际应用中数据往往是不充足的。为了选择好的模型,可以采用交叉验证的方法。交叉验证的基本想法是重复使用数据;把给定的数据进行切分,将切分的数据集组合为训练集和测试集,在此基础上反复地进行训练、测试以及模型选择。
1.简单交叉验证:随机地将已给数据分成两部分,一部分作为训练集,另一部分作为测试集。
2.S折交叉验证(应用最多):首先随机地将已给数据切分成S给互不相交、大小相同的子集;然后利用S-1个子集的数据训练模型,利用余下的子集测试模型;将这一过程对可能的S种选择重复进行;最后选出S次评测中平均测试误差最小的模型。
3.留一交叉验证:S折交叉验证的特殊情形是S=N,其中N是给定数据集的容量,称为留一交叉验证。往往在数据缺乏的情况下使用。
1.6 泛化能力
1.6.1 泛化误差
学习方法的泛化能力是指该学习方法学习到的模型对未知数据的预测能力。
如果学得到的模型是,那么用这个模型对未知数据预测的误差即为泛化误差:
泛化误差反映了学习方法的泛化能力,如果一种方法学习到的模型具有更小的泛化误差,则称这种方法更有效。事实上,泛化误差就是学习到的模型的期望风险。
1.6.2 泛化误差上界
学习方法的泛化能力分析往往是通过研究泛化误差的概率上界进行的,简称泛化误差上界。
泛化误差上界通常具有一下性质:1.它是样本容量的函数,当样本容量增加时,泛化上界趋于0;2.它是假设空间容量的函数,假设空间容量越大,模型就越难学,泛化误差上界就越大。
对二分类问题,当假设空间是有限个函数的集合时,对任意一个函数,至少以概率,,以下不等式成立:
(1)
(2)
不等式(1)左端是泛化误差,右端是泛化误差上界。在泛化误差上界中,第1项是训练误差;第2项 是N的单调递减函数,当N趋于无穷时趋于0;同时它是阶的函数,假设空间包含的函数越多,其值越大。
1.7 生成模型与判别模型
监督学习的任务就是学习一个模型,应用这一模型,对给定的输入预测相应的输出。这个模型的一般形式为决策函数:或者条件概率分布。
监督学习方法又可以分为生成方法和判别方法。所学到的模型分别称为生成模型和判别模型。 生成方法由数据学习联合分布,然后求出概率分布作为预测的模型,即生成模型:,这样的方法之所以称为生成方法,是因为模型表示了给定输入X产生输入Y的生成关系。典型的生成模型有朴素贝叶斯法和隐马尔可夫模型。
判别方法由数据直接学习决策函数或者条件概率分布作为预测的模型,即判别模型。判别模型关心的是对给定的输入X,应该预测什么样的输入Y。典型的判别模型有:K近邻法、感知机、决策树、最大熵耐磨性、支持向量机等。
1.8 监督学习的应用
1.8.1 分类问题
分类是监督学习的一个核心问题。在监督学习中,当输入变量Y取有限个离散值时,预测问题便成为分类问题。监督学习从数据中学习一个分类模型或分类决策函数,成为分类器。分类器对新的输入进行输出的预测,称为分类。
评价分类器性能的指标一般是分类准确率,即分类正确的样本数与总样本数之比。此外还有精确率、召回率、F1score等。
1.8.2 标注问题
标注问题也是一个监督学习问题。可以认为标注问题是分类问题的一个推广,标注问题又是更复杂的结构预测问题的简单形式。标注问题的输入是一个观测序列,输出是一个标记序列或状态序列。即给定输入观测序列,模型的输出为对应的标记序列,其中n是序列的长度,对不同样本可以有不同的值。
标注常用的统计学习方法有:隐马尔可夫模型、条件随机场。标注问题在信息抽取、自然语言处理等领域被广泛使用,是这些领域的基本问题。
1.8.3 回归问题
回归问题是监督学习的另一个重要问题。回归用于预测自变量和因变量之间的关系,特别是当自变量的值发生变化时,因变量的值随之发生的变化。回归模型正式表示自变量到因变量之间的映射的函数。回归问题的学习等价于函数拟合。
回归问题按照输入变量的个数,分为一元回归和多元回归;按照自变量和因变量之间的关系的类型(模型类型),分为线性回归和分线性回归。
回归学习最常用的损失函数是平方损失函数,在此情况下,回归问题可以由著名的最小二乘法求解。