前言
本学期学习了机器学习的课程,读了《统计学习方法》——李航著,做为笔记。统计学习方法都是由模型、策略和算法构成的,作为初学者,可能大部分人都直接上手,各种python库一顿乱调,但其实知识不成体系(比如我hhhh),在我学习过程中慢慢意识到知识体系的重要性。
统计学习方法三要素
模型
我们在拿到一个问题,需要想的第一件事就是学习什么样的模型。在监督学习中,模型就是所要学习的条件概率分布或决策函数。在模型的假设空间中,包含了无数个可能的条件概率分布或决策函数。至于什么是决策函数和条件概率模型的区别是什么呢?我理解的是决策函数相当于给个评分或者频数,条件概率分布那显然就是概率了,但其实将决策函数的结果进行归一化也就变成概率了不是吗。
策略
我觉得三要素里最需要弄明白的就是策略了。我们有了模型的假设空间,但我们如何从假设空间中得到最优模型呢?这个才是最关键的啊!
那既然要选择最优的模型,自然就需要一个东西来度量模型的好坏了。损失函数度量模型一次预测的好坏,风险函数度量平均意义下的模型预测的好坏。那风险函数其实就是损失函数的期望,这个期望是模型f(x)在联合分布P(X,Y)的平均意义下的损失。但监督学习的问题就在这里,我们是不知道联合分布P(X,Y),如果知道的话直接条件概率求就完事儿了,所以学习的目的就在于此,我们不知道联合分布就无法求得风险函数(或者叫期望损失),我们只能想办法近似的去表示它。
我们可以给出损失函数,那对训练集大小的平均损失就能整出来,就是训练集中所有样本的损失之和除于样本总数,这个是经验风险或者叫经验损失。那根据大数定理,当样本容量N区域正无穷的时候,经验风险就趋于期望风险,所以我们就可以用经验风险来估计期望风险。
那么问题又来了,现实中训练样本数目是有限的,所以用经验风险来估计期望风险肯定是有误差的,这就要对经验风险进行一定的矫正,这就引出了监督学习中的两个基本策略:经验风险最小化和结构风险最小化。
经验风险最小化和结构风险最小化
经验风险最小化(ERM),简单来说就是选择经验风险最小的模型作为最优的模型,那当样本数量足够大的情况下,就能起到很好的效果。但如果样本比较少呢?那就容易出问题了,样本少的话那相应的就把一些不相关的噪声的影响放大了,那可能学习出来的模型就是过拟合的(简单来说就是把样本自己的特征也当做是整体的特征了)。为了防止这种现象带来很大的影响,也就有了结构风险最小化(SRM),它就是为了防止过拟合而提出的策略。它是怎么实现的呢?就是在经验风险后边加了个表示模型复杂度的正则化项(或者说是惩罚项),它认为结构风险最小的模型是最优的模型。
其实光说呢很难把这些说明白,我的知识储备也不够,但有一点是可以点透的,**通过这两个策略,监督学习问题就变成了经验风险或结构风险的最优化问题,这时经验或结构风险函数就是最优化的目标函数。**求最优解那就是大家喜闻乐见的了。
算法
上面我们已经将监督学习问题转成了最优化问题,那算法自然是要来求解最优化问题的了,比较简单的有最小二乘法,比较常用的就有梯度下降法,牛顿法,这两种都是迭代来求解最优解问题,这里就不展开说了。