机器学习中的数学

偏差与方差

2018-11-15  本文已影响0人  水之心

统计领域为我们提供了很多工具来实现机器学习目标,不仅可以解决训练集上的任务,还可以泛化。点估计试图为一些感兴趣的量提供单个”最优”预测。 一般地,感兴趣的量可以是单个参数,或是某些参数模型中的一个向量参数,例如线性回归中的权重,但是也有可能是整个函数。
为了区分参数估计和真实值,我们习惯将参数 \theta 的点估计表示为 \hat{\theta}
{x^{(1)},\dots,x^{(m)}}m 个独立同分布(i.i.d.)的数据点。 点估计或统计量是这些数据的任意函数:

\hat{\theta}_m=g(x^{(1)},\ldots,x^{(m)}).

这个定义不要求 g 返回一个接近真实 \theta 的值,或者 g 的值域恰好是\theta的允许取值范围。 点估计的定义非常宽泛,给了估计量的设计者极大的灵活性。 虽然几乎所有的函数都可以称为估计量,但是一个良好的估计量的输出会接近生成训练数据的真实参数\theta

现在,我们采取频率派在统计上的观点。 换言之,我们假设真实参数 \theta 是固定但未知的,而点估计 \hat{\theta} 是数据的函数。 由于数据是随机过程采样出来的,数据的任何函数都是随机的。 因此 \hat{\theta} 是一个随机变量。

点估计也可以指输入和目标变量之间关系的估计。 我们将这种类型的点估计称为函数估计。有时我们会关注函数估计(或函数近似)。 这时我们试图从输入向量 x 预测变量 y。 我们假设有一个函数 f(x) 表示 yx 之间的近似关系。 例如,我们可能假设 y = f(x) + \epsilon,其中 \epsilony 中未能从 x 预测的一部分。 在函数估计中,我们感兴趣的是用模型估计去近似 f,或者估计 \hat{f}。 函数估计和点估计参数 \theta 是一样的;函数估计 \hat{f} 是函数空间中的一个点估计。

估计的偏差被定义为:

\text{bias}(\hat{\theta}_m) = \mathbb{E}(\hat{\theta}_m) - \theta

其中期望作用在所有数据(看作是从随机变量采样得到的)上,\theta 是用于定义数据生成分布的 \theta 的真实值。

我们有时会考虑估计量的另一个性质是它作为数据样本的函数,期望的变化程度是多少。 正如我们可以计算估计量的期望来决定它的偏差,我们也可以计算它的方差。 估计量的方差就是一个方差

\text{Var}(\hat{\theta})

其中随机变量是训练集。 另外,方差的平方根被称为标准差,记作 \text{SE}(\hat{\theta})。我们可以使用均方误差权衡偏差和方差:

\text{MSE} = \mathbb{E}[(\hat{\theta}_m - \theta)^2] = \text{bias}(\hat{\theta}_m)^2 + \text{Var}(\hat{\theta}_m)

偏差和方差的区别与权衡

偏差和方差度量着估计量的两个不同误差来源。 偏差度量着偏离真实函数或参数的误差期望。 而方差度量着数据上任意特定采样可能导致的估计期望的偏差。

我们把模型拟合函数的能力称为模型的容量

bais_var

从上图可以知道:随着容量的增大偏差随之减少,而方差随之增大,使得泛化误差呈现 U 形。因而,降低偏差或者方差需要针对不同的场景来设计,下面我们以线性回归为例来说明,我们使用了如下的代价函数来评估预测误差:

J(\theta) = \frac{1}{2m} [\sum\limits_{i=1}^m(h_\theta(x^{(i)})-y^{(i)})^2+\lambda\sum\limits_{i=1}^m\theta_j^2]

改进策略 使用场景
采集更多的样本 高方差
降低特征维度 高方差
采集更多的特征 高偏差
进行高次多项式回归(增加模型复杂度) 高偏差
降低正则化项系数 \lambda 高方差
增大正则化项系数 \lambda 高偏差
上一篇 下一篇

猜你喜欢

热点阅读