【机器学习】偏差-方差分解

【机器学习】偏差-方差分解

这差不多是对课堂阅读材料的翻译,方便自己加深理解,也是督促自己好好学习。因为是自己翻译的,所以存在学术名词翻译不准确的情况,希望大家看见之后能够指出。下面是正文部分:

在本章节之前对线性回归模型的讨论中,我们一直假设基函数的形式和数量是固定的。但正如第一章中提到的那样,当训练数据集规模有限而模型又比较复杂的时候,极大似然法或最小二乘法会导致严重的过拟合。然而我们又不能简单地通过限制基函数的数量来避免过拟合,因为这样的话就会削弱模型的灵活性,从而错过数据中本可以获得的一些有用信息。尽管引入正则化可以对多参数模型的过拟合问题进行管控。但这又带来了一个新的问题,即如何确定正则化参数λ\lambda。寻求使正则化误差方程最小的权重ω\omegaλ\lambda显然是不可行的,这样只能得到一个非正则化的解,此时λ=0\lambda=0

正如我们在前面章节看见的那样,过拟合是极大似然法的一个不好的特性,但当我们在贝叶斯设定中对参数进行精化后,过拟合现象并未出现。在本章中,我们将在一定程度上考虑模型复杂度的贝叶斯观点。在此之前,我们先了解一下模型复杂度的频率主义观点,即bias-variance权衡。

在前面我们针对回归问题对决策理论进行了讨论。我们讨论了各种不同的损失函数,并且知道一旦给定条件分布p(tx)p(t|x),所有损失函数都能得到一个与之相关的最优预测。其中平方损失函数(square loss function) 是最受欢迎的,因为它的最优预测是由条件期望给出的,用h(x)h(x)l来表示:
【机器学习】偏差-方差分解
在这里,非常有必要比较一下决策理论中的平方损失函数和模型参数的最大似然法中产生的平方和误差函数(sum-of squares error function)。我们将采用比最小二乘更复杂一些的技术,例如正则化或完全贝叶斯方法来确定条件分布p(tx)p(t|x)。这些方法都能和平方损失函数结合起来进行预测。

在前面章节已经介绍过,期望平方损失可以写成如下形式:
【机器学习】偏差-方差分解
式子的第二部分由数据的固有噪声引起,表示期望损失的最小值。第一部分取决于我们对函数y(x)y(x)的选择。我们要找到一个使这部分值最小的一个解,因为这部分是非负的,最小只能为0。如果我们有无限的数据和算力,原则上说,我们可以找到任何精确度的回归方程h(x)h(x)。实际上我们只有一个数据集DD, 里面只有有限的NN个数据点,因此我们无法准确得到回归方程h(x)h(x)

如果我们用一个参数方程y(x,w)y(x,w)h(x)h(x)进行建模,在贝叶斯观点中,可以用ww上的后验分布来表述模型的不确定性。然而,频率主义的方法为基于数据集DDww进行点估计。并通过一个思维实验来解释其中的不确定性:假设我们有大量规模为NN的数据集,都独立于p(t,x)p(t,x)。对于任意一个数据集DD,我们可以运行我们的学习算法,并且得到一个预测函数h(x)h(x)。不同的数据集将会给出不同的预测函数的平方损失值。最终我们根据平均值来评判这个学习算法的性能。

考虑上式第一部分的被积函数:
【机器学习】偏差-方差分解
因为受到DD的影响,所以我们取总体上各数据集的均值。如果我们加上和减去ED[y(x,D)]\mathbb{E}_{D}[y(x,D)],然后展开,就会得到:
【机器学习】偏差-方差分解
现在我们来求这个表达式关于DD的期望,并注意,最后一项消失了:
【机器学习】偏差-方差分解
上式的第一部分就是偏差,表示所有数据集的平均预测值与期待的回归函数之间的差异度。第二部分是方差,用来描述独立数据集在均值周围的波动程度,因此也能反映y(x,D)y(x,D)对某个特定数据集的敏感程度。

下面来讲一个简单的例子。考虑一个单输入xx,然后把上面的展开式带入到最开始E[L]\mathbb{E}[L]的表达式,得到下列期望平方损失的表达式:
【机器学习】偏差-方差分解
其中:
【机器学习】偏差-方差分解
我们的目标是使期望损失E[L]\mathbb{E}[L]最小。我们会发现,这里存在偏差和方差的权衡:柔性模型低偏差高方差,而相对刚性的模型高地方差高偏差。能在二者之间达到一个平衡的模型是最好的预测模型。这里我们产生L=100L=100 个数据集,每个数据集的N=25N=25,均独立于正弦曲线h(x)=sin(2πx)h(x)=sin(2\pi x)。对每个数据集D(l)D^{(l)},我们通过最小化E[L]\mathbb{E}[L]来拟合一个带有24个高斯基函数的模型,并得到相应的预测函数y(l)(x)y^{(l)}(x),如下图所示:
【机器学习】偏差-方差分解
左列显示不同lnλln\lambda下的拟合结果(为了更清晰,只显示了20个集合的拟合结果)。右栏显示了100个拟合值的平均值(红色),以及生成数据集的正弦函数(绿色)。很明显,第一排的拟合结果的方差小而偏差大,最后一排的拟合结果的偏差小而方差大。注意,对于参数数量M = 25的复杂模型,多个解取平均的结果对回归函数的拟合非常好,这表明取平均值可能是一个不错的过程。 实际上,多重解的加权平均是贝叶斯方法的核心。虽然平均是关于参数的后验分布的,而不是关于多个数据集的。

下面对这个例子给出定量分析。平均预测函数如下:
【机器学习】偏差-方差分解
偏差平方和方差如下:
【机器学习】偏差-方差分解
根据上面的式子,给出各个变量受lnλln\lambda影响的曲线画出下图:
【机器学习】偏差-方差分解
从图上也可得到和前面肉眼判断一样的结果。

尽管偏差方差分解从一个频率的角度,对模型复杂度问题给出了有意思的解读,其实践意义比较有限。因为偏差方差分解是基于对许多数据集总体求平均的结果上的,然而实际中,我们一般只有一个可观数据集。假如我们有大量具有给定大小的独立训练集,我们最好将它们组合成单个大型训练集,这当然会降低对给定模型复杂性的过拟合程度。

鉴于这些局限性,我们将在下一节讨论线性基函数模型的贝叶斯处理,它不仅为过度拟合问题提供了强有力的见解,而且还提供了解决模型复杂性问题的实用技术。