以后我会在博客记录自己学习《统计学习方法》第二版这本书的笔记,其实也就是我自己认为比较重要或者有用的内容,以及部分python代码的实现。

第一章 统计学习及监督学习概论

这一章主要都是些概念,所以我可能更多的内容是会直接照搬原文的内容。

统计学习或机器学习一般包括监督学习、无监督学习、强化学习。有时还包括半监督学习、主动学习。

监督学习

监督学习分为学习和预测两个过程,由学习系统与预测系统完成。在学习过程中,学习系统利用给定的训练数据集,通过学习(或训练)得到一个模型,表示为条件概率分布 P(YIX) 或决策函数 = f(X) 。条件概率分布 P(YIX) 或决策函数 f(X)描述输入与输出随机变量之间的映射关系。在预测过程中,预测系统对于给定的测试样本集中的输入XN+l’ 由模型 YN+l = arg xF(YIXN +l) YN+l = !(XN +l) 给出相应的输出 YN+l。

学习系统(也就是学习算法)试图通过训练数据集中的样本 (Xi Yi) 带来的信息学习模型。具体地说,对输入叭,一个具体的模型 f(x) 可以产生 个输出 f(Xi)'而训练数据集中对应的输出是仇。如果这个模型有很好的预测能力,训练样本输出 Yi和模型输出 f(Xi) 之间的差就应该足够小。学习系统通过不断地尝试,选取最好的模型,以便对训练数据集有足够好的预测,同时对未知的测试数据集的预测也有尽可能好的推广。

无监督学习

无监督学习可以用于对己有数据的分析,也可以用于对未来数据的预测。分析时使用学习得到的模型,即函数 = g(x) 条件概率分布户(z x) 或者条件概率分布 P(xlz) 。预测时,和监督学习有类似的流程 由学习系统与预测系统完成,如图1. 3所示。在学习过程中,学习系统从训练数据集学习,得到→个最优模型,表示为函数 Z=g(x) 条件概率分布户(zlx) 或者条件概率分布户(xlz) 。在预测过程中,预测系统对于给定的输入 XN+l’ 由模型 ZN+l = g(XN+l) ZN+l = arg 且严户(ZIXN +1)给出相应的输出 ZN+l’ 进行聚类或降维,或者由模型户(xlz) 给出输入的概率P(xN+1 IZN+1) 进行概率估计。
统计学习方法第二版 李航

强化学习

智能系统与环境的互动如图1. 所示。在每 智能系统从环境中观测到状态 (state) St 个奖励 (reward) ru 采取 个动作 (action) 句。环境根据智能系统选择的动作,决定下 t+l 的状态 t+ 与奖励 rt+l 要学习的策略表示为给定的状态下采取的动作。智能系统的目标不是短期奖励的最大化,而是长期累积奖励的最大化 强化学习过程中,系统不断地试错 (trial and error) ,以达到学习最优策略的目的。
统计学习方法第二版 李航
感觉自己强化学习这一块估计会很少接触,所以看得时候也只是看个大概。

上面是统计学习的基本分类,按模型分类的话,可以分成概率模型和非概率模型,线性模型和非线性模型,以及参数模型和非参数模型。

按算法分类的话,可以分为在线学习 (online learning) 与批量学习 (batch learning) 。
在线学习是指每次接受 个样本,进行预测,之后学习模型,并不断重复该操作的机器学习。与之对应,批量学习 次接受所有数据,学习模型,之后进行预测。
在线学习通常比批量学习更难,很难学到预测准确率更高的模型,因为每次模型更新中,可利用的数据有限。

按技巧分类

1.贝叶斯学习
贝叶斯学习 CBayesian learning) ,又称为贝叶斯推理 CBayesian inference) ,是统计学、机器学习中重要的方法。其主要想法是,在概率模型的学习和推理中,利用贝叶斯定理,计算在给定数据条件下模型的条件概率,即后验概率,并应用这个原理进行模型的估计,以及对数据的预测。将模型、未观测要素及其参数用变量表示,使用模型的先验分布是贝叶斯学习的特点。贝叶斯学习中也使用基本概率公式(图1.4)。朴素贝叶斯、潜在狄利克雷分配的学习属于贝叶斯学习。
统计学习方法第二版 李航
贝叶斯估计与极大似然估计在思想上有很大的不同,代表着统计学中频率学派和贝叶斯学派对统计的不同认识。其实,可以简单地把两者联系起来,假设先验分布是均匀分布,取后验概率最大,就能从贝叶斯估计得到极大似然估计。

2. 核方法
核方法 (kernel method) 是使用核函数表示和学习非线性模型的一种机器学习方法,可以用于监督学习和无监督学习。有一些线性模型的学习方法基于相似度计算,更具体地,向量内积计算。核方法可以把它们扩展到非线性模型的学习,使其应用范围更广泛。

核函数支持向量机,以及核 PCA 、核 均值属于核方法。

把线性模型扩展到非线性模型,直接的做法是显式地定义从输入空间(低维空间)到特征空间(高维空间)的映射,在特征空间中进行内积计算。

统计学习方法三要素

统计学习方法都是由模型、策略和算法构成的,即统计学习方法由 要素构成,可以简单地表示为:
方法=模型+策略+算法

这里的话我就简单说明一下就好了。

模型:统计学习首要考虑的问题是学习什么样的模型。在监督学习过程中,模型就是所要学习的条件概率分布或决策函数。模型的假设空间 (hypothesis space) 包含所有可能的条件概率分布或决策函数。例如,假设决策函数是输入变量的线性函数,那么模型的假设空间就是所有这些线性函数构成的函数集合。

策略:有了模型的假设空间,统计学习接着需要考虑的是按照什么样的准则学习或选择最优的模型 统计学习的目标在于从假设空间中选取最优模型。

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

模型评估与模型选择

这一部分我想着重讲一下!

训练误差与测试误差

统计学习的目的是使学到的模型不仅对己知数据而且对未知数据都能有很好的预测能力。不同的学习方法会给出不同的模型。当损失函数给定时,基于损失函数的模型的训练误差 Ctraining error) 和模型的测试误差 test error) 就自然成为学习方法评估的标准。注意,统计学习方法具体采用的损失函数未必是评估时使用的损失函数。当然,让两者一致是比较理想的。
统计学习方法第二版 李航统计学习方法第二版 李航
训练误差的大小,对判断给定的问题是不是 个容易学习的问题是有意义的,但本质上不重要。测试误差反映了学习方法对未知的测试数据集的预测能力,是学习中的重要概念。显然,给定两种学习方法,测试误差小的方法具有更好的预测能力,是更有效的方法。通常将学习方法对未知数据的预测能力称为泛化能力 (generalization ability)

过拟合与模型选择

当假设空间含有不同复杂度(例如,不同的参数个数)的模型时,就要面临模型选择(model selection) 的问题。我们希望选择或学习 个合适的模型。如果在假设空间中存在"真"模型,那么所选择的模型应该逼近真模型。具体地,所选择的模型要与真模型的参数个数相同,所选择的模型的参数向量与真模型的参数向量相近。

如果一味追求提高对训练数据的预测能力,所选模型的复杂度则往往会比真模型更高。这种现象称为过拟合 Cover-fitting) 。过拟合是指学习时选择的模型所包含的参数过多,以至出现这 模型对己知数据预测得很好,但对未知数据预测得很差的现象。可以说模型选择旨在避免过拟合并提高模型的预测能力。

这上面的内容,简单来说就是此时的模型对于你自己的训练数据的预测结果极好,但是往往对于其他数据的效果不太行。

具体避免模型过拟合的方法可以参考:https://www.cnblogs.com/june0507/p/7600924.html

正则化与交叉验证

正则化

模型选择的典型方法是正则化 (regularization) 。正则化是结构风险最小化策略的实现,是在经验风险上加 个正则化项 (regularizer )或罚项 (pena ty term) 。正则化项 般是模型复杂度的单调递增函数,模型越复杂,正则化值就越大。比如 正则化项可以是模型参数向量的范数。

正则化的作用是选择经验风险与模型复杂度同时较小的模型。

正则化符合奥卡姆剃刀 (Occam '8 razor) 原理。奥卡姆剃刀原理应用于模型选择时变为以下想法:在所有可能选择的模型中,能够很好地解释己知数据并且十分简单才是最好的模型,也就是应该选择的模型。从贝叶斯估计的角度来看,正则化项对于模型的先验概率。可以假设复杂的模型有较小的先验概率,简单的模型有较大的先验概率。

交叉验证

如果给定的样本数据充足,进行模型选择的 种简单方法是随机地将数据集切分成 部分,分别为训练集 (training set) 、验证集 (validation set) 和测试集 (testset) 。训练集用来训练模型,验证集用于模型的选择,而测试集用于最终对学习方法的评估。在学习到的不同复杂度的模型中,选择对验证集有最小预测误差的模型。由于验证集有足够多的数据,用它对模型进行选择也是有效的。

但是,在许多实际应用中数据是不充足的。为了选择好的模型,可以采用交叉验证方法。交叉验证的基本想法是重复地使用数据;把给定的数据进行切分,将切分的数据集组合为训练集与测试集,在此基础上反复地进行训练、测试以及模型选择。

1.简单交叉验证
简单交叉验证方法是:首先随机地将己给数据分为两部分, 部分作为训练集,另一部分作为测试集(例如, 70% 的数据为训练集, 30% 的数据为测试集) ;然后用训练集在各种条件下(例如,不同的参数个数)训练模型,从而得到不同的模型:在测试集上评价各个模型的测试误差,选出测试误差最小的模型。

2 . S折交叉验证
应用最多的是 折交叉验证 (S-fold cross validation) ,方法如下:首先随机地将已给数据切分为 互不相交、大小相同的子集 ;然后利用 S-1个子集的数据训练模型,利用 余下的子集测试模型 :将这 过程对可能的 种选择重复进行;最后选出S次评测中平均测试误差最小的模型。

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

泛化能力

学习方法的泛化能力 Cgeneralization ability) 是指由该方法学习到的模型对未知数据的预测能力,是学习方法本质上重要的性质。现实中采用最多的办法是通过测试误差来评价学习方法的泛化能力。但这种评价是依赖于测试数据集的。因为测试数据集是有限的,很有可能由此得到的评价结果是不可靠的。统计学习理论试图从理论上对学习方法的泛化能力进行分析。

泛化误差

泛化误差反映了学习方法的泛化能力,如果 种方法学习的模型比另 种方法学习的模型具有更小的泛化误差,那么这种方法就更有效。事实上,泛化误差就是所学习到的模型的期望风险。

泛化误差上界

学习方法的泛化能力分析往往是通过研究泛化误差的概率上界进行的,简称为泛化误差上界(generalization error bound) 。具体来说,就是通过比较两种学习方法的泛化误差上界的大小来比较它们的优劣。泛化误差上界通常具有以下性质:它是样本容量的函数,当样本容量增加时,泛化上界趋于 0; 它是假设空间容量 (capacity)函数,假设空间容量越大,模型就越难学,泛化误差上界就越大。

生成模型与判别模型

监督学习方法又可以分为生成方法 Cgenerative approach) 和判别方法 discriminative approach) 所学到的模型分别称为生成模型 (generative model)和判别模型(discriminative model)

在监督学习中,生成方法和判别方法各有优缺点,适合于不同条件下的学习问题。

生成方法的特点:生成方法可以还原出联合概率分布 P(X Y) 而判别方法则不能:生成方法的学习收敛速度更快,即当样本容量增加的时候,学到的模型可以更快地收敛于真实模型:当存在隐变量时,仍可以用生成方法学习,此时判别方法就不能用。

判别方法的特点:判别方法直接学习的是条件概率 P(YIX) 或决策函数 f(X)直接面对预测,往往学习的准确率更高:由于直接学习 P(YIX) f(X) 可以对数据进行各种程度上的抽象、定义特征并使用特征,因此可以简化学习问题。

监督学习的应用

监督学习的应用主要是三个方面:分类问题、回归问题和标注问题。

具体可以参考:https://www.cnblogs.com/kklalala-kaly/p/12169652.html

结束语

由于博主能力有限,博文中提及的信息,也难免会有疏漏之处。希望发现疏漏的朋友能热心指出其中的错误,以便下次修改时能以一个更完美更严谨的样子,呈现在大家面前。同时如果有更好的方法也请不吝赐教。

如果有什么相关的问题,也可以关注评论留下自己的问题,我会尽量及时发送!

然后如果这些内容对你有所帮助的话,麻烦点赞或者评论告诉我可以吗(这样我更新博客的速度才会越来越快!!!)

相关文章: