DeepLearning---Bias&Variance
什么是偏差和方差
偏差描述预测值和真实值之间的差距,偏差越大,越偏离真实值。
方差描述预测值的变化范围,也可以描述预测值和其期望值之间的差距,方差越大,数据越分散。
对于深度学习模型,我们最关注模型的泛化能力,或者说泛化误差,而泛化误差可以分解为 偏差+方差+噪音。
由于我们的用于训练模型的数据有限,对模型的设计也不可能完美,以及归纳偏置的存在,我们不可能获得一个完美拟合“真实模型”的模型。因此我们的目标就是让我们的模型尽可能地接近真实。
对于最简单的均方差,我们可以通过化简得到如下公式:
\[E(f;D)=E_D[(f(x;D)-y_D)^2]=bias^2(x)+var(x)+\epsilon^2
\]
噪声
噪声可能来自训练数据,可能来自系统误差,这一部分难以解决,不在本文讨论范围内。
偏差
偏差刻画了模型的期望预测与真实结果的偏离程度,衡量了模型本身的拟合能力。
方差
方差度量了训练集的波动对于拟合能力的影响,衡量了模型对数据扰动的响应。
偏差与方差的影响
偏差、方差窘境
通常来说偏差与方差是对立的,当训练不足时,模型无法学习数据的变化,此时偏差占据主导。当模型逐渐学习到数据中的隐含关系,偏差开始下降,而数据中的波动开始影响模型的拟合效果,此时方差上升。当模型已经完全学习到数据中的隐含关系,偏差降至最低,但是随着模型的学习,开始对数据中的微小波动敏感,导致方差开始占据主导地位。
欠拟合与过拟合
模型不能拟合训练数据,会导致偏差过大,。
当模型过度拟合训练数据,以至于无法泛化,则会导致在测试集上的方差过大。
模型复杂度
偏差与方差和模型的复杂度有一定关系,因为模型的复杂度直接决定了其拟合能力。
当模型过于简单,拟合效果差,偏差过大。
当模型过于复杂,完全拟合训练集,甚至学习了其中的噪声等无关信息,会导致泛化能力变差,方差过大。
bagging $ boosting
bagging 方法对多个学习器的结果取平均,可以降低波动所带来的影响,从而降低方差。
boosting 方法不断迭代学习,以获得更强的拟合能力,从而降低偏差。
解决偏差与方差问题
偏差:
- 特征工程
- 提高模型复杂度
方差:
- 更多的训练数据
- 减少模型复杂度
- 正则化
- 交叉验证