机器学习中模型泛化能力和过拟合现象(overfitting)的矛盾、以及其主要缓解方法正则化技术原理初探 - 郑瀚Andrew.Hann - 博客园 (cnblogs.com)
经验风险最小化最优模型
结构风险最小化 structure risk minimization,为防止过拟合提出的策略,等价于正则化(regularization),加入正则化项regularizer,或罚项 penalty term:
我们以一个简单的回归问题开始,说明许多关键的概念。 假设我们观察到一个实值输入变量x,我们想使用这个观察来预测实值目标变量t的值。
对于这个目的,一个很好的方法是考虑一个使用已知的产生方式人工制造出的例子,因为这样我们就知道生成数据的精确过程(动力学过程),从而能够和我们学习到得模型进行比较。这个例子的数据由函数sin(2πx)产生,目标变量带有随机的噪声。
现在假设给定一个训练集。这个训练集由x的N次观测组成,写作:
x ≡ (x1,...,xN)T
伴随着对应的t的观测值,记作:
t ≡ (t1,...,tN)T
下图展示了由N = 10个数据点组成的图像:
目标数据集t的获得方式是:
通过使用这种方式产生数据,我们利用了许多真实数据集合的一个性质,即它们拥有一个内在的规律,这个规律是我们想要学习的,但是独自的观察被随机噪声干扰。
这种噪声可能由一个本质上随机的过程产生,例如放射性衰变,但是更典型的情况是由于存在没有被观察到的具有变化性的噪声源。
我们的目标是利用这个训练集预测对于输入变量的新值 x 的目标变量的值 t。
这涉及到隐式地发现内在的函数sin(2πx)。这本质上是一个困难的问题,因为我们不得不从有限的数据中生成模型。
因为观察到的数据被噪声干扰,因此对于一个给定的 x,合适的 t 值具有不确定性。
现在,我们用一种相当非正式的、相当简单的方式来进行曲线拟合:
其中M是多项式的阶数(order),xj 表示 x 的 j 次幂。多项式系数 w0,...,wM 整体记作向量w。
注意,虽然多项式函数 y(x, w)是 x 的一个非线性函数,它是系数w的一个线性函数。这一点对后面我们理解因为训练集不充分导致最优解不唯一问题有帮助。
系数的值可以通过调整多项式函数拟合训练数据的方式确定。这可以通过最小化误差函数 (error function)的方法实现。
我们可以通过选择使得 E(w) 尽量小的 w 来解决曲线拟合问题。由于误差函数是系数 w 的二次函数,因此它关于系数的导数是 w 的线性函数,所以误差函数的最小值有一个唯一解,记作w∗,可以用解析的方式求出。
最终的多项式函数由函数y(x, w∗)给出。这是一个纯数学问题,没有什么好特别讨论的。我们本文的重点是讨论过拟合问题,过拟合问题和阶数 M 紧密相关。
在下图中,我 们给出了4个拟合多项式的结果。多项式的阶数分别为M = 0, 1, 3, 9:
不同阶数的多项式曲线,用红色曲线表示,绿色表示原始目标函数曲线
我们注意到:
正如我们之前提到的,机器学习的目标是通过对新数据的预测实现良好的泛化性。
我们可以定量考察模型的泛化性与 M 的关系。考察的方式为:考虑一个额外的测试集,这个测试集由100个数据点组成,这100个数据点的生成方式与训练集的生成方式完全相同,但是在目标值中包含的随机噪声的值不同。对于每个M的选择,我们计算训练集和测试集的误差:
题的原因可以被归纳为两句话:
由此,我们可以得出第一个直觉判断:
有效控制模型复杂度,可以有效缓解过拟合问题
很有趣的
对已一个给定的模型复杂度,当数据集的规模增加时,过拟合问题变得不那么严重
泛化能力是模型对未知数据的预测能力。大白话来说就是,模型训好了,放到实际场景中去使用,会不会掉链子,还是能达到跟训练时一样的效果。泛化能力的本质就是反映模型有没有对客观世界做真实的刻画,还是发生了过拟合。
泛化能力的评估,说简单很简单,搞个测试集测一下就可以了。
作者:迪丽娜扎
链接:https://www.jianshu.com/p/849423297c7f
来源:简书
在一个项目中,我们通过设计和训练得到了一个model,该model的泛化可能很好,也可能不尽如人意,其背后的决定因素是什么呢?或者说我们可以从哪些方面去改进从而使下次得到的model更加令人满意呢?
”偏差-方差分解(bias-variance decomposition)“是解释学习算法泛化能力性能的一种重要工具。偏差-方差分解试图对学习算法的期望泛化错误率进行拆解。
假设测试样本为x,yd 为 x 在数据集中的标记(注意,有可能出现噪声使得 yd != y,即所谓的打标样本不纯),y 为 x 的真实标记,f(x;D)为在训练集 D 上训练得到的模型 f 在 x 上的预测输出。
以回归任务为例,学习算法的期望预测为:
上式可被分解为:
整理得:
即,泛化误差可分解为:偏差、方差、噪声之和。