机器学习理论:泛化误差、方差与偏差
前言
泛化误差可以分解为偏差平方,方差与随机噪声平方之和,也就是,是统计学习中一个非常重要的结论。本文将会给出该公式的详细推导过程,并且给出这个公式对实际机器学习建模的指导。
方差-偏差分解
概念
泛化误差:指机器学习模型在训练集之外的数据集的表现,一般来说,机器学习建模与调参就是在追求最优的泛化误差
偏差:指机器学习模型的预测结果与实际结果的距离,也就是预测结果的准度
方差:指机器学习模型的预测结果之间的距离,也就是预测结果的波动程度
具体表现如下图
可以看到偏差越低,预测值距离中心,即真实值更近,方差越低,预测值越集中。
公式推导
首先,我们假设真实的与之间存在关系,其中的为随机噪声,我们假设其独立并服从均值为0方差为的正态分布。现在,记我们训练出的机器学习模型为,也就是说,模型的预测结果为。那么,泛化误差可以写为,偏差可以写为,方差根据定义可写为
\begin{eqnarray} \label{eq} E\left[ \left(y-\hat{f}(x) \right)^2 \right] &=& E\left[ \left(f + \varepsilon - \hat{f} \right)^2 \right] = E\left[ \left((f - E[\hat{f}]) - (\hat{f} - E[\hat{f}]) + \varepsilon \right)^2 \right] \nonumber \\ ~&=& E\left[ (f - E[\hat{f}])^2 + (\hat{f} - E[\hat{f}])^2 + \varepsilon^2 + \cdots \right] \nonumber \\ ~&=& E\left[ (f - E[\hat{f}])^2 \right] + E\left[ (\hat{f} - E[\hat{f}])^2 \right] + E\left[ \varepsilon^2 \right] + E\left[ \cdots \right] \nonumber \\ ~&=& (f - E[\hat{f}])^2 + E\left[ (\hat{f} - E[\hat{f}])^2 \right] + \sigma^2 \nonumber \\ ~&=& bias^2[\hat{f}] + var[\hat{f}] + \sigma^2 \nonumber \end{eqnarray}
上述推导过程中的代表将平方拆开后的交叉项,交叉项的期望为0,下面我们来看看交叉项的处理方法
首先,独立,且,故
然后我们来处理剩下的两项
\begin{eqnarray} E\left[ 2E[\hat{f}](\hat{f} - E[\hat{f}]) \right] &=& E\left[ 2E[\hat{f}]\hat{f} - 2E[\hat{f}]E[\hat{f}]) \right] \nonumber \\ ~&=& 2E[\hat{f}]E[\hat{f}] - 2E[\hat{f}]E[\hat{f}] \nonumber \\ ~&=& 0 \nonumber \end{eqnarray}
由于是常量,所以可以从期望运算中直接提出
\begin{eqnarray} E\left[ 2f(\hat{f} - E[\hat{f}]) \right] &=& E\left[ 2f\hat{f} - 2fE[\hat{f}]) \right] \nonumber \\ ~&=& 2E[f]E[\hat{f}] - 2E[f]E[\hat{f}] \nonumber \\ ~&=& 0 \nonumber \end{eqnarray}
由于与相互独立,故
实际意义
方差-偏差分解与拟合程度
将泛化误差与偏差方差的关系可视化,如下图
可以看到,一开始是偏差主导泛化误差,也就是欠拟合的情况,而在过了最佳泛化误差点后,则是方差主导泛化误差,这也就是过拟合。
调参策略
从上述结论我们可以想到,我们要降低泛化误差可以通过降低偏差,方差与噪声来实现
降低偏差:偏差过高的情况是模型的学习能力不够,可以通过增加模型的复杂度来降低偏差,比如换用复杂度更高的模型,使用集成学习(Boosting),增加神经网络的层数等。
降低方差:方差过高的情况是模型过拟合或者数据代表性不足的问题,可以通过处理过拟合的方法来解决,如正则化,剪枝等,也可以通过优化数据来解决,如特征工程。
降低噪声:在统计学习中这属于不可优化的部分,但是在实际场景中,可以通过优化数据获取端来达到降低噪声的目的,如更干净准确的数据采集。