李航《统计学习方法》笔记

虽然书名是统计学习,但是却是机器学习领域中和重要的一本参考书。当前的机器学习中机器指计算机,但是所运用的方法和知识是基于数据(对象)的统计和概率知识,建立一个模型,从而对未来的数据进行预测和分析(目的)。

第一段提到的模型是很重要的,事实上,模型(model)是统计学习方法的三要素之一,其他另外两个策略strategy和算法algorithm也是围绕模型的,简单来说,策略决定了使用什么样的损失函数(代价函数)评价当前模型的好坏。算法决定了具体如何对模型进行最优化求解。有人说搞深度学习就是在不断地修改loss函数,优化算法,仔细一想其实也有点道理。。。但是里面其实还是大有文章的。下面仔细研究一下三要素。

三要素之模型

模型,也就是建模,以全书主要讲的监督学习为例,就是希望通过已知的训练数据,得到模型,这个模型能充分描述数据的规律,从而预测数据。这里暗合了一个假设:训练数据和测试数据是独立同分布的。这里有两种情况:第一种认为数据的分布是基于某个分布概率随机分布的,对应概率模型,用条件概率P(Y|X)表示,;另外一种是认为数据严格遵循某种函数关系,即决策函数,其对应非概率模型,用决策函数f(X)表示。

监督学习得到的模型的方法有两大类:生成方法generative approach和判别方法discriminative approach.生成方法是先由先学习得到的联合概率分布求解得到条件概率,典型的生成模型有朴素贝叶斯法和隐马尔科夫模型。判别模型是由数据直接学习决策函数或者条件概率,典型的判别模型有k近邻法、感知机、决策树、最大熵模型、支持向量机、提升方法和条件随机场等。在GAN网络中有生成模型和判别模型,寻找二者的纳什均衡。这里的生成模型和生成方法应该不是同一个东西。

模型的选择可以通过正则化或者交叉验证。正则化是下面提到的结构风险最小化的实现。交叉验证主要是看如何分割数据集,反复进行训练,验证,测试。

三要素之策略

策略也就是如何选择loss/cost 函数,相当于一个标尺,通过这个标尺,我们才能知道想要达到一个什么目标(这个目标与代价函数有关,但绝不单单是最小化代价函数那么简单)。在这第一个需要选择的就是代价函数的选择,有0-1损失函数,平方损失函数,绝对损失函数,对数损失函数等。因为我们把输入的样本看作随机变量,每一个通过损失函数求得一个损失值,但是它们的期望才可以代表整个模型的好坏,这就需要用到联合分布概率。但同时联合分布是未知的,如果已知也就不需要监督学习了。所以继续用统计的知识,我们通过求均值,用平均损失,即经验风险来代替期望风险。到这里离我们找到目标还差一步,我们可以直接以经验风险最小化作为目标,极大似然估计就是这个道理,但是会造成过拟合,结果就是模型为了最大程度地适应样本数据,最后得到了一个很复杂模型,但是只是对已有样本拟合得好,因为无节制地迁就数据,包括一些特殊点和噪点,而没有找到普适性的一般规律,对测试数据的预测能力不佳。于是为了,平衡拟合性和模型的复杂度,新构造了一个函数作为我们最小化的目标,这就是结构风险,在经验风险的基础上加一个正则化项,它与模型的复杂度成正比。贝叶斯估计中的最大后验估计就是结果风险最小化的一个例子。

主要说一下结构风险最小化。结构风险最小化等价于正则化(规则化),因为对测试数据有良好的预测效果是不言而喻的要求,规则化还要求模型尽量简单,权衡了经验风险和模型复杂度。这就是参考链接1提到的奥卡姆剃刀原理(Occam’s razor)。到这里,监督学习变成了一个最优化问题,最小化一个目标函数,函数由两项构成,一个是Loss函数,一个是正则项。

不同的机器学习模型的Loss函数和正则化项都不同。链接1主要讲了正则项的选取。正则化项有两个作用,一个是起惩罚的作用,与模型复杂度成正比;一个是利用领域的先验知识对模型的特性有一个整体把握,控制模型特性,如使模型具有稀疏、低秩、平滑等特性。

三要素之算法

算法就没什么好说的了,因为统计学习到最后都归结为最优化问题,解析解不存在的情况下就用各种最优化算法寻找最优解。比如BP算法。我理解的caffe中solve.prototxt文件就是描述求解过程的。

最后提一下监督学习的应用:分类问题、标注问题、回归问题。这三类问题是由输入X和输出Y的连续还是离散的状态区分的。因为我们得到模型后最终的任务还是对数据预测。当输出变量Y是离散的,预测问题便成为分类问题,得到的模型便可叫做分类器。这里和图像分割一样,有两个重要的指标:精确率precision和召回率recall。当输入是一个观测序列,输出是标记序列或者状态序列,那么预测问题就是标注问题。状态是有限的,但是序列经过组合就可能变成无限的了。常用的统计方法有隐马尔科夫模型和条件随机场。输入与输出变量都是连续变量的预测问题称为回归问题,最常用的是最小二乘法求解。

关于预测数据的能力的表示,有一个专业的词叫泛化能力,通过泛化误差上界来衡量。这里有一个重要的不等式,还没有自己试着去证明。

Reference:

1.https://blog.csdn.net/zouxy09/article/details/24971995/

猜你喜欢

转载自blog.csdn.net/zcg1942/article/details/80803732