统计学习方法笔记 -- 概论

统计学习方法是基于训练数据构建统计模型,从而对数据进行预测和分析。
统计学习分为,监督学习(supervised learning),非监督学习,半监督学习和强化学习(reinforcement learning),其中以监督学习最为常见和重要,因此这里只讨论监督学习算法

统计学习的过程以下,
1. 获取训练数据集合
2. 肯定假设空间,即全部可能的模型的集合
3. 肯定模型选择的准则(什么是最优模型的标准),即学习的策略
4. 实现求解最优模型的算法(如何获取最优模型),即学习的算法
5. 经过算法中假设空间中,找到最优模型
6. 使用该模型对新数据进行预测和分析函数

输入数据
输入实例x记做,学习

image

训练集,有一组输入/输出数据组成,表示为
image 测试

联合几率分布
监督学习假设输入和输出的随机变量X和Y遵循联合几率分布P(X,Y),P(X,Y)表示分布函数或分布密度函数。
这个是基本假设,即输入和输出数据间是存在某种规律和联系的,不然若是彻底随机的,就谈不上学习了。而且训练数据和测试数据是依据P(X,Y)独立同分布产生的优化

假设空间
监督学习的目的在于学习一个由输入到输出的映射,这个映射由模型来表示。
而这样的模型不仅一个,可能不少,全部可能的模型的集合就是假设空间(hypothesis space). 假设空间表明了学习的范围,监督学习的目的就是从假设空间中找到最优的模型spa

 

统计学习三要素
image
3d

模型
在监督学习中,模型有两类
非几率模型,决策函数
image 
几率模型,条件几率
image orm

策略
如何定义一个模型好坏?blog

损失函数(L(Y,f(X)),度量一次预测的结果好坏,即表示预测值f(X)和真实值Y之间的差别程度。
imageip

其余几个损失函数都比较好理解
对数损失函数,解释一下
首先它用于几率模型,最精确的预测P(Y|X)=1,因此为1时L=0,没有损失
而P都是小于1,因此对数为负,而且越小L的值越大,想一想对数分布曲线

风险函数(risk function)或指望损失(expected loss)
用于度量平均预测结果的好坏,其实就是损失函数的指望
输入X,输出Y遵循联合分布P(X,Y),定义以下
image

数学指望
参考http://zh.wikipedia.org/wiki/%E6%95%B0%E5%AD%A6%E6%9C%9F%E6%9C%9B

image 

指望就是求平均值,对于离散值很简单,乘上几率相加就能够,好比抛骰子的指望就是,

image

对于连续数据,稍微复杂些,须要使用积分,本质仍是同样的。
积分参考,http://zh.wikipedia.org/wiki/%E7%A7%AF%E5%88%86

image

上面说了风险函数代码了模型的平均的预测结果,因此学习的目标应该是选择风险函数最小的模型。
可是问题在于,计算风险函数须要知道联合分布P(X,Y),可是这个是没法知道的,不然也不用学习了,因此监督学习就成了一个病态问题(ill-formed problem),即没法精确的判断模型真正的效果

经验风险(empirical risk或经验损失(empirical loss)
既然没法获得真正的风险函数的值,咱们就用训练数据集上的平均损失来模拟真正的风险函数
image
当N无穷大的时候,经验风险会逼近指望风险
因此咱们能够采用经验风险最小化(empirical risk minimization, ERM)的策略来找到最优的模型,当样本容量足够大的时候,能保证很好的学习效果
在现实中被普遍使用,好比,极大似然估计(maximum likelihood estimation)

固然这种策略的问题就是会致使过拟合(over-fitting)现象
因此提出结构风险最小化(structural risk minimization,SRM)策略来防止过拟合
image
其实思路很简单,就是在经验风险后面加上表示模型复杂度的正则化项(regularizer)或罚项(penalty term),其中J(f)表示模型复杂度,模型越复杂就越大
由于越是过拟合的模型越是复杂,因此经过regularizer能够有效平衡拟合程度

算法
用什么样的方法来求解最优模型
这样统计学习模型就归结为最优化问题,若是最优化问题有显式的解析解,比较简单,直接求出便可。但一般解析解是不存在的,因此就须要利用最优化算法来求解。

 

过拟合与模型选择
再仔细分析一下过拟合问题
当咱们在假设空间中,选择模型的时候,但愿能够尽量逼近那个“真”模型,具体上讲就是两个模型间,参数个数相同,而且参数向量相近
可是若是在选择的时候一味的提升对训练集的预测能力,会致使获得比真模型复杂度更高的模型,即包含更多的参数,称为过拟合

例子,用M次多项式去拟合图中训练集中的10数据点
image
image 
能够看到当多项式参数个数为0,1时拟合效果是不好的
但当为9时,完美的通过训练集中的每一个点,但由于训练集是有噪点的,因此这个模型过于复杂,拟合程度也很差,这就是过拟合
只有当为3时,达到很好的拟合效果

以下图,当训练偏差接近于0的时候,模型复杂度会大大增长,而且测试偏差也会变大,因此必需要找到那个平衡点上的模型

image

问题是如何找到,下面有两个方法

正则法
这个方法前面提过
image
正则项能够有不一样的形式,好比在回归问题中,损失函数是平方损失,正则项能够是参数向量的L1范数或L2范数
具体定义参考下面,反正均可以表明模型的复杂度

image

image

给定向量x=(x1,x2,...xn)
L1范数:向量各个元素绝对值之和,曼哈頓距離
L2范数:向量各个元素的平方求和而后求平方根,歐幾里得距離
image

正则法是符合奥卡姆剃刀(Occam’s razor,http://zh.wikipedia.org/zh/%E5%A5%A5%E5%8D%A1%E5%A7%86%E5%89%83%E5%88%80)原理的,优先选择更简单的模型

交叉验证
1. 简单交叉验证,将数据70%做为训练集,30%做为测试集,而后选出测试偏差最小的模型
2. S-fold交叉验证,将数据随机分红S份,将S-1份做为训练集,剩下的做为测试集,对于训练集和测试集有S种选择,因此选出S次评测的平均偏差最小的模型
3. leave-one-out交叉验证,S-fold的特例,用于数据缺少的状况,S=N,即一份里面只有一个数据

 

泛化能力(generalization ability)
学习方法的泛化能力指该方法学习到的模型对未知数据的预测能力
每每采用经过测试偏差来评价学习方法的泛化能力,问题是过于依赖测试集,而且测试集是有限的,不是很可靠
因此定义泛化偏差来表示泛化能力
泛化偏差(generalization error),即模型的指望风险
image

可是指望风险是没法精确算出的,因此只能定义
泛化偏差上界 (generalization error bound)
image

image

前面说了,指望风险是没法算出的,因此思路仍然是用经验偏差加上一项来表明泛化偏差的上界,具体证实就不写了
理解,
第一项是经验偏差(训练偏差)
第二项,N是样本数量,当N趋于无穷时,这项为0,即指望偏差等于经验偏差
d表示假设空间中的函数个数,越大就越难学,泛化偏差就越大

统计学习的分类

生成模型和判别模型
生成方法
由数据学习联合几率分布P(X,Y),而后求出条件几率分布P(Y|X)做为预测模型,即生成模型,典型的如,朴素贝叶斯和隐马尔可夫模型
image 
优势,
能够获得联合几率分布
收敛速度更快
当存在隐变量时,仍可使用

判别方法
由数据直接学习决策函数f(X)或条件几率分布P(Y|X)做为预测模型,即判别模型
典型的如,KNN,感知机,决策树,逻辑回归,支持向量等
优势,
学习准确率比较高
便于对数据进行抽象,能够简化学习问题

统计学习还能够根据输入输出的不一样类型,分为,
分类问题
输出变量是有限个离散值时,就是分类问题
学习出的分类模型或分类决策函数称为分类器(classifier)
标注问题
输入是一个观测序列,而输出是一个标记序列
典型的应用,词性标注,输入词序列,输出是(词,词性)的标记序列
回归问题 输入输出都是连续变量是,就是回归问题,等价于函数拟合