偏差-方差分解

偏差-方差分解的内容其实在看西瓜书的时候已经学习过,但印象并不深刻(可能和西瓜书上的符号比较繁琐有关吧),此次重温,脉络清晰了不少。

为避免过拟合,我们经常会在模型的拟合能力和复杂度之间进行权衡。拟合能力强的模型一般复杂度会比较高,易导致过拟合。相反,如果限制模型的复杂度,降低其拟合能力,又可能会导致欠拟合。因此,如何在模型能力和复杂度之间取得一个较好的平衡对一个机器学习算法来讲十分重要。偏差-方差分解(Bias-Variance Decomposition)为我们提供一个很好的分析和指导工具。

假设样本的真实分布为,并采用平方损失函数,模型的期望错误为:

那么最优的模型为:

其中为样本的真实条件分布,为使用平方损失作为优化目标的最优模型,其损失为:

损失通常是由于样本分布以及噪声引起的,无法通过优化模型来减少。

期望误差可以分解为:

\begin{aligned} \mathcal{R}(f) &=\mathbb{E}_{(\mathbf{x}, y) \sim p_{r}(\mathbf{x}, y)}\left[\left(y-f^{*}(\mathbf{x})+f^{*}(\mathbf{x})-f(\mathbf{x})\right)^{2}\right] \\ &=\mathbb{E}_{\mathbf{x} \sim p_{r}(\mathbf{x})}\left[\left(f(\mathbf{x})-f^{*}(\mathbf{x})\right)^{2}\right]+\varepsilon \end{aligned}

其中第一项是当前模型和最优模型之间的差距,是机器学习算法可以优化的真实目标。

在实际训练一个模型时,训练集是从真实分布上独立同分布地采样出来的有限样本集合。不同的训练集会得到不同的模型。令表示在训练集学习到的模型,一个机器学习算法(包括模型以及优化算法)的能力可以用不同训练集上的模型的平均性能来评价

对于单个样本,不同训练集得到模型和最优模型的上的期望误差为:

\begin{aligned} \mathbb{E}_{\mathcal{D}} &\left[\left(f_{\mathcal{D}}(\mathrm{x})-f^{*}(\mathrm{x})\right)^{2}\right] \\ &=\mathbb{E}_{\mathcal{D}}\left[\left(f_{\mathcal{D}}(\mathrm{x})-\mathbb{E}_{\mathcal{D}}\left[f_{\mathcal{D}}(\mathrm{x})\right]+\mathbb{E}_{\mathcal{D}}\left[f_{\mathcal{D}}(\mathrm{x})\right]-f^{*}(\mathrm{x})^{2}\right]\right.\\ &=\left(\mathbb{E}_{\mathcal{D}}\left[f_{\mathcal{D}}(\mathrm{x})\right]-f^{*}(\mathrm{x})\right)^{2}+\mathbb{E}_{\mathcal{D}}\left[\left(f_{\mathcal{D}}(\mathrm{x})-\mathbb{E}_{\mathcal{D}}\left[f_{\mathcal{D}}(\mathrm{x})\right]\right)^{2}\right] \end{aligned}

其中第一项为偏差(Bias),是指一个模型的在不同训练集上的平均性能和最优模型的差异。偏差可以用来衡量一个模型的拟合能力;第二项是方差(Variance),是指一个模型在不同训练集上的差异,可以用来衡量一个模型是否容易过拟合。

综上,期望误差可以分解为:

下图给出给出了机器学习算法的偏差和方差的四种不同组合情况:

  • 图(a)给出了一种理想情况,方差和偏差都比较小。

  • 图(b)为高偏差低方差的情况,表示模型的泛化能力很好,但拟合能力不足。

  • 图(c)为低偏差高方差的情况,表示模型的拟合能力很好,但泛化能力比较差。当训练数据比较少时会导致过拟合。

  • 图(d)为高偏差高方差的情况,是一种最差的情况。

你可能感兴趣的:(偏差-方差分解)