机器学习-统计学习方法概论

统计学习方法概论

机器学习算法学习必须要掌握的理论基础(本文主要根据《统计学习方法》(李航著)总结,加上自己的一些理解),本书主要介绍的内容只涉及到机器学习算法中的监督学习,故以下提到的内容均是基于监督学习的。

1、统计学习方法三要素

方法=模型+策略+算法

模型

在监督学习过程中,模型就是所要学习的条件概率分布或者决策函数,模型的假设空间包含所有要学习的条件概率分布或者决策函数,后续提到的模型中,将决策函数表示的模型称为非概率模型,由条件概率表示的模型为概率模型。

策略

有了模型的假设空间,统计学习接着需要考虑的是按照什么样的准则学习或者选择最优的模型,统计学习的目标在于从假设空间中选择最优模型。
首先引入损失函数风险函数,损失函数度量模型一次预测的好坏,风险函数度量平均意义下模型预测的好坏。风险函数或者期望损失无法直接计算,所以引入经验风险或者经验损失,是模型关于训练数据集的平均损失,根据大数定律,当样本容量趋近于无穷时,经验风险趋近于期望风险。但是现实生活中样本数据有限,所以用经验风险估计期望风险往往不理想,要对经验风险进行一定的矫正,这就关系到监督学习的两个基本策略:经验风险最小化(ERM)和结构风险最小化(SRM);
经验风险最小化:极大似然估计是一个例子,当模型是条件概率分布,损失函数是对数损失函数经验风险最小化就等价于极大似然估计;
结构风险最小化:为了防止过拟合,结构风险最小化等于正则化,结构风险在经验风险上加上表示模型复杂度的正则化项或罚项,结构风险小的模型往往对训练数据以及未知的预测数据都要较好的预测,贝叶斯估计中的最大后验概率估计就是结构风险最小化的一个例子。
这样监督学习问题就变成了经验风险和结构风险函数的最优化问题,这时经验风险函数或结构风险函数是最优化的目标函数。

算法

算法是指学习模型的具体计算方法,说白了我们分析问题,得到一个最小化经验风险函数或者结构风险函数的问题,我们的算法就要去求解这个最优化问题。至于如何求解,算法有很多种,需要我们去寻找合适的算法,就比如快排序和堆排序都能解决排序问题,但不同的情况下需要选择不同的算法。

2、正则化和交叉检验

正则化

正则化是结构风险最小化策略的实现,是在经验风险上加一个正则化项或罚项,例如回归问题中,损失函数是平方损失,正则化项可以使参数向量的L2范数,也可以是参数向量的L1范数

交叉验证

实际应用中数据不足,为了选择好的模型,可以采用交叉验证的方法,交叉验证的思想是重复地使用数据;把给定的数据进行切分,将切分的数据组合为训练集和测试集,反复测试训练和模型选择:
简单交叉验证:将数据分为训练集和测试集,选择在测试集上误差最小的模型
S折交叉验证:将数据切分成S个互不相交的大小相同的子集,利用S-1个子集的数据训练模型,留下余下的子集测试模型,对可能的S钟选择重复进行,选择S次评测中平均测试误差最小的模型
留一交叉验证:S折交叉验证的特殊情况,S=N,N是数据集的容量,通常在数据缺乏的情况下使用

3、泛化能力

学习方法的泛化能力是指该方法学习到的模型对未知数据的预测能力

4、分类问题

TP:将正类预测为正类数
FN:将正类预测为负类数
FP:将负类预测为正类数
TN:将负类预测为负类数
评价指标:精确率和召回率
精确率:P=TP/(TP+FP),所有预测为正类(预测的正类)的里面预测正确的
召回率:R=TP/(TP+FN),所有应当预测为正类(实际的正类)里面预测正确的

5、标注问题

标注常用的统计学习方法:隐马尔科夫模型,条件随机场
自然语言理解中的词性标注就是一个典型的标注问题

6、回归问题

回归问题最常用的损失函数是平方损失函数,在此情况下,回归问题可以由著名的最小二乘法求解

7、范数

L0范数是指向量中非0的元素的个数
L1范数是指向量中各个元素绝对值之和,也有个美称叫“稀疏规则算子”(Lasso regularization)
L2范数是指向量各元素的平方和然后求平方根

8、梯度下降

梯度下降法几何解释:
由于我们的任务是求得经验损失函数的最小值,在每一个点上,我们希望往下走一步(假设一步为固定值0.5),使得下降的高度最大,那么我们就要选择坡度变化率(想象一下一元函数的斜率)最大的方向往下走,这个方向就是经验损失函数在这一点梯度的反方向。每走一步,我们都要重新计算函数在当前点的梯度,然后选择梯度的反方向作为走下去的方向。随着每一步迭代,梯度不断地减小,到最后减小为零。这就是为什么叫“梯度下降法”。
那么,为什么梯度的方向刚好是我们下坡的反方向呢?为什么我们不是沿着梯度的方向下坡呢?这是因为,只有沿着梯度的反方向,我们才能下坡,否则就是上坡了……举个例子,在y=f(x)的二维平面上,规定好x轴和y轴的方向后,如果曲线f(x)的值是随着x的增加上升的,那么它在某一点的切线的数值一定是正的。反之,若曲线f(x)的值是随着x的增加下降的,则它在下降的某一点的切线的数值一定是负数。梯度是方向导数在某一点的最大值,所以其值必然是正数。如果沿着梯度方向走,经验损失函数的值是增加的……所以,我们要下坡,就必须沿着梯度方向的反方向了。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值