这是我参加mlhub123组织的书籍共读计划的读书笔记,活动见mlhub第一期读书计划
- 阅读章节:第一章:统计学习方法概论
- 开始时间:2018-09-14
- 结束时间:2018-09-16
- 目标:读完第一章,掌握基本概念,产出一篇笔记
- 博客地址
第一章主要对全书内容做了一个内容的概括:
- 统计学习:定义、研究对象和方法
- 监督学习
- 统计学习三要素:模型、策略、算法
- 模型评估与选择:包括正则化、交叉验证与学习的泛化能力
- 生成模型与判别模型
- 分类问题、标注问题与回归问题
统计学习
什么是统计学习
统计学习是关于计算机基于数据构建概率统计模型并运用模型对数据进行预测与分析的一门学科,统计学习也称为统计机器学习
统计学习的特点
- 统计学习以计算机及网络为平台,是建立在计算机及 网络之上的
- 统计学习以数据为研究对象,是数据驱动的学科
- 统计学习的目的是对数据进行预测与分析
- 统计学习以方法为中心,统计学习方法构建模型并应用模型进行预测与分析
- 统计学习是概率论、统计学、信息论、计算理论、最优化理论及计算机科学等多个领域的交叉学科,并且在发展中逐步形成独自的理论体系与方法论
什么是机器学习
如果一个程序
可以在任务T
上,随着经验E
的增加,效果P
也可以随之增加,则称这个程序可以从经验中学习。 --- 卡内基美隆大学的Tom Michael Mitchell教授
如果以垃圾邮件为例,
一个程序
指的是用到的机器学习算法,比如:朴素贝叶斯、逻辑回归;任务T
指的是区分垃圾邮件的任务;经验E
为已经区分过是否为垃圾邮件的历史邮件;效果P
为机器学习算法在区分是否为垃圾邮件任务上的准确率
统计学习的目的
统计学习用于对数据进行预测与分析,特别是对未知新数据进行预测与分析
统计学习的方法
- 监督学习(supervised learning):KNN、决策树、贝叶斯、逻辑回归
- 非监督学习(unsupervised learning):聚类、降维
- 半监督学习(semisupervised learning):self-training(自训练算法)、Graph-based Semi-supervised Learning(基于图的半监督算法)、Semi-supervised supported vector machine(半监督支持向量机,S3VM)
- 强化学习(reinforcement learning):蒙特卡洛方法
监督学习
基本概念
- 输入空间(input space):输入所有可能取值的集合
- 输出空间(output space):输出所有可能取值的集合
- 特征空间(feature space):每个具体的输入是一个实例(instance),通常由特征向量(feature vector)表示。这时,所有特征向量存在的空间称为特征空间
- 联合概率分布:统计学习假设数据存在一定的统计规律,X和Y具有联合概率分布的假设就是监督学习关于数据的基本假设 - 机器学习-联合概率分布笔记
- 假设空间:学习的目的在于找到最好的模型,模型属于由输入空间到输出空间的映射的集合,这个集合就是假设空间(hypothesis space)
人们根据输入、输出变量的不同类型,对预测任务给予不同的名称:
- 分类问题:输出变量为有限个离散变量的预测问题
- 回归问题:输入变量与输出变量均为连续变量的预测问题
- 标注问题:输入变量与输出变量均为变量序列的预测问题
问题的形式化
监督学习利用训练数据集学习一个模型,再用模型对测试样本集进行预测 (prediction):
输入训练集 -> 生成模型 -> 预测,由于训练集是人工给出的,所以称之为监督学习
统计学习三要素
统计学习方法由三要素构成,可以简单地表示为:方法 = 模型 + 策略 + 算法
模型
在监督学习过程中,模型就是所要学习的条件概率分布或决策函数。模型的假设空间(hypothesis space)包含所有可能的条件概率分布或决策函数
例如,假设决策函数是输入变量的线性函数,那么模型的假设空间就是所有这些线性函数构成的函数集合,假设空间中的模型一般有无穷多个
策略
知道模型的交涉空间后,现在的目的就是选择出最优的一个模型出来,而这就是统计学习的目标,这里引入两个概念:
- 损失函数(loss function):用于度量模型一次预测的好坏
- 风险函数(risk function):度量平均意义下模型预测的好坏
损失函数和风险函数
监督学习问题是在假设空间中选取模型f作为决策函数,对于给定的输入X,由f(X)给出相应的输出Y,这个输出的预测值f(X)与真实值Y可能一致也可能不一致,用一个损失函数(loss function)或代价函数(cost function)来度量预测错误的程度,损失函数是f(X)和Y的非负实值函数,记作L(Y,f(X))
统计学习中常用的损失函数有如下几种:
-
0-1损失函数(0-1 loss function):
-
平方损失函数(quadratic loss function):
-
绝对损失函数(absolute loss function):
-
对数损失函数(logarithmic loss function)或对数似然损失函数(loglikelihood loss function):
有了上面概念的铺垫,又可以引入下面两个概念:
-
模型f(X)关于联合分布P(X,Y)的平均意义下的损失:风险函数(risk function)或期望损失(expected loss):
-
模型f(X)关于训练数据集的平均损失:经验风险(empirical risk)或经验损失(empirical loss):
当样本数量足够的情况下,经验风险是趋近于期望风险的,但是现实中样本数量是有限的,,所以用经验风险估计期望风险常常并不理想,要对经验风险进行一定的矫正
这就关系到监督学习的两个基本策略:经验风险最小化和结构风险最小化
经验风险最小化与结构风险最小化
在假设空间、损失函数以及训练数据集确定的情况下,经验风险函数式(1.10)就可以确定,经验风险最小化(empirical risk minimization,ERM)的策略认为,经验风险最小的模型是最优的模型
当样本数量过小,可能会出现过拟合问题,结构风险最小化(structural risk minimization,SRM)是为了防止过拟合而提出来的策略
结构风险最小化等价于正则化(regularization):
加上结构风险最小化的策略,此时的最优模型就是下面的最优化问题求解:
这样,监督学习问题就变成了经验风险或结构风险函数的最优化问题(1.11)和(1.13),这时经验或结构风险函数是最优化的目标函数
算法
统计学习基于训练数据集,根据学习策略,从假设空间中选择最优模型,最后需要考虑用什么样的计算方法求解最优模型,这时,统计学习问题归结为最优化问题,统计学习的算法成为求解最优化问题的算法:
模型评估与模型选择
训练误差与测试误差
对于我们利用学习方法通过训练给出的模型,我们希望这个模型能较好的具有以下两点能力:
- 拟合能力:已知数据的预测比较合理
- 泛化能力:未知数据的预测比较合理
前面说过,损失函数能够度量模型预测的好坏,所以基于损失函数的模型的训练误差(training error)和模型的测试误差(test error)就自然成为学习方法评估的标准:
过拟合与模型选择
我们认为在假设空间存在一个真的模型,那么我们选择的模型的目标就是尽量接近这个真模型,假设空间很可能含有不同复杂度的模型,所以此时我们的目标就变成了寻找一个复杂度合适的模型,这里引出一个概念,过拟合(over fitting) - 所选模型的复杂度则比真模型更高
接下来我们的问题就转接成了需找一个模型复杂度适当的模型,前面一节我们介绍了训练误差与测试误差,那么训练误差与测试误差和模型的复杂度有没有什么关系呢,看下图:
可以看到,训练误差和模型复杂度的关系是:随着模型复杂度的增加,训练误差逐渐递减,趋向于0(此时可能过拟合),但是测试误差会有个最小值(此时才是最合适的复杂度)
那么我们的学习目的就出来了:选择复杂度适当的模型,以达到使测试误差最小
现在目的就很明确了,就是需要一个途径比较测试误差,选出最值小的,从而选出我们的模型:
- 正则化
- 交叉验证
正则化与交叉验证
正则化
在统计学习三要素那一节讲过结构风险最小化策略,此策略的目的就是防止过拟合,正则化是结构风险最小化策略的实现,是在经验风险上加一个正则化项(regularizer)或罚项(penalty term):
正则化的作用是选择经验风险与模型复杂度同时较小的模型
交叉验证
交叉验证的基本想法是重复地使用数据,把给定的数据进行切分,将切分的数据集组合为训练集与测试集,在此基础上反复地进行训练、测试以及模型选择,交叉验证有如下三种方式:
- 简单交叉验证
- S折交叉验证
- 留一交叉验证
泛化能力
学习方法的泛化能力(generalization ability)是指由该方法学习到的模型对未知数据的预测能力,是学习方法本质上重要的性质
泛化误差
泛化误差的定义
对于一个学到的模型,其对未知数的预测就是泛化误差(generalization error),其实就是策略那节讲的风险函数:
泛化误差反映了学习方法的泛化能力,如果一种方法学习的模型比另一种方法学习的模型具有更小的泛化误差,那么这种方法就更有效
泛化误差上界
学习方法的泛化能力分析往往是通过研究泛化误差的概率上界进行的,简称为泛化误 差上界(generalization error bound)
泛化误差上界性质如下:
- 它是样本容量的函数,当样本容量增加时,泛化上界趋于0
- 它是假设空间容量(capacity)的函数,假设空间容量越大,模型就越难学,泛化误差上界就越大
生成模型与判别模型
监督学习方法可以分为:
- 生成方法(generative approach):生成方法可以还原出联合概率分布
P(X,Y)
,而判别方法则不能;生成方法的学习收敛速度更快,即当样本容量增加的时候,学到的模型可以更快地收敛于真实模型;当存在隐变量时,仍可以用生成方法学习,此时判别方法就不能用 - 判别方法(discriminative approach):判别方法直接学习的是条件概率
P(Y|X)
或决策函数f(X)
,直接面对预测,往往学习的准确率更高;由于直接学习P(Y|X)
或f(X)
,可以对数据进行各种程度上 的抽象、定义特征并使用特征,因此可以简化学习问题
所学到的模型分别称为:
- 生成模型(generative model):
- 朴素贝叶斯法
- 隐马尔可夫模型
- 判别模型(discriminative model):
- k近邻法
- 感知机
- 决策树
- 逻辑斯谛回归模型
- 最大熵模型
- 支持向量机
- 提升方法
- 条件随机场
- ......
分类问题
在监督学习中,当输出变量Y取有限个离散值时,预测问题便成为分类问题,监督学习从数据中学习一个分类模型或分类决策函数,称为分类器(classifier)
许多统计学习方法可以用于分类:
- k近邻法
- 感知机
- 朴素贝叶斯法
- 决策树
- 决策列表
- 逻辑斯谛回归模型
- 支持向量机
- 提升方法
- 贝叶斯网络
- 神经网络
- Winnow
- ......
评价分类器性能的指标一般是分类准确率(accuracy):对于给定的测试数据集,分类器正确分类的样本数与总样本数之比,也就是损失函数是0-1损失时测试数据集上的准确率,见图1.17
对于二类分类问题常用的评价指标是精确率(precision)与召回率(recall),因为是二分类,所以一共有四中预测情况:
- TP——将正类预测为正类数
- FN——将正类预测为负类数
- FP——将负类预测为正类数
- TN——将负类预测为负类数
标注问题
标注问题的目标在于学习一个模型, 使它能够对观测序列给出标记序列作为预测
许多统计学习方法可以用于标注:
- 隐马尔可夫模型
- 条件随机场
评价标注模型的指标与评价分类模型的指标一样,常用的有标注准确率、精确率和召回率,其定义与分类模型相同
回归问题
回归用于预测输入变量(自变量)和输出变量(因变量)之间的关系,特别是当输入变量的值发生变化时,输出变量的值随之发生的变化,回归问题按照输入变量的个数,分为一元回归和多元回归;按照输入变量和输出变量之间关系的类型即模型的类型,分为线性回归和非线性回归
说明
一些参考链接:
- 致力于将李航博士《统计学习方法》一书中所有算法实现一遍
- 《统计学习方法》的读书笔记,重现了大部分的课后题,仅供参考
- 深度学习中的概率知识详解