1.5 正则化与交叉验证
1.5.1 正则化
模型选择的典型方法是正则化。正则化是结构风险最小化策略的实现,是在经验风险上加一个正则化项或罚项。正则化项一般是模型复杂度的单调递增函数,模型越复杂,正则化值就越大。比如,正则化项可以是模型参数向量的范数。
正则化项的主要作用是平衡模型复杂度和模型准确性
正则化一般具有如下形式:
正则化项可以取不同的形式。 例如,回归问题中,损失函数是平方损失,正则化项 可以是参数向量的 范数:
这里,表示参数向量 的 范数。
正则化项也可以是参数向量的范数:
这里,表示参数向量 的 范数。
第 1 项的经验风险较小的模型可能较复杂(有多个非零参数),这时第 2 项的模型复杂度会较大。正则化的作用是选择经验风险与模型复杂度同时较小的模型。
关于和范式的相关具体内容,请参考这里
1.5.2 交叉验证
如果给定的样本数据充足,进行模型选择的一种简单方法是随机地将数据集切分成三部分,分别为训练集、验证集和测试集。训练集用来训练模型,验证集用于模型的选择,而测试集用于最终对学习方法的评估。在学习到的不同复杂度的模型中,选择对验证集有最小预测误差的模型。由于验证集有足够多的数据,用它对模型进行选择也是有效的。
简单来说,训练集就是就是机器进行学习的对象数据,并且验证集和测试机不会被机器进行学习。每一轮次训练完之后会生成一个模型,利用验证集对该模型进行测试,如果验证集上表现优秀,可以简单地认为该模型表现不错,于是可以放到测试集上进行更大范围和数量的测试。但实际情况中,因为数据不足,测试集的数据数量通常较小,很难通过验证集来把握模型的优劣,于是需要进行交叉验证
但是,在许多实际应用中数据是不充足的。为了选择好的模型,可以采用交叉验
证方法。交叉验证的基本想法是重复地使用数据;把给定的数据进行切分,将切分的 数据集组合为训练集与测试集,在此基础上反复地进行训练、测试以及模型选择。
交叉验证的简单理解就是现在数据不够了,那我先将数据切分,然后通过排列组合的方式,让机器学习的数据看起来变多了(只是输入的训练数据和测试数据不同,但是总数没有变)
1. 简单交叉验证
简单交叉验证方法是:首先随机地将己给数据分为两部分, 一部分作为训练集, 另一部分作为测试集(例如, 70%的数据为训练集, 30%的数据为测试集);然后用训练集在各种条件下(例如,不同的参数个数)训练模型,从而得到不同的模型:在测试 集上评价各个模型的测试误差,选出测试误差最小的模型。
2. S折交叉验证
应用最多的是 折交叉验证 ,方法如下:首先随机地将已给数据切分为 个互不相交、大小相同的子集;然后利用 个子集的数据训练模型,利用余下的子集测试模型:将这一过程对可能的 种选择重复进行;最后选出 次评测中平均测试误差最小的模型。
3. 留一交叉验证
折交叉验证的特殊情形是 , 称为留一交叉验证,往往在数据缺乏的情况下使用。这里 , 是给定数据集的容量。
1.6 泛化能力
1.6.1 泛化误差
学习方法的泛化能力是指由该方法学习到的模型对未知数据的预测能力,是学习方法本质上重要的性质。现实中采用最多的办法是通过测试误差来评价学习方法的泛化能力。但这种评价是依赖于测试数据集的。因为测试数据集是有限的,很有可能由此得到的评价结果是不可靠的。统计学习理论试图从理论上对学习方法的泛化能力进行分析。
首先给出泛化误差的定义。如果学到的模型是, 那么用这个模型对未知数据预测的误差即为泛化误差 :
泛化误差反映了学习方法的泛化能力,如果一种方法学习的模型比另一种方法学习的模型具有更小的泛化误差,那么这种方法就更有效。事实上,泛化误差就是所学习到的模型的期望风险。
1.6.2 泛化误差上界
学习方法的泛化能力分析往往是通过研究泛化误差的概率上界进行的,简称为泛化误差上界。具体来说,就是通过比较两种学习方法的 泛化误差上界的大小来比较它们的优劣。
泛化误差上界通常具有以下性质:它是样本容量的函数,当样本容量增加时,泛化上界趋于 0;它是假设空间容量的函数,假设空间容量越大,模型就越难学,泛化误差上界就越大。
定理(泛化误差上界)对二类分类问题,当假设空间是有限个函数的集合时,对任意一个函数,至少以概率,,以下不等式成立:
其中,
不等式左端 是泛化误差, 右端即为泛化误差上界。在泛化误差上界 中, 第 1 项是训练误差, 训练误差越小, 泛化误差也越小。第 2 项 是 的单调递减函数, 当 趋于无穷时趋于 0 ; 同时它也是 阶的函数, 假设空间 包含的函数越多, 其值越大。
这里证明过程不作说明,但是我们可以明显的看出,泛化误差上界的大小表示了泛化能力的大小,泛化上界越大,表示泛化能力越弱,而影响泛化误差上界的因素有测试误差、数据容量以及模型复杂度(函数的个数)
1.7 生成模型与判别模型
监督学习方法又可以分为生成方法和判别方法。所学到的模型分别称为生成模型和判别模型。
生成方法由数据学习联合概率分布 , 然后求出条件概率分布 作 为预测的模型,即生成模型:
之所以叫生成模型是因为,模型表示了给定输入 产生输出 的生成关系
判别方法由数据直接学习决策函数 或者条件概率分布 作为预测的模型,即判别模型。判别方法关心的是对给定的输入 , 应该预测什么样的输出 。
生成方法的特点:生成方法可以还原出联合概率分布 , 而判别方法则不 能;生成方法的学习收敛速度更快,即当样本容量增加的时候,学到的模型可以更快 地收敛于真实模型;当存在隐变量时,仍可以用生成方法学习,此时判别方法就不能用。
判别方法的特点:判别方法直接学习的是条件概率 或决策函数 ,直接面对预测,往往学习的准确率更高;由于直接学习 或 , 可以对数据进行各种程度上的抽象、定义特征并使用特征,因此可以简化学习问题。
1.8 监督学习应用
1.8.1 分类问题
分类是监督学习的一个核心问题。在监督学习中,当输出变量 取有限个离散值时,预测问题便成为分类问题。这时,输入变量 可以是离散的,也可以是连续的。监督学习从数据中学习一个分类模型或分类决策函数,称为分类器。 分类器对新的输入进行输出的预测,称为分类 。可能的输出称为类别 。分类的类别为多个时,称为多类分类问题。
分类问题包括学习和分类两个过程。在学习过程中,根据己知的训练数据集利用有效的学习方法学习一个分类器;在分类过程中,利用学习的分类器对新的输入实例进行分类。
像目前计算机视觉中的物体识别、语义分割等等都算是分类问题,但算作是多分类问题,本书中仅讨论二分类问题
评价分类器性能的指标一般是分类准确率。其定义是:对于给定的测试数据集,分类器正确分类的样本数与总样本数之比。 也就是损失函数是 0-1 损失时测试数据集上的准确率。
对于二类分类问题常用的评价指标是精确率(precision)与召回率(recall)。通常 以关注的类为正类,其他类为负类,分类器在测试数据集上的预测或正确或不正确,4 种情况出现的总数分别记作:
- TP:将正类预测为正类数;
- FN:将正类预测为负类数;
- FP:将负类预测为正类数;
- TN:将负类预测为负类数。
精确率定义为:
召回率定义为:
此外,还有 值,是精确率和召回率的调和均值,即
精确率和召回率都高时 , 值也会高。
1.8.2 标注问题
标注也是一个监督学习问题。可以认为标注问题是分类问题的一个推广,标注问题又是更复杂的结构预测问题的简单形式。标注问题的输入是一个观测序列,输出是一个标记序列或状态序列。标注问题的目标在于学习一个模型,使它能够对观测序列给出标记序列作为预测 。 注意,可能的标记个数是有限的,但其组合所成的标记序列的个数是依序列长度呈指数级增长的。
评价标注模型的指标与评价分类模型的指标一样,常用的有标注准确率、精确率和召回率。其定义与分类模型相同。
1.8.3 回归问题
回归是监督学习的另一个重要问题。回归用于预测输入变量(自变量)和输出变量(因变量)之间的关系,特别是当输入变量的值发生变化时,输出变量的值随之发生的变化。回归模型正是表示从输入变量到输出变量之间映射的函数。回归问题的学习等价于函数拟合:选择一条函数曲线使其很好地拟合己知数据且很好地预测未知数据。
回归问题按照输入变量的个数,分为一元回归和多元回归;按照输入变量和输出变量之间关系的类型即模型的类型,分为线性回归和非线性回归。