泛化能力、训练集、测试集、K折交叉验证、假设空间、欠拟合与过拟合、正则化(L1正则化、L2正则化)、超参数、没有免费的午餐定理

版权声明:站在巨人的肩膀上学习。 https://blog.csdn.net/zgcr654321/article/details/83473587

泛化能力(generalization):

机器学习模型。在先前未观测到的输入数据上表现良好的能力叫做泛化能力(generalization)。

训练集(training set)与训练错误(training error):

训练机器学习模型使用的数据集称为训练集(training set),使用这些数据产生的误差称为训练错误(training error)。

训练集(training set)又可以分成两部分:

一部分用来学习参数,称为训练数据集

一部分用于选择超参数,称为验证数据集(validation set)

K折交叉验证(K-fold Cross-Validation):

K折交叉验证先将数据集分割成大小相同的K组数据集,然后先用2-K组数据集作为训练数据集进行训练,再用第1组数据集进行验证;然后用第二组数据集作为验证数据,剩下的作为训练数据。直到遍历完所有数据集,将K组验证错误率取平均值,平均验证错误率就当做泛化错误率。

K最常用的取值为10。

测试集(testing set)与测试错误(test error):

测试集(testing set)是未知的数据,我们使用机器学习模型用测试集来进行某种预测。

当然,预测不一定是准确的,在测试数据上的误差称为测试错误(test error)或泛化错误(generalization error)。

为什么利用训练集生成的模型可以用来预测测试集的数据?

原因是训练集和测试集的数据拥有某种关联性。

假设训练集和测试集的数据都是由某个概率分布生成,我们称之为数据生成过程(data generating process)。

我们假设数据之间是相互独立的(即数据独立同分布假设),而数据都是由某个概率分布函数生成,因此在训练数据(已知)上表现很好的算法,在测试数据(未知)上依然能够表现得很好。

决定机器学习算法效果是否好的因素:

使训练错误率尽可能低;

使训练错误率与测试错误率的差距尽可能小。

模型的容量(capacity,或称能力):

模型的容量是指其拟合各种函数的能力,通俗来说就是说一个模型拥有多少种函数可以候选。容量低的模型可能很难拟合训练集。容量高的模型可能会过拟合,因为记住了不适用于测试集的训练集性质。

假设空间(hypothesis space):

假设空间通俗来说就是控制算法可以使用的函数的数量。

如我们用线性回归去拟合数据,那么线性回归包含的所有直线就是我们的假设空间。我们可以用一次函数去拟合数据,也可以用二次函数去拟合数据,显然二次函数中也包含了一次函数(x2的系数为0时),因此使用二次函数去拟合函数时,假设空间就更加大了,拟合数据的能力就更强。

欠拟合(Underfitting)与过拟合(Overfitting):

上图中左边为欠拟合状态,右边为过拟合状态,中间为很好地拟合的状态。

当机器学习算法在训练数据上错误率较高时,我们就说这是欠拟合现象;

当机器学习算法的测试错误率与训练错误率差距较大时,我们就说这是过拟合现象。

简单的函数更加容易泛化,而复杂的函数往往在训练数据集上表现优异,但对于测试数据集效果很差。

如:

在图的左端,训练误差和泛化误差都非常高。这是欠拟合(underfitting)。当我们增加容量时,训练误差减小,但是训练误差和泛化误差之间的间距却不断扩大。最终,这个间距的大小超过了训练误差的下降,我们进入到了过拟合(overfitting),其中容量过大,超过了最佳容量(optimal capacity)。

选择模型的原则:

如果两个假设空间都能很好地拟合数据,那么我们就选择“最简单”的那个。

正则化(Regularization):

正则化(Regularization)是指我们想要降低泛化错误率但不降低训练错误率而修改机器学习算法的一系列方法。

通常我们是在损失函数loss中加入一项正则化项,也称为加入一项参数惩罚。

L1正则化:

在原来的损失函数基础上加上权重参数的绝对值:

Ein是未包含正则化项的训练样本误差,λ 是正则化参数,可调。

用一张图来说明如何在 L1 正则化下,对 Ein 进行最小化的优化:

Ein 优化算法不变,L1 正则化限定了 w 的有效区域是一个正方形,且满足 |w| < C。空间中的点 w 沿着 -∇Ein 的方向移动。但是,w 不能离开红色正方形区域,最多只能位于正方形边缘位置。

L2正则化:

在原来的损失函数基础上加上权重参数的平方和:

Ein是未包含正则化项的训练样本误差,λ 是正则化参数,可调。

为什么我们要加入这个正则化项?

正则化的目的是限制参数过多或者过大,避免模型过于复杂产生过拟合现象。但是,我们如果直接去将一些高阶项的权重w调整为0的话,想要求得合适的解很难(很难直接求得需要多少阶以上的项的w定为0),这种问题属于NP-hard 问题,求解非常困难。

因此,我们寻找更宽松的限定条件:

上式是对 wj的平方和做数值上界限定,即所有w的平方和不超过参数 C。

这时候,我们的目标就转换为:最小化训练样本误差 Ein,但是要遵循 w 平方和小于 C 的条件。

用一张图来说明如何在限定条件下,对 Ein 进行最小化的优化:

如图,蓝色椭圆区域是最小化 Ein 区域,红色圆圈是 w 的限定条件区域。

在没有限定条件的情况下,一般使用梯度下降算法,在蓝色椭圆区域内会一直沿着 w 梯度的反方向前进,直到找到全局最优值 wlin。例如空间中有一点 w(图中紫色点),此时 w 会沿着 -∇Ein 的方向移动,如图中蓝色箭头所示。但是,由于存在限定条件,w 不能离开红色圆形区域,最多只能位于圆上边缘位置,沿着切线方向。w 的方向如图中红色箭头所示。

w 沿着圆的切线方向运动,如上图绿色箭头所示。运动方向与 w 的方向(红色箭头方向)垂直。运动过程中,根据向量知识,只要 -∇Ein 与运行方向有夹角,不垂直,则表明 -∇Ein 仍会在 w 切线方向上产生分量,那么 w 就会继续运动,寻找下一步最优解。

只有当 -∇Ein 与 w 的切线方向垂直时,-∇Ein在 w 的切线方向才没有分量,这时候 w 才会停止更新,到达最接近 wlin 的位置,且同时满足限定条件。

-∇Ein 与 w 的切线方向垂直,即 -∇Ein 与 w 的方向平行。如上图所示,蓝色箭头和红色箭头互相平行。

根据平行关系可得:

我们也可以写成

注意这时的拉姆塔和上一个式子相比实际上加了一个符号。

根据最优化算法的思想:梯度为 0 的时候,函数取得最优值。

已知 ∇Ein 是 Ein 的梯度,观察上式,λw可以看成是 1/2λw*w 的梯度:

这样的话,我们就可以构造一个新的损失函数:

显然右边的第二项就是正则化项。

L1 与 L2 正则化的比较:

以二维情况讨论,上图左边是 L2 正则化,右边是 L1 正则化。从另一个方面来看,满足正则化条件,实际上是求解蓝色区域与黄色区域的交点,即同时满足限定条件和 Ein 最小化。

对于 L2 来说,限定区域是圆,这样,得到的解 w1 或 w2 为 0 的概率很小,很大概率是非零的。

对于 L1 来说,限定区域是正方形方形的凸点会更接近 Ein 最优解对应的 wlin 位置,而凸点处必有 w1 或 w2 为 0。因此,L1得到的解 w1 或 w2 为零的概率就很大了。所以,L1 正则化的解具有稀疏性

扩展到高维,同样的道理,L2 的限定区域是平滑的,与中心点等距;而 L1 的限定区域是包含凸点的,尖锐的。这些凸点更接近 Ein 的最优解位置,而在这些凸点上,很多 wj 为 0。

正则化参数 λ:

正则化参数 λ起到了调节正则化项的作用。

如图所示,以 L2 正则化为例,若 λ 很小,对应上文中的 C 值就很大。这时候,圆形区域很大,能够让 w 更接近 Ein 最优解的位置。若 λ 近似为 0,相当于圆形区域覆盖了最优解位置,这时候,正则化失效,容易造成过拟合。相反,若 λ 很大,对应上文中的 C 值就很小。这时候,圆形区域很小,w 离 Ein 最优解的位置较远。w 被限制在一个很小的区域内变化,w 普遍较小且接近 0,起到了正则化的效果。但是,λ 过大容易造成欠拟合。

超参数(Hyperparameters):

超参数可以设置来控制算法行为。超参数的值不是通过学习算法本身学习出来的。

比如,在线性回归中,参数w和b是依然模型训练后自主更新的,而学习速率(learning rate)则是我们手动设置的。我们可以根据模型的training error来手动调整学习速率,但学习速率不能虽然模型的训练自动更新。

没有免费的午餐定理:

机器学习的没有免费午餐定理(no free lunch theorem)表明(Wolpert, 1996),在所有可能的数据生成分布上平均之后,每一个分类算法在未事先观测的点上都有相同的错误率。通俗来说,就是针对某一域的所有问题,所有算法的期望性能是相同的。

假如学习算法La在某些问题上比学习算法Lb要好, 那么必然存在另一些问题, 在这些问题中Lb比La表现更好。这里说的表现好就是前面所说的泛化能力更强。

因此,脱离具体的问题,考虑所有潜在的问题,则所有的学习算法都一样好。要谈论算法的相对优劣,必须要针对具体的学习问题,在某些问题上表现好的学习算法在另一些问题上可能不尽如人意。

猜你喜欢

转载自blog.csdn.net/zgcr654321/article/details/83473587