统计学习方法笔记 -- 概论
2014-03-14 18:25
531 查看
统计学习方法是基于训练数据构建统计模型,从而对数据进行预测和分析。
统计学习分为,监督学习(supervised learning),非监督学习,半监督学习和强化学习(reinforcement learning),其中以监督学习最为常见和重要,所以这里只讨论监督学习
统计学习的过程如下,
1. 获取训练数据集合
2. 确定假设空间,即所有可能的模型的集合
3. 确定模型选择的准则(什么是最优模型的标准),即学习的策略
4. 实现求解最优模型的算法(如何获取最优模型),即学习的算法
5. 通过算法中假设空间中,找到最优模型
6. 使用该模型对新数据进行预测和分析
输入数据
输入实例x记作,
训练集,有一组输入/输出数据组成,表示为
联合概率分布
监督学习假设输入和输出的随机变量X和Y遵循联合概率分布P(X,Y),P(X,Y)表示分布函数或分布密度函数。
这个是基本假设,即输入和输出数据间是存在某种规律和联系的,否则如果完全随机的,就谈不上学习了。并且训练数据和测试数据是依据P(X,Y)独立同分布产生的
假设空间
监督学习的目的在于学习一个由输入到输出的映射,这个映射由模型来表示。
而这样的模型不只一个,可能很多,所有可能的模型的集合就是假设空间(hypothesis space). 假设空间代表了学习的范围,监督学习的目的就是从假设空间中找到最优的模型
统计学习三要素
模型
在监督学习中,模型有两类
非概率模型,决策函数
概率模型,条件概率
策略
如何定义一个模型好坏?
损失函数(L(Y,f(X)),度量一次预测的结果好坏,即表示预测值f(X)和真实值Y之间的差异程度。
其他几个损失函数都比较好理解
对数损失函数,解释一下
首先它用于概率模型,最精确的预测P(Y|X)=1,所以为1时L=0,没有损失
而P都是小于1,所以对数为负,并且越小L的值越大,想想对数分布曲线
风险函数(risk function)或期望损失(expected loss)
用于度量平均预测结果的好坏,其实就是损失函数的期望
输入X,输出Y遵循联合分布P(X,Y),定义如下
上面说了风险函数代码了模型的平均的预测结果,所以学习的目标应该是选择风险函数最小的模型。
但是问题在于,计算风险函数需要知道联合分布P(X,Y),但是这个是无法知道的,否则也不用学习了,所以监督学习就成了一个病态问题(ill-formed problem),即无法精确的判断模型真正的效果
经验风险(empirical risk或经验损失(empirical loss)
既然无法得到真正的风险函数的值,我们就用训练数据集上的平均损失来模拟真正的风险函数
当N无穷大的时候,经验风险会逼近期望风险
所以我们可以采用经验风险最小化(empirical risk minimization, ERM)的策略来找到最优的模型,当样本容量足够大的时候,能保证很好的学习效果
在现实中被广泛使用,比如,极大似然估计(maximum likelihood estimation)
当然这种策略的问题就是会导致过拟合(over-fitting)现象
所以提出结构风险最小化(structural risk minimization,SRM)策略来防止过拟合
其实思路很简单,就是在经验风险后面加上表示模型复杂度的正则化项(regularizer)或罚项(penalty term),其中J(f)表示模型复杂度,模型越复杂就越大
因为越是过拟合的模型越是复杂,所以通过regularizer可以有效平衡拟合程度
算法
用什么样的方法来求解最优模型
这样统计学习模型就归结为最优化问题,如果最优化问题有显式的解析解,比较简单,直接求出即可。但通常解析解是不存在的,所以就需要利用最优化算法来求解。
过拟合与模型选择
再仔细分析一下过拟合问题
当我们在假设空间中,选择模型的时候,希望可以尽可能逼近那个“真”模型,具体上讲就是两个模型间,参数个数相同,并且参数向量相近
但是如果在选择的时候一味的提高对训练集的预测能力,会导致得到比真模型复杂度更高的模型,即包含更多的参数,称为过拟合
例子,用M次多项式去拟合图中训练集中的10数据点
可以看到当多项式参数个数为0,1时拟合效果是很差的
但当为9时,完美的经过训练集中的每个点,但因为训练集是有噪点的,所以这个模型过于复杂,拟合程度也不好,这就是过拟合
只有当为3时,达到很好的拟合效果
如下图,当训练误差接近于0的时候,模型复杂度会大大增加,并且测试误差也会变大,所以必须要找到那个平衡点上的模型
问题是如何找到,下面有两个方法
正则法
这个方法前面提过
正则项可以有不同的形式,比如在回归问题中,损失函数是平方损失,正则项可以是参数向量的L1范数或L2范数
具体定义参考下面,反正都可以代表模型的复杂度
正则法是符合奥卡姆剃刀(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),即模型的期望风险
但是期望风险是无法精确算出的,所以只能定义
泛化误差上界 (generalization error bound)
前面说了,期望风险是无法算出的,所以思路仍然是用经验误差加上一项来代表泛化误差的上界,具体证明就不写了
理解,
第一项是经验误差(训练误差)
第二项,N是样本数量,当N趋于无穷时,这项为0,即期望误差等于经验误差
d表示假设空间中的函数个数,越大就越难学,泛化误差就越大
统计学习的分类
生成模型和判别模型
生成方法
由数据学习联合概率分布P(X,Y),然后求出条件概率分布P(Y|X)作为预测模型,即生成模型,典型的如,朴素贝叶斯和隐马尔可夫模型
优点,
可以得到联合概率分布
收敛速度更快
当存在隐变量时,仍可以使用
判别方法
由数据直接学习决策函数f(X)或条件概率分布P(Y|X)作为预测模型,即判别模型
典型的如,KNN,感知机,决策树,逻辑回归,支持向量等
优点,
学习准确率比较高
便于对数据进行抽象,可以简化学习问题
统计学习还可以根据输入输出的不同类型,分为,
分类问题
输出变量是有限个离散值时,就是分类问题
学习出的分类模型或分类决策函数称为分类器(classifier)
标注问题
输入是一个观测序列,而输出是一个标记序列
典型的应用,词性标注,输入词序列,输出是(词,词性)的标记序列
回归问题
输入输出都是连续变量是,就是回归问题,等价于函数拟合
统计学习分为,监督学习(supervised learning),非监督学习,半监督学习和强化学习(reinforcement learning),其中以监督学习最为常见和重要,所以这里只讨论监督学习
统计学习的过程如下,
1. 获取训练数据集合
2. 确定假设空间,即所有可能的模型的集合
3. 确定模型选择的准则(什么是最优模型的标准),即学习的策略
4. 实现求解最优模型的算法(如何获取最优模型),即学习的算法
5. 通过算法中假设空间中,找到最优模型
6. 使用该模型对新数据进行预测和分析
输入数据
输入实例x记作,
训练集,有一组输入/输出数据组成,表示为
联合概率分布
监督学习假设输入和输出的随机变量X和Y遵循联合概率分布P(X,Y),P(X,Y)表示分布函数或分布密度函数。
这个是基本假设,即输入和输出数据间是存在某种规律和联系的,否则如果完全随机的,就谈不上学习了。并且训练数据和测试数据是依据P(X,Y)独立同分布产生的
假设空间
监督学习的目的在于学习一个由输入到输出的映射,这个映射由模型来表示。
而这样的模型不只一个,可能很多,所有可能的模型的集合就是假设空间(hypothesis space). 假设空间代表了学习的范围,监督学习的目的就是从假设空间中找到最优的模型
统计学习三要素
模型
在监督学习中,模型有两类
非概率模型,决策函数
概率模型,条件概率
策略
如何定义一个模型好坏?
损失函数(L(Y,f(X)),度量一次预测的结果好坏,即表示预测值f(X)和真实值Y之间的差异程度。
其他几个损失函数都比较好理解
对数损失函数,解释一下
首先它用于概率模型,最精确的预测P(Y|X)=1,所以为1时L=0,没有损失
而P都是小于1,所以对数为负,并且越小L的值越大,想想对数分布曲线
风险函数(risk function)或期望损失(expected loss)
用于度量平均预测结果的好坏,其实就是损失函数的期望
输入X,输出Y遵循联合分布P(X,Y),定义如下
数学期望
参考http://zh.wikipedia.org/wiki/%E6%95%B0%E5%AD%A6%E6%9C%9F%E6%9C%9B
期望就是求平均值,对于离散值很简单,乘上概率相加就可以,比如抛骰子的期望就是,
对于连续数据,稍微复杂些,需要使用积分,本质还是一样的。
积分参考,http://zh.wikipedia.org/wiki/%E7%A7%AF%E5%88%86
参考http://zh.wikipedia.org/wiki/%E6%95%B0%E5%AD%A6%E6%9C%9F%E6%9C%9B
期望就是求平均值,对于离散值很简单,乘上概率相加就可以,比如抛骰子的期望就是,
对于连续数据,稍微复杂些,需要使用积分,本质还是一样的。
积分参考,http://zh.wikipedia.org/wiki/%E7%A7%AF%E5%88%86
上面说了风险函数代码了模型的平均的预测结果,所以学习的目标应该是选择风险函数最小的模型。
但是问题在于,计算风险函数需要知道联合分布P(X,Y),但是这个是无法知道的,否则也不用学习了,所以监督学习就成了一个病态问题(ill-formed problem),即无法精确的判断模型真正的效果
经验风险(empirical risk或经验损失(empirical loss)
既然无法得到真正的风险函数的值,我们就用训练数据集上的平均损失来模拟真正的风险函数
当N无穷大的时候,经验风险会逼近期望风险
所以我们可以采用经验风险最小化(empirical risk minimization, ERM)的策略来找到最优的模型,当样本容量足够大的时候,能保证很好的学习效果
在现实中被广泛使用,比如,极大似然估计(maximum likelihood estimation)
当然这种策略的问题就是会导致过拟合(over-fitting)现象
所以提出结构风险最小化(structural risk minimization,SRM)策略来防止过拟合
其实思路很简单,就是在经验风险后面加上表示模型复杂度的正则化项(regularizer)或罚项(penalty term),其中J(f)表示模型复杂度,模型越复杂就越大
因为越是过拟合的模型越是复杂,所以通过regularizer可以有效平衡拟合程度
算法
用什么样的方法来求解最优模型
这样统计学习模型就归结为最优化问题,如果最优化问题有显式的解析解,比较简单,直接求出即可。但通常解析解是不存在的,所以就需要利用最优化算法来求解。
过拟合与模型选择
再仔细分析一下过拟合问题
当我们在假设空间中,选择模型的时候,希望可以尽可能逼近那个“真”模型,具体上讲就是两个模型间,参数个数相同,并且参数向量相近
但是如果在选择的时候一味的提高对训练集的预测能力,会导致得到比真模型复杂度更高的模型,即包含更多的参数,称为过拟合
例子,用M次多项式去拟合图中训练集中的10数据点
可以看到当多项式参数个数为0,1时拟合效果是很差的
但当为9时,完美的经过训练集中的每个点,但因为训练集是有噪点的,所以这个模型过于复杂,拟合程度也不好,这就是过拟合
只有当为3时,达到很好的拟合效果
如下图,当训练误差接近于0的时候,模型复杂度会大大增加,并且测试误差也会变大,所以必须要找到那个平衡点上的模型
问题是如何找到,下面有两个方法
正则法
这个方法前面提过
正则项可以有不同的形式,比如在回归问题中,损失函数是平方损失,正则项可以是参数向量的L1范数或L2范数
具体定义参考下面,反正都可以代表模型的复杂度
正则法是符合奥卡姆剃刀(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),即模型的期望风险
但是期望风险是无法精确算出的,所以只能定义
泛化误差上界 (generalization error bound)
前面说了,期望风险是无法算出的,所以思路仍然是用经验误差加上一项来代表泛化误差的上界,具体证明就不写了
理解,
第一项是经验误差(训练误差)
第二项,N是样本数量,当N趋于无穷时,这项为0,即期望误差等于经验误差
d表示假设空间中的函数个数,越大就越难学,泛化误差就越大
统计学习的分类
生成模型和判别模型
生成方法
由数据学习联合概率分布P(X,Y),然后求出条件概率分布P(Y|X)作为预测模型,即生成模型,典型的如,朴素贝叶斯和隐马尔可夫模型
优点,
可以得到联合概率分布
收敛速度更快
当存在隐变量时,仍可以使用
判别方法
由数据直接学习决策函数f(X)或条件概率分布P(Y|X)作为预测模型,即判别模型
典型的如,KNN,感知机,决策树,逻辑回归,支持向量等
优点,
学习准确率比较高
便于对数据进行抽象,可以简化学习问题
统计学习还可以根据输入输出的不同类型,分为,
分类问题
输出变量是有限个离散值时,就是分类问题
学习出的分类模型或分类决策函数称为分类器(classifier)
标注问题
输入是一个观测序列,而输出是一个标记序列
典型的应用,词性标注,输入词序列,输出是(词,词性)的标记序列
回归问题
输入输出都是连续变量是,就是回归问题,等价于函数拟合
相关文章推荐
- 抄书整理笔记:第一章统计学习方法概论
- 统计学习笔记(1)——统计学习方法概论
- 李航统计学习方法笔记1 统计学习方法概论
- 机器学习系列笔记1:《统计学习》李航博士 第一章 统计学习方法概论
- 统计学习方法学习笔记1:统计学习方法概论
- 统计学习方法笔记--第一章统计学习方法概论
- 统计学习方法笔记 -- 概论
- 统计学习笔记(1)——统计学习方法概论
- 统计学习笔记(1)——统计学习方法概论
- 统计学习方法概论
- 统计学习方法 第1章 概论
- 统计学习方法笔记(四)朴素贝叶斯方法
- 统计学习方法笔记(一)统计学习方法概要
- 机器学习-统计学习方法概论
- 统计学习方法笔记(8)——提升方法之前向分布算法和提升树
- 第1章 统计学习方法概论——第8~10节 分类、标注、回归问题
- 统计学习方法(一)——统计学习方法概论
- 统计学习方法笔记之十----隐马尔科夫模型(一)
- 统计学习方法 笔记<第三章 k近邻法>
- 统计学习方法概论